盘点我们对于软件测试所存在的认知误区,你占了几个?

Time will tell.

盘点我们对于软件测试所存在的认知误区,你占了几个?_第1张图片

随着软件BUG频出现,以及人们对于软件质量的进一步认识,测试的地位也随之得到了前所未有的提升。

现在,测试已经不仅是局限于软件开发中的一个阶段,它已逐渐贯穿整个软件开发的过程。并且我们意识到,测试开始的时间越早,测试得越频繁,所带来的整个开发成本下降就会越多。

相对于测试这个词的流行程度,测试方面知识的普及做得还远远不够,很多资料文章比较的片面,一些测试工具厂商也由于商业目的而对于测试工具的作用进行夸大。所以,很多从业者会容易陷入一些误区,导致了测试没有在他们所在项目中起到更有效的作用。

下面针对性地对一些我们测试人所存在过的误区进行剖析,并对于测试背后所蕴含的一些设计思考进行了阐述,希望起到抛砖引玉的作用。


1、误区一

软件测试成为了开发后期的阶段:需求 -> 实现 -> 测试 (X)


实际上,软件测试需要贯穿整个软件产品生命期。

一方面,软件测试也要经历测试计划、测试用例的设计和实现,以及测试运行一系列的阶段,因此,早在软件需求阶段,甚至更早,软件测试的工作就要开始了。

另一方面,软件测试越早进行越好,因为BUG越早发现,BUG造成的影响和修改的代价就越小。而且,软件测试并不仅仅针对程序,软件的需求、设计等等也要被测试。

测试是一个 “ 泛型概念 ” 。如果单纯的只将程序设计阶段后的阶段称之为软件测试的话,需求阶段和设计阶段的缺陷产生的放大效应会加大。这非常不利于保证软件质量。

需求缺陷、设计缺陷同样也是软件缺陷,而且 “ 软件缺陷具有生育能力 ” 。需求有问题,连带着设计会出问题,最后到测试完成,客户拿到自己不是想要的产品。缺陷不断放大。

所以软件测试应该跨越整个软件开发流程。需求验证(自检)和设计验证(自检)也可算作软件测试的一种。

软件测试应该涵盖整个软件生命周期,这样才能确保周期的每个阶段经得起考验。同时测试本身也需要有第三者进行评估,即测试本身也应当被测试,从而确保测试自身的可靠性和高效性。

另外还需指出的是软件测试是提高软件产品质量的必要条件而非充分条件,软件测试是提高产品质量最直接、最快捷的手段,但决不是一个根本手段。


2、误区二

软件测试对技术要求不高,至少比编程容易得多。 (X)


很多人认为测试就是运行一下,然后看结果对不对就可以了。这是对测试缺乏根本的认识。看看结果对不对,可以采取很多方式,白盒测试需要分析代码逻辑来输入特例数据,黑盒测试需要执行常规操作来看反馈是否正确。

测试是有目的的发现程序的错误,如果对程序本身不理解,是无法找出程序的不合理的。所以,测试人员不仅需要知道程序员的代码,还要知道程序员的思维漏洞

  • 白盒测试不仅要理顺程序员的思路,还要找出其不合理之处;
  • 黑盒测试不仅要理解客户的需求,还要找出其暗藏的逻辑不合理性;
  • 白盒测试相对黑盒测试更具体一些,但正是黑盒测试面对的不确定性、抽象性、逻辑性、变动性、随机性和发散性,从而增加了其自身含金量。

这里要补充的是,软件测试的经验累积也是非常重要的。而且,测试不仅仅只是运行程序,还涉及到测试的管理。而管理能力的扩展,是无限延伸的。


3、误区三

使用测试工具,就是进行了有效的测试。 (X)


一个软件开发团队往往认为只要自己使用了某种软件测试工具,那么就应该可以获取测试带来的种种好处,这种想法当然是错误的。

因为,要想对一个软件或者模块进行有效的测试,首先该软件或者模块应该是可测试的。可测试性是反映软件质量的一个内在属性,不会因为你使用了某种测试工具进行了测试行为,就使得被测试的软件具有了可测试性。如果被测试的软件本身并不具备可测试性,那么使用多么昂贵的测试工具进行测试所能够带来的收益都是微乎其微的。

可测试性和好的软件品质的其他方面有天然的关联,一个具有可测试性的软件必然是一个强内聚、弱耦合、接口明确、意图明晰的软件,而不可测试的软件往往具有过强的耦合和混乱的逻辑。

要想真正获取测试带来的巨大好处,并且使得测试工具能够发挥最大的效率,关键就是要使软件本身具有很好的可测试性。这种能力的获取是一个逐步的过程,是不可能一蹴而就的。最关键的一点就是要不断实践,不断学习一些优秀的经验,不断反思。

对于测试工具的选择,只要满足需要并能够自动运行测试用例就可以了。不要一味的追求复杂的功能和不必要的灵活性。目前没有比较好的满足各方面需要通用的测试工具,不过使用脚本语言,循序渐进的自行开发一个适合自己的验收测试工具也不是一件困难的事情,只有提高了自身团队内在的素质,外在的工具才能够发挥作用。


4、误区四

自动化测试是万能的。 (X)


自动化测试可以提高效率,但不可能提高质量。

业界的8 2法则同样适用于此。即20%的工作量可以完成80%的自动化工作。其余20%的自动化,需要再投入80%成本。完全相信自动化测试的人,就像相信机器人能够取代人类是一样的。

自动化测试所存在的缺点:

  • 不可能完全取代手工
  • 对测试质量的依赖性极大
  • 测试自动化不能提高有效性
  • 工具本身是没有想像力的

盘点我们对于软件测试所存在的认知误区,你占了几个?_第2张图片

测试是一门技术,也是一门艺术。也许你今天拥有的技术,明天就会淘汰。我们需要开拓思维和眼界,积极拥抱变化,学习新知识、新方法、新技能、计算机领域讲究的是实践,学习更要讲究方式方法,学习和动手一定要结合。

作为测试工程师,不断提升自己工作能力是提高薪资待遇最重要的基础。另外也要注重学习, IT 行业是个不断发展、更新迭代相对较快的行业,技术具有明显的时代特征,所以紧跟时代技术的发展才能让自己不掉队,在职场当中具有足够的竞争力。

如果你对Python自动化软件测试等更多内容感兴趣,在这里推荐一个资料学习裙:175317069。有各项已整理好的测试学习资源,也有行业深潜多年的技术人分析讲解。
盘点我们对于软件测试所存在的认知误区,你占了几个?_第3张图片

你可能感兴趣的:(软件测试,软件测试,python,测试工程师,单元测试,压力测试)