软件测试是为了保证项目质量,单元测试可以快速执行测试回归测试,做好单元测试可以大大提升测试效率,项目开发真正达到敏捷效果。

单元测试做什么?

1. 核心类方法

2. 异常处理

3. 边界值测试

4. 算法效率测试

5. 业务逻辑测试

要做到以上的各种测试,且写的用例要达到像黑盒测试用例那么细致周全。这个人必须是这个技术领域内的专家,他必须看懂所测试代码,必须对所测试领域技术规范非常熟悉。如果让专人去写,这个人什么时候能成为技术领域内行家呢?即使能花了很多时间去学习了一个领域,手机模块领域众多,他能学几个?学习成本实在太高。非领域专家,写了一些普通的用例,很基本的用例,并不能达到保证质量的效果。使用测试框架写用例并不难,难得是写的用例能像黑盒测试用例一样真的可以达到保证质量的效果。

综上:相应模块的开发是他自己领域内专家,他熟悉他自己的代码,只有他自己适合写自己代码的单元测试。

那问题来了,要如何做单元测试呢?

参考Google的开发架构,Google有测试开发工程师,但是其测试开发工程师,都是原来开发年限较长的开发转岗位,他们对自己曾经的开发领域是非常熟悉的。所以他们写的单元测试用例是非常细致,考虑非常周全的,同样他们也可以进行对应代码的修改与开发,这有点结对编程的意思了。Google 的开发一直都有写单元测试的传统与习惯,中国的开发极少有这样的思想。

所以真正全面做单元测试,必须调整开发结构,说服开发,自顶向下执行,养成单元测试习惯,逐步提高测试效果,保证项目质量。

最新文章

  1. Delphi容器类之---TList、TStringList、TObjectList,以及一个例程的代码分析
  2. 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete
  3. Gogs - 基于 Go 语言的自助 Git 服务
  4. 【BZOJ】1086: [SCOI2005]王室联邦
  5. iOS-Auto property synthesis will not synthesize property 'delegate'; it will be implemented by its super
  6. c++中-1是true呢还是false呢
  7. Quartz 第二课 Jobs and Triggers(官方文档翻译)
  8. java程序查不出数据来
  9. 在HTML中怎么去掉a标签(超链接)的下划线?
  10. iOS开发——短信验证码
  11. Mysql开发技巧之删除重复数据
  12. [key]严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener(Spring配置异常)
  13. CCF-201312-1-出现次数最多的数
  14. JavaScript八张思维导图
  15. mysql的innodb和myisam的区别和应用场景
  16. PyQt5 + QtDesigner
  17. GUI_菜单练习
  18. List中存放字符串进行排序
  19. Shell 基础 -- 输入、输出重定向
  20. Python入门:for循环、while循环

热门文章

  1. CF446C [DZY loves Fibonacci]
  2. 题解报告:poj 3067 Japan(典型BIT)
  3. 牛客小白月赛5-J-时间(time) (简单模拟)
  4. Optimizing Downloads for Efficient Network Access
  5. java getDocumentBase() 得到的文件夹路径
  6. MAT使用入门
  7. JDK集合框架--ArrayList
  8. Rxlifecycle使用详解,解决RxJava内存泄露问题
  9. HTML标签的分类
  10. element ui 在vue中使用可能遇到的问题