任何人都可以学习将一个适用于一个版本的信息系统组合在一起,但是构建一个在多个版本和多年内持续可靠运行的系统不仅需要学习一个好的架构,还需要学习自动化测试的学科。事实上,将专业开发人员与业余开发人员区分开来的最大因素是致力于为其功能编写自动化测试。
随着项目规模和复杂性的增长,一套自动化测试将有助于确保小错误修复或为新功能所做的更改不会破坏您现有的功能。如果您的测试已完成(即,它们通过测试成功和失败案例来测试您的所有代码路径),您就可以放心地进行更改并发布新版本。
如果你做对了,你的测试代码实际上会比你的功能代码更长。例如,SQLite 库的自动化测试代码是功能代码的 730 倍。他们可以修复错误或更改他们最核心的代码,但在相对较短的时间内知道他们的用户所依赖的功能仍然按预期运行。在发布新版本之前,他们使用多种构建配置在多个平台上运行所有测试。手动进行所有测试是不可想象的
什么是自动化测试自动化测试只是另一个程序,它调用您的功能代码、传递各种输入并测试输出以确保它们符合您的预期。这些程序应该测试有效和无效的输入,如果可能,触发异常错误条件以确保功能代码正确处理它们。
理想情况下,您的测试应该在某个时候调用您的功能代码的每一行。调用的行的百分比称为您的代码覆盖率,它应该尽可能高。在许多情况下,您可以达到 100%,但在某些情况下,只有在出现您的测试无法制造的非常意外的错误时才会运行代码路径。
您可以用任何语言编写自动化测试,但有些语言提供了专门的工具或环境来编写和运行这些测试。例如,Go 定义了一种编写自动化测试的方法,这些测试会自动从已编译的可执行文件中排除,但可以在开发时使用他们的 go 测试工具运行。此工具还提供代码覆盖率分析,准确显示您的测试执行了哪些行,哪些没有执行
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)