软件测试的定义
测试是为发现错误而执行程序的过程。
软件测试的方法
黑盒测试
又称为数据驱动的测试或输入输出驱动的测试。
是将程序视为一个盒子,测试目标与程序的内部机制和结构完全无关。
一般测试方法是 穷举输入。
白盒测试
又称为逻辑驱动的测试。
对程序的内部逻辑进行测试。
软件测试的原则
- 测试用例中一个必需部分是对预期输出或结果进行定义。
一个测试用例必须包含两个部分:
- 对程序的输入数据的描述
- 对程序在上述输入数据下的正确输出结果的精确描述
- 程序员应当避免测试自己编写的程序。
- 编写软件的组织不应当测试自己编写的软件。
- 应当彻底检查每个测试的执行效果。
- 测试用例的编写不仅应当根据有效和预测到的输入情况,而且也应当根据无效和未预料到的输入情况。
- 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”。
必须检查程序是否有我们不希望的作用 - 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件。
- 计划测试工作时,不应默许假定不会发生错误。
- 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比。
错误总是倾向于聚集存在 - 软件测试是一项极富创造性、极具智力挑战性的工作。
人工测试
代码检查与走查
都要求人们组成一个小组来阅读或直观检查特定的程序。
代码检查、走查与基于计算机的测试是互补的,人工方法一般只能发现简单的错误,但它更容易修改错误。