测试:从基础到高级的全面指南
1. 变更规划与测试的重要性
在编写程序时,自动化测试不仅能在编写过程中提供很大帮助,还能在引入变更时避免错误累积。随着程序规模的增长,这一点尤为重要。当对代码进行更改时,很可能会引入一两个意想不到的错误。如果程序设计良好(具备适当的抽象和封装),变更的影响应该是局部的,仅影响一小部分代码,这样在发现错误时调试会更容易。
2. 代码覆盖率
代码覆盖率是测试领域的一个重要概念。在运行测试时,通常很难覆盖代码的所有部分,理想情况是使用所有可能的输入运行程序的每一种可能状态,但这几乎是不可能实现的。一个好的测试套件的目标之一就是实现良好的代码覆盖率,一种确保覆盖率的方法是使用覆盖率工具,它可以测量测试期间实际运行的代码百分比。
目前,Python 没有真正标准化的覆盖率工具,但在网上搜索“test coverage python”可以找到一些选项,例如 Python 发行版自带的 trace.py 程序。可以在命令行将其作为程序运行(可能需要使用 -m 开关),也可以将其作为模块导入。若想了解如何使用它,可以使用 --help 开关运行程序,或者导入模块并在解释器中执行 help(trace) 。
有时候,可能会觉得广泛测试所有内容的要求让人不知所措。其实不必一开始就测试数百种输入和状态变量的组合。测试驱动编程最重要的部分是在编码时反复运行方法(或函数、脚本),以获得持续的反馈。如果想提高对代码正确性的信心(以及覆盖率),可以稍后添加更多测试。
如果没有一套完善的测试,可能直
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



