测试软件有两种基本方法:通过性和失效性测试。在进行通过性测试时,实际上是确认软件至少能做什么,而不会考验其能力。软件测试员并不需要要想尽办法让软件崩溃,仅仅运用最简单、最直观的测试用例。
既然测试软件的目标是找出软件缺陷,为什么还要进行通过性测试呢?为什么不尽量去设法找出软件缺陷呢?不,开始是这样的。
设想一种类似的情况,即一辆新设计的汽车,如果受命测试刚下生产线、从没开过的一辆样车,测试者可能不会立即坐上去、发动汽车、驶入检测道路、尽全力高速行进。这样可能会撞车,发生生命危险。作为新车,在正常驾驶条件下低速行驶时可能会暴露所有的缺陷。也许轮胎尺寸不对,或者制动力不足,或者发动机噪音过大。在上路冲击极限速度之前是可以发现并解决这些问题的。
注意 在设计和执行测试用例时,总是首先进行通过性测试。在破坏性测试之前看看软件基本功能是否能实现是很重要的,软件测试员可能会吃惊地发现仅仅正常使用软件就会发现那么多软件缺陷。
确信软件在普通情况下能正确运行之后,就可以采取各种手段搞垮软件来找出软件缺陷了。纯粹为了破坏软件而设计和执行的测试用例称为失效性测试或错误强制测试。
错误提示信息:是通过性测试还是失效性测试
测试用例中常见的一种就是设法迫使软件出现错误提示信息。大家熟知其中的一些--例如没有在软驱中插入磁盘而向软件中保存文件。这些用例实际上搅乱了通过性测试和失效性测试之间的界限。产品说明书可能会特别说明某些输入条件将产生错失效性测试。实际上,可能两者都是。
不必费力去区分它们。重要的是设法迫使指定的错误信息出现,或者设计测试用例迫使未考虑到的错误暴露出来。最终可能在通过性测试和失效性测试中都找出软件缺陷。
网友评论