什么是探索式测试?(类型、示例)
探索式测试经常用于以异常的方式破坏系统。探索式测试最显著的特点是它缺乏任何用于创建测试用例的测试设计方法。
此过程通常用于识别软件缺陷。由于探索式测试缺乏测试用例,因此通常在没有文档的情况下进行。
仔细看看这个过程。探索式测试是一种属于“非结构化测试”类别的测试。
结构化测试与非结构化测试
结构化测试 - 此方法编写了测试过程中发生的一切,从测试用例的开发到它们的顺序执行。测试人员在执行测试时会遵循此脚本。
非结构化测试 - 此方法通常通过猜测错误来进行测试,测试人员在测试过程中构建测试用例。
探索式测试
探索式测试是指即兴进行的测试。如上所述,它是一种非结构化测试技术,在测试过程开始之前没有制定系统的策略。因此,在测试之前不会进行任何需求规范或测试用例的准备和设计。
探索式测试通常由熟悉被测程序的测试人员进行,包括程序的功能和工作方式。这种测试是通过使用猜测错误随机构建测试用例并运行它们来进行的,而不考虑任何测试标准。
查找程序中可能存在错误的区域是此测试的一个重要方面。因此,它也称为猴子测试或随机测试。因此,只有那些对产品有深入了解的测试人员才能执行此测试。
探索式测试的优点是可以节省在诸如测试需求、测试用例规划和设计等文档上花费的时间。它通常在完成结构化测试后进行。这样做是为了发现遵循先前准备的测试用例无法发现的软件问题。
探索式测试类型
以下是探索式测试的一些类型:
- 伙伴测试
- 猴子测试
- 结对测试
伙伴测试
在这种类型的探索式测试中,至少两个人一起进行测试。这个团队通常由至少一名软件测试人员和一名软件开发人员组成。
这种类型的测试发生在模块的单元测试完成后。
在这两个“伙伴”在该模块上协作以开发有效的测试用例。
这样做是为了确保测试人员不会报告由不正确的测试用例引起的错误。这种测试也可以被认为是单元测试和系统测试的混合体。
猴子测试
“猴子测试”一词指的是这种测试中使用的方法的不可预测性。
向被测程序提供随机输入,并监视其关联的输出。
根据获得的输出,识别任何错误、不一致或系统故障。
结对测试
这种类型的测试类似于伙伴测试。但是,在这种情况下,只有一对测试人员协作测试模块。
他们通过在同一台计算机上分享想法、观点和专业知识来协作发现缺陷和问题。
为了获得对每个问题的不同视角,测试人员会根据他们的知识水平和经验进行配对。
探索式测试的特点
此测试发生在程序经过正式测试方法后。原因是进行探索式测试是为了发现测试前无法预见的应用程序异常。
只有那些深入了解程序工作原理的测试人员才能进行这种测试。这是因为只有当测试人员了解程序的功能和工作方式时,才能进行有效的“错误猜测”。
探索式测试方法最适合检测应用程序中导致严重缺陷的不一致之处。此类错误通常难以发现。
这种类型的测试比其他类型的测试需要更少的时间。这是因为它是在没有任何先前的规划、设计或结构的情况下进行的。
探索式测试只进行一次,因为任何发现的缺陷都需要重新测试。
探索式测试示例
更改浏览器设置时测试应用程序的功能。例如,识别在不同浏览器中禁用 JavaScript 选项时发生的错误。
在多个平台上测试应用程序。测试生成的应用程序是否在各种操作系统和浏览器上平稳运行至关重要。
向系统提供超出有效输入范围的输入,以查看应用程序的响应是否足够。
复制和修改应用程序的 URL 以使其在不同的浏览器中运行。这样做是为了确保不会向任何未经授权的用户授予对系统的未经授权的访问权限。
执行一系列随机操作或在程序中随机跳转,以验证使用某些奇数输入组合获得的结果。
何时应进行探索式测试?
当没有足够的时间进行全面彻底的测试(包括生成测试需求文档、测试用例和测试用例设计)时,通常会使用探索式测试。在完成正式测试方法后是进行此类测试的最佳时间。
另一方面,探索式测试可以在软件开发过程中进行。它可以在程序完全创建后进行,甚至可以在仅创建少数模块后进行。它也可以作为正式测试过程的一部分进行。但是,有一些情况不需要进行此测试。因此,每个测试人员都必须知道何时避免此类测试。
以下是一些不应进行探索式测试的原因:
在进行 Beta 测试时,不应进行任何探索式测试。这是因为 Beta 测试涉及客户评估生成的软件,以便为应包含的新功能提出想法或修改其需求。
还建议不应在此测试中对已经包含问题的测试用例进行测试。在可以从系统中删除错误之前,必须首先正确记录它们。修复错误后,必须重新测试测试用例以确认它们运行正常。
探索式测试有哪些好处?
探索式测试的一个好处是,当仅使用正式测试方法时,可以发现许多未被发现的错误。通过随机测试程序可以发现这些错误。
允许测试人员根据他们的直觉和对程序的理解随意探索程序。然后,他们可以在继续进行测试时运行测试,帮助他们在进行过程中识别错误。
测试人员和开发人员都可以轻松测试应用程序,因为不需要准备和创建任何测试用例。这使得开发人员更容易编写更有效且无错误的代码。
此测试还可以帮助创建独特的测试场景,这些场景可以有效地发现问题。因此,此类测试用例可以与正式测试中的其他计划测试用例相结合。
由于探索式测试没有正式方法,因此可以在软件开发生命周期的任何时间点进行。
它可以与其他测试方法结合使用,以创建更明智和有效的发现。
探索式测试的缺点
由于测试方法未定义且未执行任何具体的测试用例,因此测试人员难以重现问题。这是因为测试人员必须记住他为获得错误而采取的确切步骤,这并非总是可行的。
有时会报告错误的错误,这是因为测试人员随机执行无效的测试用例,这会在后续的错误纠正操作中造成问题。
如果测试人员不了解被测应用程序的工作原理,则探索式测试将无法发现任何错误。这是因为测试人员必须通过猜测错误并在运行中构建和运行测试用例。
探索式测试不能保证发现错误。积极的错误猜测测试完全取决于测试人员的能力和经验。
由于没有预先建立和记录的测试用例,因此无法确定此测试需要投入多少时间和精力。在某些情况下,即使发现一个错误也可能需要很长时间。
进行临时测试:最佳实践
为了正确执行临时测试方法,理解最有效率的方法至关重要。因为如果测试没有正确完成,投入的时间和精力就会浪费。因此,为了进行这种测试,必须了解可以帮助更全面地进行测试的最佳实践。
软件专业知识
确保分配给应用程序临时测试的测试人员对应用程序有透彻的了解。
为了更好地支持对应用程序的“错误猜测”,测试人员必须熟悉程序的所有功能。
拥有足够的信息来支持测试人员的测试方法,可以更轻松地发现更多错误、缺陷和不一致之处。
识别潜在的易错区域
如果测试人员不熟悉该程序,最佳方法是让他们从查找应用程序中发生大部分错误的部分开始测试。
为临时测试选择此类敏感位置可能有助于发现问题。
确定测试中应优先考虑的区域。
最好从程序中最终用户或客户最常使用的部分开始测试。这有助于保护关键功能并及早发现任何错误。
制定粗略的测试计划。
尽管临时测试不需要任何预先准备或文档,但基本的策略可能非常有益且高效。只需记下需要测试的重要要点和位置,就可以帮助测试人员在最短时间内覆盖大部分程序。
工具
为了使测试更容易,您将需要必要的工具,例如调试器、任务监视器和分析器。