【问题标题】:What test methods do you use for developing websites?您使用什么测试方法来开发网站?
【发布时间】:2016-02-28 00:14:51
【问题描述】:

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

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

测试方法 - 你用它来做什么

例如

  1. 单元测试 - 我用它来......(等等,等等)
  2. 回归测试 - 我将它用于...(等等,等等)

我被要求参与 TDD,当然我必须研究测试方法。但是它们太多了,我不知道该用什么(因为它们听起来都很有用)。

【问题讨论】:

    标签: testing tdd


    【解决方案1】:

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

    2。回归测试是测试人员用来确保系统中的新更改没有破坏任何现有功能的功能测试

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

    .

    这篇Test-driven developmentFeature Driven Development wiki 文章将对您有很大帮助。

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

    1. 文档功能(或用例) 您需要实施或增强 在您的应用程序中 目前不存在。
    2. 编写功能测试集 可以确保上述情况 功能(从步骤 1 开始)有效。你可能需要 编写多个测试用例 以上功能测试所有不同的 可能的工作流程。
    3. 编写代码来实现上述功能(从第 1 步开始)。
    4. 使用您的测试用例测试此代码 之前写过(在步骤 2 中)。实际
      测试可以是手动的,但我建议创建自动化测试 如果可能的话。
    5. 如果所有的测试用例都通过了,你可以 去。如果不是,则需要更新代码(返回第 3 步) 从而使测试用例通过。

    TDD 是为了确保在您编码之前编写的功能测试用例能够正常工作,而与代码的实现方式无关。

    【讨论】:

    • 感谢 Ygam 接受我的解决方案。我很高兴能够提供帮助。
    【解决方案2】:

    测试没有“对”或“错”之分。测试是一门艺术,您应该选择什么以及它对您的效果在很大程度上取决于项目和您的经验。

    但作为一名专业的测试专家,我的建议是您应该健康地结合使用自动化和手动测试。

    (以下示例使用 PHP,但您可以轻松找到您所使用的任何语言/框架的正确示例)

    自动测试

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

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

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

    【讨论】:

      【解决方案3】:

      我通常会做以下事情:

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

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

      【讨论】:

        【解决方案4】:

        在回答之前,我想澄清一下关于多种方法的测试概念。

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

        1. 黑盒测试
        2. 白盒测试
        3. 灰盒测试
        4. 功能测试
        5. 集成测试
        6. 可用性测试

        几乎所有的测试方法都属于这些类型,您也可以在多种类型中使用一些测试方法,例如您可以在可用于测试的资源的基础上使用黑盒或白盒方法中的冒烟测试。

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

        1. 需求测试
        2. 工作服测试
        3. 系统测试
        4. 集成测试
        5. 回归测试
        6. 安全测试
        7. 性能和负载测试
        8. 部署测试

        无论您关注哪种测试类型,您都应该至少使用上述所有 (8) 种测试方法来测试网站。您可以在某些区域自动进行测试,也可以手动执行此操作,这完全取决于资源可用性。

        没有明确的硬性规则来遵循任何测试类型或任何方法。正如您所知道的“测试是一门艺术”,所以艺术没有规则或界限。这完全取决于您使用什么进行测试以及如何进行测试......

        希望你得到问题的答案。

        【讨论】:

        【解决方案5】:

        Selenium 非常适合测试网站。

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

            到目前为止发布的其他答案集中在单元/功能/性能/等。测试,都是合理的。

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

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

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-09-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多