测试的目的:尽可能多地发现软件中存在的BUG,不符合需求的部分或者是未实现的需求
测试的意义:尽可能确保软件正式上线运行后不出现问题,减少潜在的风险和损失
可测试性定义:指软件测试的难易度和效率,如果测试结果越直观,测试效率越高,可测试性就越好。
因为软件测试主要分为黑盒测试和白盒测试,前者只关注输入和输出是否对因,后者要关心内部逻辑是否正确,所以提高可测试性的思路也围绕着这两种方法进行
对于黑盒测试,主要策略有:1.记录/回放:用自动化/半自动化的方式测试,测试工具来模拟人与系统的交互
2.把接口和实现分开:即对于同一功能的一些函数,使它们的参数列表和输出或返回格式相同,这样一段测试代码可以重复使用
3.提供专用的测试路径
对于白盒测试,主要策略是内部监控,通过各式各样的测试工具或IDE,监控整个程序执行过程中,每一步的输入输出和变量的变化