Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中优化回归测试+;环境_C++_Svn_Testing_Regression Testing - Fatal编程技术网

C++ 在C+中优化回归测试+;环境

C++ 在C+中优化回归测试+;环境,c++,svn,testing,regression-testing,C++,Svn,Testing,Regression Testing,为了避免过多的测试,我想向质量保证(QA)团队提供一些提示,说明哪些特性在开发迭代之后必须进行回归测试。你知道在C++和颠覆(VisualStudio)DEV环境下能做到这一点的工具吗? 有关用例的详细信息: 特征将由 开发团队的入职条件 点,通常为类或类 方法。比如,功能“excel文件 “导入”由方法定义 类的ImportExcelFile(…) 文件导入器 在开发迭代过程中, 开发团队承诺了一些 对某些方法的更改 上课。比如说,这些课程中的一门 是通过方法间接使用的 ImportExcel

为了避免过多的测试,我想向质量保证(QA)团队提供一些提示,说明哪些特性在开发迭代之后必须进行回归测试。你知道在C++和颠覆(VisualStudio)DEV环境下能做到这一点的工具吗? 有关用例的详细信息:

  • 特征将由 开发团队的入职条件 点,通常为类或类 方法。比如,功能“excel文件 “导入”由方法定义 类的ImportExcelFile(…) 文件导入器
  • 在开发迭代过程中, 开发团队承诺了一些 对某些方法的更改 上课。比如说,这些课程中的一门 是通过方法间接使用的 ImportExcelFile()
  • 在迭代结束时,所有 提交由工具和 制作并交付一份报告 给QA团队。在我们的示例中 QA团队被告知该功能 “excel文件导入”必须经过测试, 其他特征X、Y和Z是 不变
  • 这个工具很可能会使用静态代码分析并使用subversion API。但是它存在吗?

    G'day

    您所描述的并不是真正的回归测试。您只是在测试新功能

    回归测试是专门运行完整测试套件的地方,以查看支持新功能的代码是否破坏了以前的工作代码

    我强烈推荐阅读马丁·福勒的优秀论文“”,该论文涵盖了您所谈论的一些方面

    它还可以为您提供更好的工作方式,特别是Martin在论文中谈到的CI方面

    编辑:特别是因为CI有一些隐藏的小陷阱,这些陷阱在事后看来是显而易见的。例如,阻止测试人员尝试测试尚未提交实现新特性的所有文件的版本。(请验证在过去五分钟内没有提交)

    另一个重要的问题是,如果您有一个已损坏的构建,并且直到有人检查代码并尝试构建它以便测试它时才意识到它已损坏,那么就会浪费时间

    如果它坏了,您现在有:

    • 一个测试人员坐在那里无法进行计划的测试
    • 开发人员中断当前的工作,返回到以前的工作,以找出导致构建中断的原因。更可能是开发人员的问题,因为问题是两个独立部分之间的交互,每个部分都独立工作
    • 由于开发人员必须重新进入前一项工作的思维模式而造成的时间损失,以及
    • 在中断调查之前,开发人员重新进入他们正在进行的新工作的思维模式所花费的时间
    CI的基本思想是在一天内完成完整产品的多个构建,以便尽早捕获一个损坏的构建。您甚至可以选择一些测试来检查产品的基本功能是否仍在工作。再次提醒您,尽快通知您的生成的当前状态存在问题

    编辑:至于您的问题,在您完成测试(例如测试完成时)时如何标记存储库。然后,当您准备好计算下一组测试时,在最新的测试完成标记和头部之间执行“svn diff-r”测试

    顺便说一句,当我想到这些问题时,我会用一些进一步的建议来更新这个答案


    干杯,

    将项目拆分为单独的可执行文件并构建它们

    如果其依赖项发生更改,Make将重新生成任何可执行文件

    将任何链接测试的输出文件添加到下一个测试的依赖项中-例如,将文件测试的输出另存为读取文件测试的依赖项

    在此之后构建的任何东西都需要单元测试

    如果任何库使用公共可耗尽资源(堆内存、磁盘、全局互斥等),也将它们作为依赖项添加,因为一个库中的泄漏导致的耗尽通常是另一个库中的回归失败

    在某一点之后构建的任何东西都需要回归测试


    除非您在一个guarentees缺乏资源耗尽(例如TinyC)的环境中工作,否则您最终将对所有内容进行回归测试。回归测试不是单元测试。

    Rob,谢谢你的回答。事实上,我知道——也支持——Martin Fowler出版物,我们正在使用持续集成,包括自动单元测试。这里的要点是,我们还有一个单独的QA团队,专注于测试特性——XP中的“故事”。我们希望能够指导他们在多次提交后应重新测试哪些故事,特别是为了防止对不可能倒退的故事进行“过度测试”。@Denis,干杯。开发人员是否可以标记单个用户故事的提交?在故事完成时进行一次提交可能既危险(如由于本地副本丢失而导致的潜在工作损失)又不灵活。我建议在完成并提交US后标记存储库。顺便说一句,我希望每次有人对我说“不可能倒退”时,我都能得到一美元,而事实显然是这样!(-: