在实施测试活动时,测试工程师需遵循软件测试的基本原则。经过软件工程、软件测试理论几十年的发展与总结,概括出7条软件测试基本原则。
一、 测试证明软件存在缺陷
无论何种测试活动,其目的都是为了证明软件存在缺陷。通过测试活动可以减少软件中存在未被发现缺陷的可能性,降低漏测风险,但即使通过测试未能发现任何缺陷,亦不能证明被测对象不存在缺陷。
在实际工作中,开发人员在测试工程师不能发现缺陷后,经常会说被测对象已经没有任何问题了,这种观点是极其错误的。
二、 不可能执行穷尽测试
软件是运行在硬件基础上的逻辑实体,在复杂多变的环境中,任何运行环境发生变化都可能导致缺陷的产生,除了小型系统,利用穷举法进行测试是不可能的。
通过风险分析、被测对象测试点优先级分析、软件质量模型及不同测试方法的运用来确定测试关注点,从而替代穷尽测试,提高测试覆盖率。
三、 测试应尽早启动、尽早介入
防患于未然,缺陷越早发现,修复的成本越低。为了尽早发现缺陷,在软件系统生产生命周期中,测试(评审)活动应尽早介入。通常情况下从项目立项开始,每个阶段都进行评审活动。
四、缺陷存在群集现象
引用经济学中的二八原则,一个软件系统的核心业务及功能往往只占系统的20%左右,但这20%模块的缺陷数量可能占了整个系统的80%左右。测试过程中人力、时间、资源分配比例应根据系统业务功能的优先级匹配,并在测试活动结束后,根据缺陷分布情况再进行调整。
在实际测试过程中,不可均分测试资源,需考虑测试投入及风险控制,可使用基于风险或操作剖面的测试策略重点测试。
五、 杀虫剂悖论
害虫经过几轮药物毒杀后,其后代将产生抗体ÿ