为C ++项目编写测试套件的最佳实践/指南是什么?
答案 0 :(得分:1)
这是一个非常广泛的问题。对于单元测试和测试驱动开发(TDD),有一些有用的(如果有些偏颇的部分)指导from Microsoft - 如果不适用,您可以忽略Visual Studio特定的建议。
如果您正在寻找有关系统或性能测试的指导,我会澄清您的问题。 docs for Boost.Test中有一个相当广泛的理由。
最好有几个单元测试 我们结束之前要审查的做法。 首先,TDD是非常宝贵的 实践。所有的发展 可用的方法,TDD是 可能是最多的一个 从根本上改善许多人的发展 未来几年,投资是 最小的。任何QA工程师都会告诉你 开发人员无法写成功 没有相应测试的软件。 使用TDD,实践就是写作 甚至在写之前的那些测试 实施,理想的是,写作 测试,以便他们可以作为一部分运行 无人参与的构建脚本。它 以纪律开始这个习惯, 但一旦建立,编码 没有TDD方法感觉就像 在没有安全带的情况下开车。
对于测试本身有 一些额外的原则将 帮助成功测试:
避免在两者之间创建依赖关系 测试需要在a中运行测试 特别的顺序。每个测试都应该是 自主性。
使用测试初始化 用于验证测试清理的代码 成功执行并重新运行 如果是,在执行测试之前进行清理 没跑。
之前写测试 编写任何生产代码 实现。
创建一个测试类 对应于每个班级内 生产代码。这简化了 测试组织并使其变得容易 选择每个测试的位置。
使用 Visual Studio生成初始化 测试项目。这将显着 减少所需的步骤数 手动设置测试项目和 将它与生产联系起来 项目。
避免创建其他计算机 依赖性测试,如测试 依赖于特定目录 路径。
创建要测试的模拟对象 接口。模拟对象是 在测试项目中实现 验证API是否匹配 所需的功能。
验证 以前所有测试都成功运行 继续创建一个新的测试。那 确保您修复代码的方式 一旦打破它就立刻。
最大化 可以运行的测试数量 无人值守。绝对肯定 没有合理的无人看管 在完全依赖之前测试解决方案 关于手动测试。
答案 1 :(得分:0)