千家信息网

关于彻底测试你需要知道的所有事情

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,什么是穷举测试?当您的团队中的所有测试人员都用尽并且所有计划的测试都已执行时,就会发生详尽的测试(也称为完整测试)。 它是一种质量保证测试技术,其中测试所有场景或数据以进行测试。 以更容易理解的方式,
千家信息网最后更新 2024年11月14日关于彻底测试你需要知道的所有事情

什么是穷举测试?

当您的团队中的所有测试人员都用尽并且所有计划的测试都已执行时,就会发生详尽的测试(也称为完整测试)。 它是一种质量保证测试技术,其中测试所有场景或数据以进行测试。 以更容易理解的方式,详尽的测试意味着确保在测试阶段结束时没有未发现的故障。 除了微不足道的情况之外,测试一切(输入和前置条件的所有组合)是不可行的。 作为测试人员,我们经常说,"好吧,我从来没有足够的时间进行测试。"即使你在这个世界上有所有时间,你仍然没有足够的时间来测试所有可能的输入组合和输出组合。

穷举测试策略

我们知道, 软件测试 7个测试原则之一 表明无法进行详尽的测试。 现在的问题是,由于无法进行详尽的测试,我们应该如何获得足够的覆盖率来判断被测应用程序是否倾向于没有任何缺陷?

我们不是试图用我们倾向于做的事情来测试所有内容,而是想要应用一些有用的方法,而是使用风险和优先级来集中测试工作。 我们可能会采用成对测试等技术来减少组合的数量,或者使用因果图形等方法,并采用更多基于逻辑的方法来优化我们的测试。 以下是可以在测试计划中明确包含的基本和基本策略:

  • 对业务的影响: 这不是唯一的,而是了解风险的最重要参数之一。 测试人员应该质疑,如果被测模块的某个功能失效,它将给整个模块带来多大的风险。 测试人员应该不断与模块的业务分析师合作,以了解每个功能失败带来的威胁,以便在测试中优先考虑它。

  • 失败的可能性: 此参数在理解功能的健康状况方面也起着重要作用。 与其他功能相比,某些功能可能具有很高的失败概率。 例如,让我们考虑一个电子商务网站,该网站将具有以用户身份登录的一种功能,以及确定用户浏览历史记录并正确地为用户提供更多选项(交叉销售/追加销售)。 作为测试人员,我们可以确定第二个功能具有更高的破解概率,因为与可能具有较低失败概率的登录页面相比,它包含许多要实现的业务算法。

  • 回归: 测试人员应该通过识别在AUT的某些区域发生变化或增加时必须更频繁地回归的功能来查看此参数。 应该进行正确的影响分析,以正确确定区域。 影响分析应始终涉及开发人员,QA和业务分析师团队,以便正确了解受影响的区域。

  • 恢复: 如果某个功能会破坏 恢复的 速度或恢复所需的时间。 质量保证人员可以从开发人员那里获得被测应用程序的每个功能的恢复时间。

为什么穷举测试是不切实际和不可能的

无法执行完整测试或详尽测试。 对于大多数系统而言,由于以下原因几乎不可能:

  • 程序可能输入的域太大,无法完全用于测试系统。 有效输入和无效输入。

  • 该计划可能有大量的州。 输入可能存在时序约束,即输入可能在某个时间有效而在其他时间无效。 有效但未正确定时的输入值称为不合适输入。 系统的输入域可以非常大,以完全用于测试程序。

  • 设计问题可能太复杂而无法完全测试。 设计可能包含隐式设计决策和假设。 例如,程序员可以使用全局变量或静态变量来控制程序执行。

  • 可能无法创建系统的所有可能的执行环境。 当软件系统的行为取决于真实的外部世界时,例如天气,温度,海拔高度,压力等,这变得更加重要。

详尽的测试示例

例1:

IE工具>高级选项 窗口:

  • 53二元条件

  • 1条件有3个选项

  • 1个条件有4个选项

  • 2 ^ 53 = 9,007,199,254,740,992 x 12 = 108,086,391,056,891,904条件的可能组合

每次测试执行一秒钟:

108,086,391,056,891,904 / 360 = 300,239,975,158,033.067小时(12,509,998,964,918.04天或34,273,969,766.9年)测试所有可能的组合。

例2:

我们来看一个具有以下功能的电子商务网站:

  • 登录

  • 选择产品

    • 过滤产品的颜色

    • 按价格过滤产品。

  • 添加到购物车

  • 购买产品(支付门户)

在风险识别参数的基础上,用户可以创建一个矩阵以包含在测试计划中。 每个参数都可以给出分数,这样我们就可以有一个正确的方法来识别高风险区域。

  • 对业务的影响:1-10

  • 失败的可能性:1-10

  • 回归:1-5

  • 恢复:1-5

根据上述方法,得分高于25的区域应被视为极高风险区域,并且需要进行近乎彻底的测试。 因此,对于上面的示例,"添加到购物车"应该对所有测试类型实施深入测试,并且应该进行详尽的测试。

让我们为上面的例子创建一个矩阵:

功能对业务的影响失败的可能性回归复苏
登录10311 = 15
选择带滤色镜的产品22 = 14
选择带有价格过滤器的产品822 = 17
添加到购物车10834 = 25
购买该产品10722 = 21


因此,根据得分,我们将"添加到购物车"功能作为"最高风险区域"的最重要竞争者,因此现在我们可以优先考虑测试。 我们还可以确定QA团队需要进行近乎详尽的测试。

质量保证团队可以通过查看他们的分数来简化风险缓解计划

  • 分数1-5: - 单元测试和评论。

  • 分数5-10: - 单元测试+黑盒测试(回归和高业务影响区域)

  • 分数10-15: - 深度有限的典型测试类型。

  • 分数15-25: - 某些测试类型中具有深度的典型测试类型。

  • 分数25-30: - 高风险区域。 对所有测试类型进行全面覆盖和深入测试。

根据上述方法,得分高于25的区域应被视为极高风险区域,并且需要进行近乎彻底的测试。因此,对于上述示例,"添加到购物车"应实施深入测试对于所有测试类型和应该进行详尽的测试。

详尽测试和有效测试之间有什么区别?

有效的测试彻底的测试
有效的测试强调了测试软件的有效技术,以便在受限资源内测试重要的功能穷举或完全测试意味着必须执行程序中的每个语句和每个可能的数据路径组合
这是一种实用的方法,因为:
  • 最终产品没有错误

  • 它测试每个阶段的开发周期

  • 它使用受限资源

无法执行,因为:
  • 实现截止日期

  • 各种可能的选择

  • 时间限制

  • 可能的测试环境数量

它具有成本效益这不符合成本效益
它不那么耗时,也不那么复杂这既耗时又复杂
它被采用,以便最好地覆盖关键测试用例它涵盖了所有测试用例
为了进行有效的测试,我们可以使用等价类方法,BVA等来最小化穷举测试所面临的问题假设密码字段接受3个混乱。 因此,我们必须在穷举测试期间测试大约256x256x256的输入组合。


0