• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

(一)单元测试实战:上路

发布: 2009-4-09 12:33 | 作者: 不详 | 来源: 测试时代采编 | 查看: 42次 | 进入软件测试论坛讨论

领测软件测试网

代码的行为与我的期望一致吗?

        最根本的是,我们需要回答一个问题:“这段代码达到我的目的了吗?”先别太关心需求,当前要做的事情是确保一段代码的行为与期望一致。

        代码的行为一直和我的期望一致吗?

        工程师在设计桥梁的时候,必须考虑负载、强风、地震、洪水等等,不能在因洪水出现问题后说,“如果风和日丽就不会有问题了”。

        程序开发亦是如此。记得以前开发的时候,一个模块开发完毕后,我就把那些相关的页面打开,按正常的顺序输入正确的数据把功能走一遍,如果都通过了就交给测试人员。而测试人员最喜欢的一件事就是找出开发人员的bug,他们会想法按错误的顺序输入错误的数据,然后等着bug出现。

        结果是,我的程序出了一堆bug,它们大多数都是因为错误的顺序或者错误的数据,我气愤地跟他们说,“你如果按正常的顺序输入正确的数据就不会有问题了!”

        但事实是,测试桥梁时,不能仅选择在风和日丽的一天,仅让一辆车顺利通过,这远远不够。同样的,在测试代码的行为是否与期望一致时,需要确认:在任何情况下,这段代码是否都与期望一致:比如文件不存在、权限不足、索引越界、网络断掉的时候。

        我可以依赖单元测试吗?

        不能依赖的代码是没有多大用处的。更为糟糕的是,那些我们认为值得信赖的代码(但其实是有bug的)有时候会让我们花费更多的时间去跟踪和调试。

        没有人能够写出完美无缺的代码,但是这没问题——只要我们知道问题的所在就可以了。

        我们希望能够依赖于所编写的代码,并且清楚地知道这些代码的功能和约束。

        单元测试能否表达我的意图?

        编写单元测试,一个额外的好处就是它能够帮助我们表达代码的意图。在效果上,它就像是可执行的文档,说明了在用各种条件调用代码时,我们对代码行为的期望。

        当团队的其他成员看到测试代码后可以将其作为代码用法的示例。如果他发现了一个遗漏的测试用例,他会很快知道:代码可能不支持这个用例。

1.4 如何进行单元测试?

        单元测试是较为简单易学的技术,如果遵循一些指导性原则,学习会变得更为容易和有效。

        首先要考虑的是在编写测试方法之前,如何测试那些可疑的方法。有了大概一个想法之后,可以在编写实现代码的时候,或者在此之前,编写测试代码。

        下一步,要运行测试本身,或者所在模块的其他测试,甚至是整个系统的测试,前提是它们要运行得相当快。重要的是所有测试用例都要通过,而不是仅仅新加的那个。这种基本的回归测试(Regression Test)可帮助我们避免对其他的测试带来间接的破坏。

        我们还要借助于单元测试框架来进行测试,这样可以大大提高效率。相关的知识可在后面的文章中介绍。

1.5 可是我还是不想测试

        看了上面的这些介绍后,也许你能理解单元测试的必要性,也许你还在犹豫,而且还有不少的理由。

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网