我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

什么是穷举测试?

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

穷举测试策略

我们知道,软件测试的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的输入组合。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

什么是穷举测试?当您的团队中的所有测试人员都用尽并且所有计划的测试都已执行时,就会发生详尽的测试(也称为完整测试)。它是一种质量保证测试技术,其中测试所有场景或数据以进行测试。以更容易理解的方式,详尽的测试意味着确保在测试阶段结束时没有未发
2023-06-04

关于Emacs中的变量需要知道的事情有哪些

关于Emacs中的变量需要知道的事情有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。学习 Elisp 是如何处理变量的,以及如何在你的脚本与配置中使用它们。GNU Em
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录