软件测试与测试优先的编程
对软件测试进行复习。 即使是最好的测试也无法达到百分之百的无错。 好的测试:能发现错误。 不冗余;最佳特性;别太复杂也别太简单。 Testing levels :单元测试(函数级别);集成测试(包,类,等等);系统测试(最终测试)。 静态测试;静态测试通常是隐含的,作为校对,加上当编程工具/文本编辑器检查源代码结构或编译器(预编译程序)检查语法和数据流作为静态程序分析。(没有实际运行) 动态测试:动态测试描述了对代码的动态行为的测试,它实际上是用给定的一组测试用例来执行编程代码。-动态测试可以在程序100%完成之前开始,以便测试特定部分的代码,并应用于离散的函数或模块。-这方面的典型技术是使用存根/驱动程序或从调试器环境执行。 先测试,在调试。 白盒测试:对程序内代码结构的测试 黑盒测试 黑盒测试##对程序外部行为进行的测试。 想要进行好的测试,就要抱着想要另其出错的态度。
测试用例
测试用例:输入+执行条件+期望结果 测试用例是为特定目标而开发的,例如执行特定的程序路径或验证对特定需求的遵从性。 测试用例可能只是您对程序提出的一个问题。运行测试的目的是获取信息,例如,程序是否通过测试。测试用例是质量保证的基石,而测试用例是为了验证产品的质量和行为而开发的。
测试优先的编程
先写spec(规约) 再写符合spec的测试用例 测试,修改,通过。 先写测试更为方便。
单元测试
针对软件的最小单元模型进行测试
Junit测试
junit是一个单元测试框架。 junit单元检测仪@test为注释 利用断言等方法进行检测, 1.assertEquals 测试两个对象是否相等,该断言不能用于数组的比较,数组的比较用assertArrayEquals 2.assertArrayEquals 测试两个数组是否相等 3.assertTrue,assertFalse assertTrue和assertFalse用于测试boolean变量的值为true还是false 4.assertNull,assertNotNull assertNull和assertNotNull用于测试变量的值是否为null 5.assertSame,assertNotSame assertSame和assertNotSame用于测试两个对象的引用是否相同 6.assertThat assertSame和assertNotSame用于测试两个对象的引用是否相同
黑盒测试
检查程序是否符合规约
通过分区选择测试用例
基于等价类划分的测试:将被测函数的输入域划分为等价类,从等价类中导出测试用例。 针对每个输入数据需要满足的约束条件,划分等价类
代码覆盖度
代码覆盖度:已有的测试用例有多大程度覆盖了被测程序 码覆盖度越低,测试越不充分但要做到很高的代码覆盖度,需要更多的测试用例,测试代价高
|