1. 软件测试定义
首先要明确测试的定义,所谓测试,就是以检验产品是否满足需求为目标。
而软件测试,自然是为了发现软件(产品)的缺陷而运行软件(产品)
比较标准的软件测试的定义是:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。
IEEE 标准的定义:使用人工或自动的手段来运行或测定某个系统的过程,其目的在于检验;它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
软件测试的目的:
测试目的会随着不同测试阶段而有所侧重点,主要体现在:
1)发现缺陷
尽早和尽量多的发现被测对象中的缺陷,应该是测试人员测试过程中最常提起的一个测试目标,也是所谓测试价值的一个的重要体现。发现缺陷的目的是推动开发人员定位和修复问题,测试人员通过再测试和回归测试,确保开发人员已修复缺陷,并没有影响原来正常的区域,从而提高产品质量。开发生命周期的每个阶段,都应该有测试的参与,并尽量多的发现本阶段的缺陷,从而大大提高本阶段的缺陷阶段遏制能力,从而提高测试效率、降低成本和提高质量。
软件产品的质量是多维度的,因此软件测试的关注点不仅仅在被测对象的功能上面,各种非功能质量属性都应该是测试的关注点。更多的产品质量属性可参考标准ISO 9126 – 软件产品质量。
2)增加信心
当测试过程中发现很少或没有发现缺陷时,测试就可以帮助树立对于软件产品质量的信心。除了没有发现缺陷时可以降低风险增加信心之外。通过测试增加信心还体现在:
(1)确认Verification:确认软件产品描述的需求已经得到正确实现;
(2)验证Validation:被测对象可以按照用户/客户的要求工作(客户/用户是多个层面的含义,不仅包括最终的用户);
例如:假如我们参加用户现场的验收测试,此时测试的主要目的是为了确保软件产品可以正常工作,从而增加用户对使用产品质量的信心。
3)提供信息
测试过程的每个阶段都在为开发过程提供信息,包括给软件产品的不同利益干系人提供不同维度不同详细程度的信息。提供信息的主要目的是帮助利益干系人作出正确的决策:
(1)评估质量:通过测试过程提供的各种数据,可以帮助利益干系人评估被测软件产品的质量。例如:根据测试过程中发现缺陷的累积趋势、测试执行的进度数据、执行通过率和覆盖率等,可以判断软件产品是否满足计划中定义的质量要求;
(2)评估进度:通过提供的各种数据,可以帮助管理人员作出是否能及时发布软件产品的决策,包括评估:测试执行进度是否在计划范畴内、开发修复缺陷进度是否满足质量和发布要求等;
评估产品质量和进度情况,测试过程中提供的数据是非常重要的输入。
4)预防缺陷
测试过程中发现的缺陷,以及遗漏到用户现场的缺陷,都应该对它们进行缺陷根本原因分析,找到引入缺陷的主要原因。从测试角度也要分析为什么能发现缺陷,以及为什么缺陷会遗漏到用户现场。
缺陷根本原因分析的目的是从以前软件开发和测试过程中吸取经验和教训,避免同样的问题重复发生,从而改进开发和测试过程。过程改进反过来可以预防相同的缺陷再次引入或遗漏,从而提高软件产品质量,这也是软件质量保证的重要一环。
发现缺陷、增加信心、提供信息和预防缺陷这4个测试目的同样贯穿于整个生命周期,并且4个测试目标是相互支持和补充的。同时,不同阶段、不同利益干系人对不同测试目标的要求和详细程度都会不一样。
2.软件测试方法分类
- 强调需求,设计的作用;
- 前一阶段完成后只需关注后续阶段;
- 为项目提供按阶段划分的检查点,里程碑清晰
- 文档规范
缺点:
- 线性研发过程难以适应需求的频繁变化
- 项目周期后段才可看到成果,用户要到末期才能看到开发结果,增加了开发的风险
- 强制的里程碑,对于开发过程中出现的变化,适应能力较差,
- 文档工作量较大,测试在项目的后期,文档的开发带来很大的工作量。
5.2 V模型
5.4 X模型
最后总结一下:
如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:593462778,群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!