1 一次自评价测试
所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该执行的功能。
2 软件测试的心理学和经济学
2.1 软件测试的心理学
软件测试是为发现错误而执行程序的过程。
2.2 软件测试的经济学
要想完全测试一个软件不论是从黑盒测试还是白盒测试的角度来看都是不可能的。那我们要做的就是如何提供性价比高的测试用例。
2.3 软件测试的原则
原则1:测试用例中一个必须的部分是对预期输出或结果的定义
原则2:程序员应当避免测试自己编写的程序
原则3:编写软件的组织不应当测试自己编写的软件
原则4:应当测底检查每个测试的执行结果
原则5:测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况
原则6:检查程序是否“未做其应当做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
原则7:应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
原则8:计划测试工作时不应该默许假定不会发现错误
原则9:程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
原则10:软件测试是一项极富创造性、极具智力挑战性的工作
3 代码检查、走查与评审
代码检查、走查以及可用性测试是三种主要的人工测试方法
3.1 代码检查
代码检查:以组为单位阅读代码
检查过程:1)由程序编码人员逐条语句讲述程序的逻辑结构。在讲述的过程中,小组的其他成员应提问、判断是否存在错误。
2)参考常见的编码错误列表分析程序(数据引用错误、数据声明错误、运算错误、比较错误、控制流程错误、接口错误)
3.2 代码走查
不同与代码检查,代码走查会对一些书面用例进行人脑推演
4 测试用例的设计
推荐的步骤是先使用黑盒测试方法来设计测试用例,然后视情况需要使用白盒测试方法来设计补充的测试用例
白盒测试的方法:1)语句覆盖。2)判定覆盖。3)条件覆盖。4)判定/条件覆盖。5)多重条件覆盖。
黑盒测试的方法:1)等价类划分。2)边界值分析。3)因果图分析。4)错误猜想。
4.1 白盒测试
白盒测试关注的是测试用例执行的程度或覆盖程序逻辑结构(源代码)的程度
语句覆盖:较弱的准则,将程序中的每条语句至少执行一次。
判定覆盖或分支覆盖:较强的逻辑覆盖准则,必需编写足够的测试用例,使得每个判断都至少有一个为真和为假的输出结果。也就是说每条分支路劲都必须至少遍历一次。
条件覆盖:比判定覆盖更强的准则,条件覆盖要编写足够的测试用例以确保将一个判断中的每个条件的所有可能的结果至少执行一次。
判定/条件覆盖:设计出充足的测试用例,将一个判断中的每个条件的所有可能的结果至少执行一次,将每个判断的所有可能的结果至少执行一次,将每个入口点都至少调用一次。