热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

黑盒测试用例设计-等价类设计方法(三)

二、设计方法世界上不存在一组黑盒测试用例能将软件逻辑测试完全,就像不存在没有bug的软件一样。我们不可能进行穷举测试,为了保证软件产品的敏捷开发、快速迭代和通过,至少测试不能给敏捷开

二、设计方法

       世界上不存在一组黑盒测试用例能将软件逻辑测试完全,就像不存在没有bug的软件一样。我们不可能进行穷举测试,为了保证软件产品的敏捷开发、快速迭代和通过,至少测试不能给敏捷开发拖后腿,就必须要从大量的可测数据中精选出有代表性的测试数据来安排测试。

       什么是测试用例:引自清华大学出版社出版的《软件评测是教程》中解释:“所谓的测试用例设计就是将软件测试的行为活动,作一个科学的组织归纳。”

       ·测试用例的好处有:

(1)    将测试行为转换为可管理的模式,将其量化有助于管理层掌握测试过程;

(2)    在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率;

(3)    测试用例的执行令软件测试的实施重点突出、目的明确;

(4)    在软件版本更新后,只需要修正少量测试用例,配合敏捷开发;

(5)    便于验证变更。测试用例是设计一个操作,使软件产品在此操作下可得到预期结果。如此用例发现bug,经过提交至跟踪管理系统及开发同事解决问题后,使用同一个用例进行变更验证,确保该bug已修改完成。

       尽量避免测试的随意性。软件测试是有组织、有计划、有步骤的活动,要严格按照测试计划进行,要避免测试的随意性。

       ·具体黑盒测试用例设计方法包括:

已掌握:等价类划分方法、边界值分析方法、错误推测方法——结合实践讲解。

已理解:因果图方法、判定表驱动方法、正交试验设计法、场景法——讲解原理。

未掌握:功能图法(状态迁移图,流程法)——暂不讲解。

1.等价类划分方法         

       等价类是集合中的概念,我们理解为选取每类的代表元素来降低问题的复杂度,等价类划分就是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。同一类中的用例发现bug的能力是一致的,即测试某等价类的代表值就等于对这一类其他值的测试。等价类划分的目标是在仍然足以满足软件测试需求的前提下,把可能的测试用例组合缩减到最小。仔细阅读需求规格说明书的各项需求,特别是功能需求。把说明中对输入的要求和输出的要求加以分解。

(1)   划分等价类和列出等价类表

       等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。等价类的划分答案不唯一。等价类划分有两种不同的情况:有效等价类和无效等价类。

       有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据结构的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

       无效等价类:指对于程序的规格说明来说是违法的输入数据结构的集合。利用无效等价类可检验程序是否可以经受意外的考验。

设计原则:

①    1+2在输入条件规定了取值范围,取一个有效等价类和两个无效等价类。例如:新建联系人姓名要求字符长度1~980个中文字符,有效等价类取500,无效等价类取0和981。

②    1+1在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,取一个有效等价类和一个无效等价类。例如:更改SIM卡PIN码时输入旧SIM卡PIN码,有效等价类为输入正确密码,无效等价类为输入错误密码。

③    1+1在输入条件是一个布尔量的情况下,取一个有效等价类和一个无效等价类。例如:新建联系人头像,有效等价类为拍照确认,无效等价类为拍照取消。

④    n+1在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。例如:将本地图库中的图片设置为联系人头像,有效等价类有jpg/gif/png/bmp格式的图片,无效等价类有raw格式的图片。

⑤    1+n在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如:联系人添加电子邮件,有效等价类为“注册时的用户名@提供邮箱注册的网站域名地址”,无效等价类为各种违法字符串组合。

等价类确立后,建立等价类表,如下所示:

(2)   生成测试用例:

①    为每个等价类规定一个唯一的编号;

②    设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖;

③    设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使得所有无效等价类均被覆盖。   

       感兴趣的同学可以进一步查看等价类划分法例题:

(3)   点评:

①    等价类测试比较适用于输入数据以离散值区间和集合定义的函数;

②    不论系统是否是应用强类型语言编写,进行健壮形式的测试是非常有必要;

③    当输入变量之间存在依赖关系,等价类测试会产生很多“错误”用例;

④    等价类的确定是不确定的,有时是不完美的;

⑤    当与其他测试技术相结合时,等价类测试可以得到加强和补充


推荐阅读
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
  • 本文详细介绍了《问道》手游在2020年12月31日进行的服务器维护情况,以及此次更新中新增的跨年狂欢活动和寒假活动等内容。同时,文章还涵盖了其他重要的系统优化与修复信息。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • 苹果新专利或将引领无边框手机时代
    苹果公司最近公布了一项新的专利技术,该技术能够在设备屏幕中嵌入光线传感器,这标志着苹果在实现无边框手机设计上迈出了重要一步。这一创新将极大提升手机的屏占比,并可能为未来的iPhone带来革命性的变化。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • RT,个人博客图片管理(方便管理,大家 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 百度服务再次遭遇技术问题,疑似DNS解析故障
    近日晚间,百度多项在线服务出现加载异常,包括移动端搜索在内的多个功能受到影响。初步迹象表明,问题可能与DNS服务器解析有关。 ... [详细]
  • Win11扩展卷无法使用?解决扩展卷灰色问题的指南
    本文详细介绍了在Windows 11中遇到扩展卷灰色无法使用时的解决方案,帮助用户快速恢复磁盘扩展功能。 ... [详细]
  • 掌握 Photoshop 是学习网页设计的重要一步。本文将详细介绍 Photoshop 的基础与进阶功能,帮助您更好地进行图像处理和网页设计。推荐使用最新版本的 Photoshop,以体验更强大的功能和更高的效率。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
author-avatar
cheer57_275
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有