今天读了《构建之法》的第十三章。
这章讲测试,是篇幅比较长的一章。看来测试在软件工程中是很重要的。
Bug分类:
1.症状:即从用户的角度看,软件出了什么问题。
2.程序错误:即从代码的角度看,代码的什么错误导致了软件的问题。
3.根本原因:错误根源,即导致代码错误的根本原因。
测试设计的方法分类
1.黑箱测试 2.白箱测试
注意,这是软件测试设计的方法,而不是软件测试的方法
按测试目的分类:
1.功能测试
又可分为单元测试、功能测试、集成测试,场景测试、系统测试、外部软件测试人员的全面测试
2.非功能测试
又可分为压力测试、效能测试、可访问性测试、本地化/全球化测试、兼容性测试、配置测试、易用性测试、软件安全性测试
按测试的时机和作用分类
冒烟测试、验证构建是否通过基本测试、验收测试
各种测试方法
1.单元测试
2.代码覆盖率测试
100%的代码被执行也不意味着不需要更多的测试,因为1)不同的代码是否执行,有很多组合;2)代码覆盖不能测出未完成的代码导致的错误
3.构建验证测试
在一个构建完成之后,构建系统会自动运行一套测试,验证系统的基本功能
4.验收测试
5.探索式的测试
为了某一个特定的目的而进行的测试,且就这一次,以后一般也不会重复测试。
6.回归测试
7.场景/集成/系统测试
全面和系统的测试,以保证软件的各个模块都能共同工作,各方面均能满足用户的要求。
8.伙伴测试
9.效能测试
10.压力测试
11.内部/外部公开测试
Alpha Test:团队之外、公司内部进行的测试
Beta Test:公司外部的用户进行测试
12.易用性测试
测试中的文档
1.测试设计说明书(TDS)
1)功能是什么
2)需要测试哪些方面?有没有预期的Bug比较多的地方(对于测试矩阵有没有需要修改的地方)?
3)如何去测试(采用什么具体方法,如何做测试自动化,准备什么样的测试数据等)?
4)功能如何与系统集成,如何测试这一方面?
5)什么才叫测试好了?
2.测试用例
3.错误报告
1)Bug的标题,能简要说明问题
2)Bug的内容要写在描述中,包括
a. 测试的环境和准备工作
b. 测试的步骤,清楚地列出每一步做了什么
c. 实际发生的结果
d. 应该发生什么结果
3)其他补充资料
4)Bug严重程度、功能区域等
4.测试修复
5.测试报告
1)有多少测试用例通过?
2)有多少测试用例失败?
3)有多少测试用例未完成?
4)有多少测试用例之外的Bug被发现?