unit-testing - "Standard"测试过程

标签 unit-testing testing qa

我意识到“标准”这个词很奇怪,因为测试似乎非常依赖于项目,但是如果我设计了一个非常标准的场景,我希望得到关于我应该关注的测试类型的反馈。

我的团队正在创建一个中型数据驱动的 Web 应用程序。我们正在使用一个相当敏捷的流程。在大多数情况下,要求已经设定,但我们也会在最后一刻进行一些更改。

到目前为止,我们一直在进行大部分手动测试。我们正在尝试尽可能多地自动化。我一直在研究一些工具,以下是我认为我需要关注的测试类型:

  • 单元测试(测试驱动开发风格) - 这在游戏中有点晚了,因为已经编写了很多代码,但接下来我计划在实现功能之前进行测试。出于这个问题的目的,我们甚至可以假设我还没有开始这个项目。
  • 集成测试 - 由于我们的应用程序是在网络上,我想我用术语集成测试来表示页面之间的链接?什么是一个好的开源工具(比如说.NET)?
  • 回归测试 - 似乎我们通过单元测试免费获得了这个
  • 数据完整性测试 - 不知道你怎么称呼它,但只是我们从客户端获得的数据加载到应用程序中的想法是有效的。
  • 功能测试 - 这通常在 GUI 中完成吗?有没有好的代码驱动选项?
  • 性能和负载测试 - 确保应用程序即使在压力下也能快速响应。

  • 我总是被告知 QA 团队应该有几乎与开发团队一样多的时间来查看应用程序,但现在似乎很多方面都可以自动化。这些天对官方的“质量保证团队”的需求减少了吗?

    我的主要问题是:
  • 对于拥有精明技术团队的中型项目来说,这是一项合理的测试工作吗?有没有我想念或应该关心的重要事情?
  • 这些测试工作的典型周期是什么? (例如,在每次签到或每晚运行单元测试)?
  • 如今,典型的 QA 工时与开发工时相比如何?

  • 非常感谢!

    最佳答案

    so many things我需要写信来回答……我会强调一些重点,并指望其他人提供一些好的见解。

    集成测试
    通常它被理解为测试应用程序组件之间的集成。这可以是业务层模块之间的交互。它可以是业务对象和数据访问对象之间的交互。集成测试背后隐藏着很多东西。 “页面之间的链接”将是我最后想到的。它正在验证 Web 应用程序的“完整性”,但这里没有多少人会说这是集成测试。也许从 wiki definition 开始, 检查 SO questions .

    回归测试
    您是否只想测试单个类或功能、业务流程、数据流等?回归测试定义了重复某些测试的动机,而不是您进行测试的级别。您进行回归测试以检查给定测试所涵盖的功能是否因系统中的最新更改而损坏。它可以是单元测试,可以是集成,可以是功能性的,可以是基于 GUI 的,也可以不是。查看wiki definition .

    数据完整性测试
    我不处理它,但我不确定你的理解是否正确。试试 google search ?

    功能测试
    功能测试通常被理解为 GUI 级别,但并非必须如此。它可以在 Web 服务、EJB 甚至 API 上完成。查看this definition澄清这一点。
    对于 GUI 的代码驱动测试,有很多解决方案。 MSVS2010 - 带有 CodedUI 测试,HP QTP 用于许多技术,有来自 IBM 的工具,有来自 Borland 的工具(Silk Test,现在 Borland 属于某家公司)。有开源工具:WatiN , Selenium , Abbot , RobotFramework , 好多其它的。

    性能测试
    Performance Testing有很多口味,压力测试,浸泡测试,负载测试等等。检查此MS reference用于基本概述。

    现在,主要问题:)

  • 你可以做任何事情,但你只会触及表面。此外,您需要能够做到这一点的人。没有不尊重,但是您确定您的开发人员知道所有这些并且可以做到吗?更重要的是他们有时间做所有这些吗?从小处着手。进行单元测试,组件集成测试,对它们进行回归。开始自动化功能测试,也许可以尝试验收测试驱动开发(something heresomething there)。更多地关注您发现错误的领域,最大化您的投资返回率:P(如果您没有遇到性能问题,也许可以轻松地进行性能测试?)。
  • 设置 continuous integration .经常运行快速测试,有时运行慢速测试,在需要时运行完全回归(基于风险评估)。
  • 对于需要多少测试时间没有明确的规定。这将取决于许多因素。最重要的是,实际产品有多少错误?更多错误 -> 更多修复 -> 更多回归 = 更多测试。有像谷歌(许多项目的测试人员)或微软(每个开发人员最多有多个测试人员)这样的公司。没有历史数据(来自您的组织,对于给定的团队/项目类型),很难先验地告诉项目。 This short post可能会给你一些更多的见解。

  • 干杯。

    关于unit-testing - "Standard"测试过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5304072/

    相关文章:

    php - PHPMetrics选项--excluded-dirs =“myfolder”:docker中不排除myfolder目录

    ios - NSInvocation 返回 nil

    javascript - 测试数组是否为空或包含某个对象

    html - 如何使用 Puppeteer 在没有 href 链接的情况下获取 <a href> 标签内的文本

    testing - 衡量 QA 在敏捷环境中执行情况​​的良好指标

    silverlight - Silverlight 5的自动化UI测试工具

    java - Mockito 吞下堆栈跟踪?

    java - 如何在不出现 GUI 的情况下对生成另一个 View 的演示者进行单元测试?

    Java 测试覆盖率 : who covers what?

    c# - 当我运行测试时,如何让单元测试复制我的 DLL 和其他文件?