------- android培训、java培训、期待与您交流! ----------
Unit Testing
单元测试基础1、Java单元测试框架:JUnit(Eclipse默认安装)、TestNG
2、单元测试目的:判断程序的执行结果与自己的期望结果是否一致
3、口号:keep the bar green,keep the code clean
4、单元测试的任务:
1)接口功能测试:保证接口功能的正确性
2)边界条件测试:当变量是数值,测试主要边界:最大值、最小值、无穷大,测试溢出边界:最大值+1,最小值-1,测试临近边界:最大值-1,最小值+1;当变量是字符串,测试空字符串,对字符串长度应用“数值变量”的边界;当变量是集合,测试空集合,对集合大小应用“数值变量”的边界
3)代码覆盖率测试:语句覆盖、分支覆盖、条件覆盖、路径覆盖等
Java代码覆盖率分析工具:Cobertura,Emma:Eclipse插件Eclemma,Jacoco
5、圈复杂度(Cyclomatic Complexity):衡量一个模块判定结构的复杂程度,圈复杂度大说明程序代码的判断逻辑复杂,难以测试和维护,计算方法:V(G)=e-n+2,其中e表示控制流图中的边的数量,n表示控制流图中节点的数量。圈复杂度的直观计算:V(G)=判定节点数(P)+1 = 区域数,比如下面的代码,圈复杂度为2
Java圈复杂度分析工具:Eclipse插件Metrics
JUnit 3.8
1、JUnit的最佳实践经验:
1)新建名为test的source folder,用于存放测试源代码
src和test分别是两个source folder,程序发布的时候略去test文件夹,但是目标类和测试类生成的.class文件能都在bin目录
2)虽然被测源代码和测试源代码在不同的source folder,但是应在source folder里面建立同名的包,这样测试源代码能够访问源代码里pulic&