测试人员在进行手工测试时,具有创造性,可以举一反三,从一个测试用例想到另外一些测试用例,特别是可以考虑到测试用例不能覆盖的一些特殊的或边界的情况。同时,对于那些复杂的逻辑判断、界面是否友好,手工测试具有明显的优势。但是手工测试在某些测试方面,可能还存在着一定的局限性,包括:
·通过手工测试无法做到覆盖所有代码路径。
. 简单的功能性测试用例在每一轮测试中部不能少,而且具有一定的机械性、重复 性。其工作量往往较大,却无法体现手工测试的优越性。· 许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到。
· 在系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时.
也很难通过手工测试来进行。
· 在进行系统可靠性测试时,需要模拟系统运行lo年、几十年,以验证系统能否稳
定运行,这也是手工测试无法模拟的。
· 如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎
不可能做到。
· 测试可以发现错误,并不能表明程序的正确性。因为不论黑盒、白盒方式都不能
实现穷举测试。对一些关键程序,如导弹发射软件,则需要考虑利用数学归纳法
或谓词演算等进行证明。