您使用哪些测试方法来开发网站?

时间:2010-02-14 06:27:51

标签: testing tdd

有很多测试方法,例如blackboxgrayboxunitfunctionalregression等。

显然,一个项目不能采用所有的测试方法。所以我问了这个问题,以了解使用什么测试方法以及为什么要使用它们。您可以采用以下格式回答:

测试方法 - 您在

上使用它

e.g。

  1. 单元测试 - 我用它...(等等,等等)
  2. 回归测试 - 我用它......(等等,等等)
  3. 我被要求参与 TDD ,当然我不得不研究测试方法。但是它们有很多,我不知道该用什么(因为它们听起来都很有用)。

7 个答案:

答案 0 :(得分:6)

<强> 1。开发人员使用单元测试来确保他编写的单元代码是正确的。这通常是白盒测试以及某种程度的黑盒测试。

<强> 2。回归测试是测试人员使用的功能测试,用于确保系统中的新更改未破坏任何现有功能

第3。功能测试是在完整的集成系统上进行测试,以评估系统是否符合其指定要求。功能测试属于黑盒测试的范围,因此,不需要了解代码或逻辑的内部设计

这篇Test-driven developmentFeature Driven Development个维基文章对您有很大帮助。

对于TDD,您需要遵循以下流程:

  1. 文档功能(或用例)     你需要实现或增强     在你的应用程序中     目前不存在。
  2. 编写功能测试的集合 可以确保上述情况 功能(从步骤1)工作。你可能需要 为...编写多个测试用例 以上功能测试所有不同 可能的工作流程。
  3. 编写代码以实现上述功能(从步骤1开始)。
  4. 使用测试用例测试此代码 早先写过(在第2步)。实际的 测试可以手动,但我建议创建自动化测试 如果可能的话。
  5. 如果所有测试用例都通过,那么你很高兴 走。如果没有,您需要更新代码(返回步骤3) 以便使测试用例通过。
  6. TDD是为了确保在您编码之前编写的功能测试用例应该起作用,并且无关紧要如何实现代码。

答案 1 :(得分:3)

测试中没有“正确”或“错误”。测试是一门艺术,你应该选择什么以及它对你有多好,这取决于项目之间和你的经验。

但作为一名专业测试专家,我的建议是您可以自动和手动测试。

(以下示例在PHP中,但您可以轻松找到正在使用的langauge / framework的正确示例)

自动测试

手动测试
尽管我喜欢自动化测试,但它是恕我直言,而不是手动测试的替代品。主要原因是自动化只能执行它所说的内容,并且只验证它被通知查看为通过/失败的内容。人类可以利用它的智能来发现错误并提出在测试其他东西时出现的问题。

  • 探索性测试
    ET是一种非常低成本且有效的方法来查找项目中的缺陷。它充分利用了人类的智慧,并且比我知道的任何其他测试技术更能教会测试人员/开发人员更多关于项目的信息。针对测试环境中部署的每个功能进行ET会话不仅是快速查找问题的有效方法,而且是学习和娱乐的好方法!
    http://www.satisfice.com/articles/et-article.pdf

这个答案(几乎)与我给另一个问题的答案相同。看看这个问题,因为它有一些可能对你有帮助的好答案。 How can we decide which testing method can be used?

答案 2 :(得分:0)

我通常会做以下事情:

  • 多页网站的页面一致性。
  • 测试数据库连接。
  • 测试可能受我刚刚做出的更改影响的功能。
  • 我使用示例输入测试函数以确保它们正常工作(特别是那些类似算法的函数)。
  • 在某些情况下,我实现的功能非常简单,硬编码大多数设置,然后实施设置,在实施每个设置后进行测试。

其中大部分也适用于应用程序。

答案 3 :(得分:0)

在回答答案之前,我想清除有关多种方法的测试概念。

有六种主要测试类型涵盖了所有测试方法。

  1. 黑匣子测试
  2. 白盒测试
  3. 灰箱测试
  4. 功能测试
  5. 集成测试
  6. 可用性测试
  7. 几乎所有的测试方法都在这些类型下,你也可以在多种类型中使用一些测试方法,比如你可以在黑盒子或白盒方法中根据可用的资源进行测试。

    因此,为了完全测试网站,您需要根据可用于测试的资源至少使用以下测试方法。这些至少是用于测试网站的方法,但可能还有一些基于网站性质的方法。

    1. 要求测试
    2. Smock Testing
    3. 系统测试
    4. 集成测试
    5. 回归测试
    6. 安全测试
    7. 表演&amp;负载测试
    8. 部署测试
    9. 无论您关注哪种测试类型,您都应该至少使用以上所有(8)测试方法来测试网站。您可以在某些区域自动执行测试,您可以手动执行此操作,这取决于资源的可用性。

      没有特别严格的规则可以遵循任何测试类型或任何方法。如你所知“测试是一种艺术”,所以艺术没有规则或界限。它完全取决于你用什么测试以及如何.......

      希望你得到问题的答案。

答案 4 :(得分:0)

Selenium非常适合测试网站。

答案 5 :(得分:0)

答案取决于所使用的Web框架(如果有的话)。例如Django具有内置测试功能。

对于PHP(或功能性网络测试),SimpleTest非常好,而且很简单。它支持单元测试(仅限PHP)和 Web测试。测试可以在IDE(Eclipse)或浏览器中运行(意味着在您的服务器上)。

答案 6 :(得分:0)

到目前为止发布的其他答案主要关注单位/功能/表现/等。测试,它们都是合理的。

但是,您应该问的一个关键问题是“我的测试效果如何?”。

这通常用测试覆盖率工具来解决,这些工具确定应用程序的哪些部分实际上通过某些测试运行。理想的测试覆盖率工具允许您通过您可以想象的任何方法(包括上面的所有标准答案)测试您的应用程序,然后报告您的代码的行使部分和百分比。最重要的是,它会告诉您没有行使的代码。然后,您可以检查该代码并确定是否需要进行更多测试,或者您是否不在乎。如果未经测试的代码与“磁盘完全错误处理”有关并且您认为1TB磁盘很常见,您可能会决定忽略它。如果未经测试的代码是导致SQL查询的输入验证逻辑,您可能决定必须测试该逻辑以确保不会发生SQL注入攻击。

使用哪些测试覆盖率工具,您可以使用有关代码的哪些部分已被执行的数据,做出充分测试的合理决策。因此,无论您如何测试,最佳实践都表明您还应该进行测试覆盖率分析。

可以从各种来源获得测试覆盖率工具。 SD提供a family of test coverage tools处理C,C ++,Java,C#,PHP和COBOL,所有这些都用于以各种方式支持网站测试。