美文网首页自动化
高效程序员---测试

高效程序员---测试

作者: 天堂_7f03 | 来源:发表于2019-02-17 22:04 被阅读0次

    测试也是程序员的事吗?


    为什么要测试?因为它能让项目的质量有保证。

    程序员最基本的职业素养:保证自己开发的软件尽可能地是对的。因此在提交代码之前,将代码运行一遍,保证提交的基本功能是正确的,这就是最基本的测试。

    测试应该是程序员工作的一部分,为什么这么说呢?因为测试人员只能站在系统外部做功能特性的测试。而一个软件是由它内部诸多模块组成的,测试人员只从外部保障正确性,所能达到的效果是有限的。程序员测试能保证自己的模块内部正常

    测试是软件开发重要的组成部分,测试应该是软件开发团队中所有人的事,而不仅仅是测试人员的事。因为软件变更成本会随着时间和开发阶段逐步增加,能在早期解决的问题,就不要将它延后至下一个阶段。

    测试区分:单元测试、集成测试、系统测试

    不同的测试如何组合的最佳实践:测试金字塔。它强调的重点是,越底层的测试(即单元测试)应该写得越多。只有按照测试金字塔的方式写测试,持续集成才能更好地发挥作用。

    今日一句话:多写单元测试


    测试驱动开发TDD


    先写测试,后写代码的实践指的是测试先行开发,而非测试驱动开发

    测试驱动开发:Test Driven Development,即TDD。它的节奏是:“红-绿-重构”。把测试放在前面,还带来了视角的转变,要编写可测试的代码,会减少先写代码后写测试代码的难度。

    测试先行开发和测试驱动开发在第一步和第二步是一样的,先写测试,然后写代码完成功能。二者的差别在于,测试驱动开发并没有就此打住,它还有一个更重要的环节:重构。

    重构是一个消除代码坏味道的过程,也就是说,在功能完成而且测试跑通之后,我们还会再次回到代码上,处理一下代码上写得不好的地方。一旦你有了测试,你就可以大胆地重构了,因为任何修改错误,测试会替你捕获到。没有测试,你只能是提心吊胆地重构。

    今日一句:编写可测试的代码

    为什么你的测试不够好?


    测试的基本结构:前置准备、执行、断言和清理。

    常见的测试“坏味道”:做了太多事的测试,没有断言的测试,测试里有判断语句。

    好的测试标准: A-TRIP,即:

    Automatic,自动化;把测试尽可能交给机器执行,人工参与的部分越少越好

    Thorough,全面的;尽可能用测试覆盖各种场景。 1、测试要考虑各种场景:正常的、异常的、各种边界条件;2、测试是否覆盖了所有的代码和所有的分支,即测试覆盖率

    Repeatable,可重复的;某一个测试反复运行,结果应该是一样的,即每一个测试本身都不应该依赖于任何不在控制之下的环境。如果有,怎么办,想办法。

    Independent,独立的;测试和测试之间不应该有任何依赖。如果测试之间存在依赖,将测试并行起来,就有可能出现各种问题。如果实在要依赖,每个测试自己负责前置准备和后续清理。

    Professional,专业的。测试代码,也是代码,也要按照代码的标准去维护。

    今日一句:要想写好测试,就要写简单的测试

    文章来源:极客时间《程序员10x工作法》

    相关文章

      网友评论

        本文标题:高效程序员---测试

        本文链接:https://www.haomeiwen.com/subject/cixveqtx.html