随笔:思考软件测试的目的和意义

论软件测试的目的与其测试存在意义和价值,众云纷纷,教科书式的回答:

1.尽可能发现更多缺陷

2.提高开发效率,降低开发成本

3.提高用户体验。

软件测试最初只是验证其系统是否可正确运行,发展至今,软件测试的最终维度已经上升到了产品质量的本身,而不仅仅只局限于是否正常运行、或是否存在缺陷。关于缺陷,我们(项目组各个成员,企业上至老版,技术总监,下至新萌开发)都应该对缺陷有一个正确的认知:测试人员不可能发现系统中所有的缺陷,每个版本发布前也不可能所有已知的缺陷都会得到修复。所以——测试,是为了发现更多缺陷、预防风险。

为什么测试人员无法发现系统中所有的缺陷?

在用例设计环节中,测试人员为了尽可能实现高覆盖率的测试,测试用例设计涉及多种方法和技术,如:等价划分、正交试验、判定表、状态迁移、因果图等等,有些时候需要方法与方法之间组合进行使用,以保证更多的覆盖系统的每一行代码、每一个逻辑判断的运行,每一个可操作的功能分支都得以覆盖。听起来是没错的,似乎也应该这样。但是这样完全进行下去的结果就是“穷举测试”。

所以在庞大的工作量面前,老板们是不允许的,所以测试的最终目的,是尽可能在有限的时间内发现更多有效的,容易被用户认知的,复现几率较大的缺陷。

那低级别的缺陷我们就不应该去发现么?

从原则上来说,系统的完整性、统一性是很有必要的,倘若缺陷级别较低,解决与否都不影响用户使用,且缺陷存在本身用户也不会有感知,需求文档中也没有细致到可以证明是否为缺陷时,这时候,就需要我们测试人员从用户体验角度去甄别,此是否需要定义为缺陷。所以——测试,是为了提高用户体验。

关于提高开发效率,降低开发成本,这个外行人看起来很理解不了的问题,内行人其实一眼就看明白了。测试跟踪需求、验证质量;提交缺陷,也促进开发人员技术提升,这个里边牵扯到项目流程管理的问题,此处不在多言,但需明确一点:软件的质量不仅只能依靠测试人员,最终的质量如何是是整个团队的最终结果。

猜你喜欢

转载自www.cnblogs.com/data1/p/10341139.html