软件测试的目标:失败等于成功[3] 软件测试
所有的使用者都会犯错误
在测试一个新的软件应用程序的时候,看到不好的测试结果的人肯定要反对你的测试场景。“没有人会那样做!”。不要相信没有这个。一些用户会那样做,或者做一些更糟的事情,并且他们不是有意那样。你的工作就是在产品运送到客户手里以前,考虑用户会犯的错误中最坏的情况,并且确认你的产品仍然能够安然无恙,没有崩溃或者丢失数据。再说一遍,你要寻求的是那些能够发现危险bug的测试故障。
让我们再看一下我们之前讨论的简单程序,那个需要6,000次测试才能包括所有可能的程序。如果你要设计只在合法的输入,环境,操作等情况下的测试,那么你的测试只涵盖了对你系统运行来说最好的场景。但是,如果有些地方出错会怎样?如果用户手指滑了一下,或者错误的配置了什么,或者删除了非常重要的信息,你的软件会怎样表现?或者当一个系统/服务器出现挂起,或者出现达到一些资源的上限(比如内存,磁盘空间,数据库记录的ID等),会发生什么?当一些应该被标识为损坏的数据进入或者通过系统会怎么样?如果操作中断,系统处于含糊不清的状态?或者如果太多的人在同样的时间做同样的事情?潜在错误的列表是无限的,并且如果你只想确认“它可以工作”的话,你可能就会忽略掉这些场景中的大部分。
结论
我希望这篇文章可以让你确信软件测试的真正目标是寻找bug。即使是在交付时间表很紧的情况下,采取一个步骤来想一下从哪里开始着手,你的测试将会是最有效率的。但即使在时间非常充足的情况下,你也不可能测试出每一个bug,所以你必须将你的测试划分优先级,划分的根据是基于产品目前的状态(新的,修改的或者只是纯漏洞)和对客户的可能影响而进行的最诚实的评估。避免采用你知道软件可以处理的测试数据和操作;你的任务是在测试中扩大软件的边界。在你设计自动化测试时,也要避免“踩灭”失败条件的误区。你的任务不是创造大量的总是可以干净的成功运行的测试。你需要去寻找和理解故障条件。不要浪费时间去想你的软件产品中是否存在bug。它肯定有bug,并且你不可能全部找出它们。你的组织和你的顾客指望你找出那些最有影响的bug。你必须要做的是,你要从消极的角度考虑这些问题。
文章来源于领测软件测试网 https://www.ltesting.net/