文章目录
一、测试的基本概念
测试只是提高软件质量的一个手段,软件质量取决于软件设计,而不取决于软件测试
一个好的测试(能发现错误;不冗余;最佳特性;别太复杂也别太简单)
单元测试->集成测试->系统测试
静态测试、动态测试(写测试程序)
白盒测试是对程序内部代码结构的测试(关注程序的执行路径/情况,开发完才可以做)
黑盒测试是对程序外部表现出来的行为的测试(可以在(开发)运行之前做)
测试无法做到穷举性、完备性
二、测试用例
测试用例以及一个好的测试用例的要求
三、测试优先的编程
先写规约,再写符合规约的测试用例,再循环往复的执行测试与修改(TDD,Test-driven development,测试驱动开发)
写测试用例,就是理解、修正、完善你的spec设计的过程
四、单元测试(黑盒测试!)
针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试
五、用Junit进行自动化单元测试
大部分情况下,我们使用断言assert来编写测试
六、黑盒测试
黑盒测试:用于检查代码的功能,不关心内部实现细节
6.1等价类的划分
要将被测函数的输入域划分为等价类,考试的时候等价类可以划分多,但绝不能少,并从等价类中(找出一个代表)导出测试用例
我们要根据输入,从不同的方面划分等价类,要把所有等价类都覆盖掉。
还要记得考虑输入的特殊情况、边界值(边界测试)
边界测试一定要注意哦!
如上图,要把所有划分的等价类都给覆盖掉
测试用例的编写可以采用全覆盖(啥也不管,一个格子一个的去看,保证填满)或者区域覆盖(试数,一个可以填多个,再填剩下的)
6.2边界值
大量的错误发生在边界值,边界值分析法是对等价类划分方法的补充
在等价类划分的时候,把边界值作为等价类之一加入考虑,比如:写成min-1或者max+1
七、白盒测试(小题,考概念)
黑盒测试完全从函数spec导出测试用例,不考虑函数内部实现
白盒测试要考虑内部实现细节
白盒测试要根据程序执行路径设计测试用例,只能测程序的实现,其一般较早执行,白盒测试要确保程序的每一条路径都被执行
这个测试是生成的白盒测试的边界值。
典型的白盒测试被称为独立/基本路径测试:对程序所有执行路径进行等价类划分,找出有代表性的最简单的路径(例如循环只需执行1次),设计测试用例,使每一条基本路径被至少覆盖1次。
八、测试覆盖度
考点:路径覆盖 (但路径数量巨大,难以全覆盖)> 分支覆盖 > 语句覆盖
Automated Testing(自动化测试):只是“测试用例的自动执行”,并非“自动生成测试用例”
回归测试:一旦程序被修改,重新执行之前的所有测试
九、测试策略
测试策略(test strategy)应该记录在测试类上方,每个测试方法上面应该写上评论注释