[英]Optimizing regression testing in a C++ environnement
为了避免过多的测试,我想向质量保证(QA)团队提供关于在开发迭代之后必须对哪些特征进行回归测试的提示。 你知道在C ++和Subversion(和visual studio)开发环境中可以做到的工具吗?
有关用例的详细信息:
很可能这个工具会使用静态代码分析并使用subversion API。 但它存在吗?
天儿真好,
你所描述的并不是真正的回归测试。 您只是在测试新功能。
回归测试是专门运行完整测试套件的地方,以查看支持新功能的代码是否已破坏以前的工作代码。
我强烈推荐阅读Martin Fowler的优秀论文“ 持续整合 ”,其中涵盖了您正在讨论的一些方面。
它还可以为您提供更好的工作方式,特别是Martin在他的论文中谈到的CI方面。
编辑:特别是因为CI有一些隐藏的小陷阱,事后才很明显。 停止测试人员试图测试尚未实现新功能的所有文件的版本。 (您确认在过去五分钟内没有提交)。
另一个重点是,如果你有一个破坏的构建,并且在有人检查代码然后尝试构建它以便他们可以测试它之前不知道它已经被破坏,那么就会浪费时间。
如果它坏了,你现在有:
CI的基本思想是在白天对完整产品进行多次构建,以便尽早捕获破坏的构建。 您甚至可以选择一些测试来检查产品的基本功能是否仍然有效。 再次尽快通知您构建的当前状态存在问题。
编辑:至于你的问题,在你完成测试后标记存储库怎么样,例如TESTS_COMPLETE_2009_12_16。 然后,当你准备好了解下一组测试时,最新测试完成标签和HEAD之间的“svn diff -r”是什么?
HTH
顺便说一句,我会在考虑这些问题时用一些进一步的建议来更新这个答案。
干杯,
将项目拆分为单独的可执行文件并构建它们。
如果依赖项发生变化,Make将重建任何可执行文件。
将任何链式测试的输出文件添加到下一个测试的依赖项中 - 例如,保存文件测试的输出作为读取文件测试的依赖项。
在此之后构建的任何东西都需要进行单元测试。
如果任何库使用共同的可耗尽资源(堆内存,磁盘,全局互斥等),也将它们添加为依赖项,因为由于一个库中的泄漏导致的耗尽通常是另一个库中的回归失败。
在某个点之后构建的任何东西都需要回归测试。
除非您在保证人员缺乏资源耗尽的环境中工作(例如TinyC),否则您最终将对所有内容进行回归测试。 回归测试不是单元测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.