软件测试

阅读《被高估了的测试驱动开发?》随笔

2020-02-29  本文已影响0人  maxduoduo

原文链接 

作者 | Tylor Borgeson,已获作者翻译授权

译者 | 罗昭成,责编 | 唐小引


         从2017年4月至今,我从事软件测试行业快满三年了,从一个名副其实的菜鸟到现在别人眼中该成为“老鸟”的我,最近到了一个迷茫期、瓶颈期,入职以来,功能测试、自动化测试都接触过了一些,现在该考虑更加明确的职业规划了,相信不少软件测试从业者在我这个阶段,或早或更晚会遇到同样的问题,为了找寻整个答案,近期会强制自己利用业余时间补充一些知识,虽然不知道什么时候能找到答案,但是总比麻木机械式的工作要好一些!


阅读前的问题:

1、什么是测试驱动开发?

2、测试驱动开发有什么作用?

3、测试驱动开发适用于什么特点的项目?

4、测试驱动开发的参与者包括哪些团队?主要的执行者是谁?


好的,那么现在开始尝试在文章中寻找答案


1、什么是测试驱动开发?

TDD(Test-Driven Development) 是一种软件开发的策略,它通过写测试来引导开发流程。    

实现测试驱动开发主要遵循以下三个步骤:

为你要写的一小部分功能编写一个失败的测试用例。

实现你的功能逻辑,让你的测试用例通过。

重构代码,保证代码的结构与可读性。

2、测试驱动开发有什么作用?

使用 TDD 另一个好处是,它能让开发人员在编写逻辑代码之前,仔细思考要编写什么样的代码,以及如何去编写代码。 

在编码之前的思考,能够让开发者真正深入业务需求,考虑可能存在的边界问题和可能存在的挑战,这个过程虽然费时而且很痛苦,但它并不是浪费开发人员的精力。    

不仅如此,先写测试,还会促使开发人员从一开始写代码的时候,就考虑系统的设计与架构,这样可以大大地提高系统扩展性。

4、测试驱动开发的参与者包括哪些团队?主要的执行者是谁?    

 作者认为,把开发者能做的单元测试交给测试部门来做,是非常不明智的行为。测试部门有更多更重要的事情要做,而不是浪费时间来做黑盒测试。

       根据目前我所参与过的测试项目而言,测试团队并没有做单元测试,我分析原因有如下因素:

1、开发源代码没有对测试开放

2、测试人员的编程技能仍储备不足

       并且据我了解,我参与过的项目对应的研发团队也没有做单元测试(需要再核实),他们有相应的代码评审机制(在我看来也并没有什么实际作用,有时也仅仅是表面流程)


        阅读完全文,发现问题3并没有找到答案,我的理解是,所有软件开发项目,无论需要为单元测试Mock多少复杂的上下文,从软件开发的交付时间来看,可能会导致时间变长,但从整个项目的开发周期来看,TDD可以使开发人员在设计代码之前就将代码的架构考虑的很合理,并且会将一些低级的Bug扼杀在摇篮里,长远来讲,会使整个项目的周期缩短。

【END】

上一篇下一篇

猜你喜欢

热点阅读