|
什么是“好”的测试? Kaner,Falk & Nguyen
1、一个好的测试发现错误的可能性很高
为了达到这个目标,测试者必需理解软件、并尝试设想软件如何才能失败,例如:在GUI(图形用户界面)中有一种潜在的错误,即错误识别鼠标位置,那么就应该设计一个测试集来验证是否存在鼠标位置识别的错误。
2、一个好的测试并不冗余
测试的时间和资源是有限的,没有必要构造一个与其他测试用例完全相同的测试,每一个测试都应该有不同的用途〔哪怕是细微的差异〕。例如,软件SafeHome中有一个模块被用来识别用户密码以决定是否启动系统,为了测试密码输入的错误,测试者设计了一系列的输入密码。在不同的测试中输入有效与无效密码(4个数字),然而,每一个有效/无效密码将只检测一种不同错误模式,例如一个将8080作为有效密码的系统将不会接受非法密码1234,如果接受1234,将产生错误,另一个测试输入1235,与1234的测试意图相同,因此是冗余的,然而,非法输入8081或8180就有些细微的差异,即对与有效密码相近但并不相同的密码应该进行测试。
3、一个好的测试应该是“最佳品种”
在一组目的相似的测试中,时间和资源的限制可能只影响其某个子集的执行,此时,应该使用最可能找到所有错误的测试。
4、一个好的测试既不会太简单,也不会太复杂
虽然有时会将一组测试组合到一个测试用例中,其副作用可能屏蔽错误,通常每一个测试应该独立执行。
[ Last edited by 天网 on 2004-5-13 at 11:26 ] |
|