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

单元测试做什么?

1. 核心类方法

2. 异常处理

3. 边界值测试

4. 算法效率测试

5. 业务逻辑测试

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

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

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

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

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

Java基础学习总结(89)——为什么单元测试应该我们开发人员来写的更多相关文章

  1. Java基础学习总结(90)——Java单元测试技巧

    测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运.良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机. 虽然有三种主要类型的软件测试:单元测试,功 ...

  2. [转帖]java基础学习总结——多态(动态绑定)

    https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态

  3. java基础学习笔记五(抽象类)

    java基础学习总结——抽象类 抽象类介绍

  4. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

  5. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  6. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  7. 转载-java基础学习汇总

    共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和 ...

  8. java基础学习总结——开篇

    java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...

  9. Java基础学习笔记(一)

    Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...

随机推荐

  1. bitset优化背包问题

    https://blog.csdn.net/HowardEmily/article/details/77340566 留坑待填

  2. fastboot命令详解

    Android手机分区(每个分区都有相应的img文件对应):开机启动画面区(splash1),数据恢复区(recovery),内核区(boot), 系统区(system),数据缓存区(cache),用 ...

  3. [转]Asp.net Mvc2中重构View的三种方式

    本文转自:http://www.cnblogs.com/zhuqil/archive/2010/07/14/asp-net-mvc2-view-refactoring.html 我们在Asp.net ...

  4. WPF学习09:数据绑定之 Binding to List Data

    从WPF学习03:Element Binding我们可以实现控件属性与控件属性的绑定. 从WPF学习07:MVVM 预备知识之数据绑定 我们可以实现控件属性与自定义对象属性的绑定. 而以上两个功能在实 ...

  5. 调度工具taskctl跨调度服务依赖实现

    调度工具taskctl虽然支持分布式调度,但是有的时候,不同重要程度的调度服务还是要区分开来,在区分开后,不同调度服务之间怎么实现依赖啦, 其实有很多方式,比如写文件,写数据库之类的,这些都可以根据用 ...

  6. JS性能分析(测试代码运行时间)

    //性能优化 console.time("timer"); for(var i=0;i<10000;i++){} console.timeEnd("timer&qu ...

  7. iTOP-4412开发板全新升级支持4G全网通模块

    开发板支持4G,GPS,CAN,485,WIFI蓝牙,重力加速度计,陀螺仪等模块. 核心板参数 尺寸:6cm*7cm 高度:连同连接器在内0.26cm CPU:Exynos4412,四核Cortex- ...

  8. ubuntu18.04 python版本切换

    update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了python2.7和pyt ...

  9. Java集合(二)--Iterator和Iterable

    Iterable: public interface Iterable<T> { Iterator<T> iterator(); } 上面是Iterable源码,只有一个ite ...

  10. ubuntu 普通用户运行virt-manager时libvirt权限设置

    error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission deniederror: failed t ...