软件测试活动的目的

发表于:2013-10-24 09:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈晔    来源:51Testing杂志投稿

  前两天有位朋友在知乎上问了这样一个问题"软件测试的目的是什么?我看到《软件测试之魂》中说道软件测试的目的就是发现缺陷,个人觉得在软件发展的今天,测试不仅仅只是发现,还有预防,降低风险等多个目的,那么软件测试的目的到底是什么呢?"
  我首先要赞一下肖老师的这本书,非常的不错。个人对于这个问题感觉真的不好回答,前几天我还在微博上说我要加入一章行业常见问题解答,马上引来各种声音。不过这类问题基本上就如同我一些朋友说的,根本没有固定答案,所以往往我是避免回答这类"虚"的问题。其实真的要说软件测试的目的其实非常多,但是这个目的可能在不同的场合,不同的企业,不同的团队中体现都有细微的差异,几乎不太可能完全一样。
  接着我就尝试着回答这个问题,软件测试的目的是什么?这个问题就如我上面说的,太虚。"虚"从字面上来解释的意思就是空、不实际,所以对于一个很空很不实际的问题着实很难进行全面的思考。我觉得更好的应该将问题应该集中在人身上,软件测试工程师存在的目的是什么呢?不过说到这个问题又让我想到了"左耳朵耗子"写的一篇"我们是否还需要QA"一文,所以我又觉得这个问题也不好,因为也许在不同环境,不同人的身上体现出的效果不同,并且我也不要将问题定位在某个特定的职位上。最终我觉得正确的问题应该是"软件测试"这个活动,这个过程的目的是什么。
  讨论这类问题都需要设置好前提条件,否则就是空谈。软件测试这个过程的目的首当其冲的就是找到缺陷,让产品正常发布。从我个人来看,无论怎么样的流程和模式,软件测试这个活动肯定只能降低风险,不可能做到完全预先知道风险在什么地方,所谓完全预防风险就是风险为零的意思,但我们从实际项目中看到最终还是降低风险,这点无庸置疑。但是就如同提问的这位同学说的,肯定不仅仅是降低风险。当然,肖老师说的也没有错,因为从结果来看的话,其实测试的目的就是发现软件的缺陷,现在的各种开源框架,各种流程,各种模型,各种理念为的就是从项目的不同的时间,不同的切入点,不同的深度来发现缺陷,这点是永远不会改变的。但其实还有一些其他的点可以补充。软件测试的活动还会带来以下一些无意识的进步,当然这些进步都是基于会思考的人:
  1. 让执行测试活动的工程师更了解测试理念,测试设计,测试技术,从而让自己的测试活动更有效率更有深度
  任何一件事情每个人都是从不会到会慢慢进步的,测试也不例外。执行测试的人员会在项目过程中碰见如下常见的问题:
  *不知道测试具体做点什么事情
  *测试用例往往冗余或遗漏重要功能点
  *测试时间不充裕
  在之前提到了分析这个问题的前提,前提是会思考会自我学习的人。也许他们会在过程中碰见很多挫折,但同时也会通过自己的努力了解测试需要做点什么,如何使用测试的设计方法更好的编写测试用例,如何使用各种技术来辅助自己测试,从而提升测试的效率。在传统的瀑布模型中测试活动都比较滞后,而现在有更多的思想和技术让测试在项目各个阶段很好的介入,从而让产品更快更好的发布。做测试的这个人在不停的进步,团队和产品同时都在进步。
  2. 提升团队沟通效率
  *做测试的这个人在整个项目中也许是在团队中最活跃的一个,也是认识人最多的一个。他需要从项目开始跟进直到下个项目开始,测试活动的存在会被动的让让开发、测试、项目/产品经理,PO,Scrum Master等人之间更好的进行沟通。如果在一个原本主动性不高、沟通效率差的团队中存在一个负责主动性强的人来负责测试活动的话,那么绝对会大大改善这一切。关键在于以下几点:
  *做测试的人从项目开始就介入,了解需求的同时,对于需求也提出不同于开发人员思维的质疑。每次的质疑、提问、解答就是一个团队沟通的过程。
  *做测试的人在不停的需求变动中需要时刻跟进,保证自己的认知和需求是同步的。从而告知团队中其他不主动,认知滞后的小伙伴们。
  3. 随着产品的多样化,项目迭代周期越来越缩水。迫使测试活动不仅仅在开发结束后开始,更多的从项目各个阶段介入,比如现在的BDD,TDD,ADTT等,目的就是为了让测试和开发并行甚至是走在开发的前面,从而改变项目将最后的时间全部压在负责测试活动的人身上的窘状。比如现在的敏捷,并非特指敏捷开发或敏捷测试,更多的是一种思想,一种氛围,让整个团队都对质量提升意识,都参与到对于产品质量负责的队伍中去。
  4. 执行测试活动的工程师会慢慢的更多的关注交互以及界面设计,因为这一部分是与客户或用户对于产品评价有直接关系的。但要拥有这种交互以及设计的sense不是那么容易的,需要长期的摸索和总结。比如阅读各种设计类书籍以及产品官方设计文档,使用竞争对手的产品等等。这些进步也许过头去看的时候会觉得是理所当然的,但更多的是因为大家都有了对于产品质量正确的认识,引入了测试这项活动,从而有意无意的改变了很多东西。
  其实截止到今天,测试活动谁来做已经不在那么清晰,测试活动到底什么时候做、怎么做的更好更没有一个定论。但唯一不变的是,项目流程、产品性质无论如何变化,测试活动是不可或缺的,其目的最终就是找到产品的缺陷,为了给客户或用户提供最好的产品体验。
  最后我还需要补充一句的是,这类问题可以去了解,可以去思考,但不要去纠结。毕竟我们作为测试工程师最大的职责就是在自己公司的团队、环境中发挥我们最大的热情和技术,将产品质量达到最高,而不是在各个论坛或者沙龙活动来纸上谈兵的,切记不要本末倒置。
版权声明:本文出自 陈晔 的51Testing第31期杂志的投稿文章
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号