软件测试
1. 各种测试理论和方法
Bug可以分解为:Symptom(症状), Fault(程序错误), Root Cause(根本原因).
- 症状:从用户的角度看软件出现的问题
- 程序错误:从代码的角度看,代码的什么错误导致了软件的问题
a). 按测试设计的方法分类
软件设计有两类方法:黑盒(Black Box)和白盒测试(White Box)。“所谓黑箱/白箱,是指软件测试设计的方法,不是软件测试的方法!注意“设计”二字。
黑箱:指的是在设计测试的过程中,把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识。一个更准确的说法是行为测试设计(Be-havioral Test Design),即从软件的行为,而不是从内部结构出发来设计测试。
白箱:指的是在设计测试的过程中,设计者可以“看到”软件系统的内部结构,并使用软件的内部结构和知识来选择测试数据及具体的测试方法。
b). 按测试的目的分类
功能测试分类:“测试的范围由小到大,测试者也由内到外——从程序开发人员(单元测试)到测试人员,到一般用户(Alpha/Beta测试)。”(邹欣,2014)
Unit Test(单元测试): 在最基本的功能/参数上验证程序的正确性。
Functional Test(功能测试): 验证模块的功能
Integration Test(集成测试): 验证几个互相有依赖关系的模块的功能
Scenario Test(场景测试): 验证几个模块能否完成一个用户场景
System Test(系统测试): 对于整个系统功能的测试
Alpha/Beta Test: 外部测试人员在实际用户环境中对软件进行全面的测试
非功能测试分类:
一个软件除了基本功能之外,还有很多功能之外的特性,这些叫非功能需求(Non-functional Re-quirement),或者服务质量需求(Quality of Ser-vice Requirement)。然而,若没有软件的基本功能,这些特性都将无从表现出来,因此,我们要在软件开发的适当阶段——基本功能完成后再来做这些非功能测试
(摘录来自: 邹欣. “构建之法:现代软件工程”。 iBooks. )
c). 按测试的时机和作用分类
Smoke Test(冒烟测试): 测试不通过,则不能进行下一步工作。
Build Verification Test(构造确认测试): 验证构建是否通过基本测试
Acceptance Test(验收测试): 全面考察某方面的功能/特性
2. 测试工具介绍
3. 实战中的测试
参考文献:
[1]. 2014-9, 邹欣 “构建之法:现代软件工程”