惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
S
Security Affairs
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cyberwarzone
Cyberwarzone
Latest news
Latest news
Simon Willison's Weblog
Simon Willison's Weblog
NISL@THU
NISL@THU
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 司徒正美
博客园_首页
人人都是产品经理
人人都是产品经理
Project Zero
Project Zero
S
Schneier on Security
Recorded Future
Recorded Future
N
News and Events Feed by Topic
T
The Exploit Database - CXSecurity.com
博客园 - 【当耐特】
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Engineering at Meta
Engineering at Meta
M
MIT News - Artificial intelligence
The Last Watchdog
The Last Watchdog
B
Blog
V
Visual Studio Blog
MongoDB | Blog
MongoDB | Blog
量子位
A
Arctic Wolf
Cloudbric
Cloudbric
I
InfoQ
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cybersecurity and Infrastructure Security Agency CISA
爱范儿
爱范儿
Recent Announcements
Recent Announcements
GbyAI
GbyAI
P
Palo Alto Networks Blog
D
DataBreaches.Net
H
Help Net Security
AI
AI
博客园 - 叶小钗

博客园 - Atine

[102] Dependency Walker使用说明 [101] 选择黑盒测试用例设计方法的综合策略 [100] 转载:做一个专业的测试员 [99] Principles behind the Agile Manifesto [98] Manifesto for Agile Software Development [97] 液晶电视 [96] 等离子电视机 [95] 背投 [94] ISTQB [93] 项目人生,成长与感悟 [92] 楼市交易或倒退10年 深圳官方研究机构呼吁救市 [91] Why Software Testing is important? [90] WHAT IS ZUNE? [89] sonic面试题目 [88] A brief list of Goa'uld words and phrases. [87] 傻B、牛B、装B的英文用法详解 [84] 我就是最优秀的 [83] LR测试积累 [82] Loadrunner中参数的设置
[86] 什么是静态测试
Atine · 2008-06-17 · via 博客园 - Atine

      静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。 

       代码检查
       代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。

   在实际使用中,代码检查比动态测试更有效率,能快速找到缺陷,发现30%~70%的逻辑设计和编码缺陷;代码检查看到的是问题本身而非征兆。但是代码检查非常耗费时间,而且代码检查需要知识和经验的积累。代码检查应在编译和动态测试之前进行,在检查前,应准备好需求描述文档、程序设计文档、程序的源代码清单、代码编码标准和代码缺陷检查表等。

   静态结构分析
       静态结构分析主要是以图形的方式表现程序的内部结构,例如函数调用关系图、函数内部控制流图。其中,函数调用关系图以直观的图形方式描述一个应用程序中各个函数的调用和被调用关系;控制流图显示一个函数的逻辑结构,它由许多节点组成,一个节点代表一条语句或数条语句,连接结点的叫边,边表示节点间的控制流向。

       检查项:
       * 代码风格和规则审核
       * 程序设计和结构的审核
       * 业务逻辑的审核 

      使用静态测试技术进行测试时,不需要真正运行软件,而是通过手工(评审)或自动化(静态分析)的方法对软件进行的测试。

      评审是对软件的相关产出物(包括需求、设计、代码、测试计划、测试用例、测试脚本、用户指南或web页等)进行测试的一种方式,可以在动态测试之前进行。主要有下面的类型:

  1.非正式评审(informal review):没有正式的过程,多用于结对编程或以技术为评价标准的设计/编码中,其主要目的是以较低成本发现问题

  2.走查(walkthrough):由作者发起,参与者主要为研发同事,主要目的是学习、理解并发现缺陷

  3.技术评审(technical review):定义流程,并将缺陷文档化,参与者包括同行和技术专家,主要目的是发现缺陷,进行讨论并解决技术问题,检查与规格说明是否符合等

  4.审查(inspection):由受过专门培训的主持人来领导,并定义参与者(同行)的角色,有正式的入口、出口准则及度量标准,主要目的是发现缺陷

  静态分析是借助工具来检查软件的代码和模型。比如在单元测试期间,开发人员通过预先定义规则,使用静态分析工具对代码进行检查;在软件建模期间,设计人员可以使用静态分析工具对软件模型进行分析。