首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >软件测试方法

软件测试方法
EN

Stack Overflow用户
提问于 2011-10-07 19:16:03
回答 1查看 1.7K关注 0票数 0

我想知道在您看来,测试现有问题和计划的活动(作为软件策略的一部分)的方法和建议中应该包括什么。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-07 21:23:51

对我来说,你需要三个级别的代码测试。下面是从最低级别到最高级别:

用于方法测试的

  • Unit-tests,。每个实现的类一个测试类。这些测试与特定的实现(在某种程度上)捆绑在一起,并试图实现100%的覆盖率(我这里说的是functional覆盖率,而不是行覆盖率,这通常是没有意义的)。您可以使用模拟框架来测试行为,而不是objects.
  • System /集成测试的状态,它们测试应用程序组件之间的所有交互。他们并不局限于测试一个唯一的类,而是测试一个特定的外部访问,以确保它按预期工作。一个很好的例子是数据库访问的CRUD测试(Create,Read,Update,Delete):虽然单元测试将使用模拟的数据库层,但相关的系统测试使用真实的(当然是在开发环境中)。对外部服务器的Http调用也是这一层testing.
  • Acceptance测试的一部分(理想情况下,使用像FITnesseJBehave Java这样的测试框架,但也可以使用普通的JUnit测试)-这些测试是接受的高级标准。理想情况下,它们是与最终用户或业务分析师(或与之协作)一起编写的,它们可以作为系统的文档,以及开发人员正在处理的每个故事/任务的边界。在重构相关功能的过程中,它们应该不会更改( not change ),并且在修改实现时仍然可以通过。事实上,它们是您的工具,是成功重构的证明。理想情况下,它们对于非程序员来说是可读的(例如,使用FITnesse的维基页面),作为项目功能的动态文档。

上面的所有测试都应该是持续集成构建的一部分,每当有人添加或修改代码库时都会触发。如果任何测试失败,那么整个构建都会失败,在修复之前,任何人都不应该签入任何其他内容。

除此之外,你还应该计划:

  • Regression testing这通常是由持续集成服务器实现的。每次构建都会重新运行所有测试,确保您没有破坏以前工作的feature.
  • Reconciliation测试来测试常规运行时测试无法捕获的所有内容。例如,如果应用程序对数据库填充进行了一些处理,那么您可能希望在完全填充的数据库的两个连续版本上运行协调程序,以确保您没有破坏实际生产data上的任何内容。这些测试通常需要很长时间才能完成(重新处理整个数据库),因此它们通常无法添加到自动构建中。通常在获得发布许可之前完成。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7686494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档