随着软件测试技术的发展,人们已经从最初的手工测试转变为手工和自动化技术相结合的测试方法。目前,人们更多的是关心自动化测试框架、自动化测试工具以及脚本研究等技术方面,而在软件自动化测试方案的效益分析方面涉及较少。
软件测试的目的是提高软件质量,避免软件缺陷导致的损失。与其他软件过程活动一样,测试也需要投入人力和资金成本。因此,需要对软件测试进行成本效益分析,判断测试活动是否带来正向收益。
自动化测试需要考虑的因素
因此,为了更好的管理测试行为,我们往往要判断自动化测试有没有提高测试的效率,是否提升了整体的效益。和人工测试相比,虽然自动化测试有很多优势,但是不能期望通过自动化测试来取代手工测试。在选择自动化测试的时候需要考虑以下几个方面的因素:
1.项目的类型及周期:对一次性项目或者开发周期很短的项目,就不值得花精力去投资自动化测试好不容易建立起的测试脚本.不能得到重用是不现实的。
2.复杂度:自动化是否容易实现包括数据和其他环境的影响。
3.项目是否有延续性:有延续性的以后会有很多能复用的地方.适合做自动化测试:没有延续性的,可能就不是很适合。
4.项目的开发模式和开发计划:需要有很多次的重复测试的.适合作自动化测试:测试重复次数不多的,则不适合用自动化测试。
5.维护工作量:代码是否能长期保持相对稳定?功能特性是否会进化。
6.覆盖率:自动化测试能否覆盖程序的关键特性和功能?
7.自动化测试的执行:负责执行自动化测试的小组是否拥有足够的技能和时间去运行自动化测试?
自动化测试的最大价值就在于每次测试运行时的低成本
自动化测试的经济成本通常可以描述为固定成本和可变成本。
固定成本主要指软硬件成本包括:硬件、应用软件的许可证、应用软件的技术支持、自动化测试环境的设计和搭建、脚本开发工具软件、脚本开发工具的许可证、测试工具的培训、测试工具的引入和启动等。固定成本不受自动化测试的成果数量和运行次数的影响。可变成本主要包括测试准备成本、创建自动化测试的成本、执行自动化测试的成本、维护自动化测试的成本和测试报告生成成本。这些因素中,创建自动化测试的成本、执行自动化测试的成本、维护自动化测试的成本对测试成本的计算起着较大作用。
几种常用的软件测试成本效益分析方法
ROI分析法
ROI全称Return on Investment,即投资回报率。其计算公式为:(预期收益 - 测试成本)/测试成本。如果ROI大于0,说明测试活动带来收益;如果小于0,说明测试成本大于收益。该方法简单直接,适合初步分析测试价值。
质量损失函数法
该方法将质量成本分为合格品质成本和不合格品质成本。测试活动属于提高合格品质的成本,而软件缺陷导致的损失属于不合格品质成本。投入适当测试成本可以降低缺陷损失,达到最小总质量成本。
预防成本与失败成本比
预防成本是指为提高质量所投入的成本,测试成本属于其中;失败成本是软件缺陷造成的损失。通常,预防成本占全部质量成本的10-20%可以带来80%的质量提高。
测试覆盖率与缺陷相关法
评估测试对需求的覆盖完整性和通过测试发现的缺陷数目,来判断测试的价值。测试覆盖率越高,发现缺陷数越多,说明测试活动价值越大。
风险评估法
评估测试可以降低的风险值,如业务风险、法律风险等。测试带来的风险减少可视为收益。
所以,软件测试的成本效益分析需要量化收益和成本,选择适当方法进行全面分析,以判断软件测试的投资价值。