热门标签 | 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)   点评:

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

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

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

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

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


推荐阅读
  • 经过短暂的休整,我们再次推出新的小程序功能,进一步提升用户体验。现在,小程序页面不仅支持放置转发按钮,还新增了长按快速转发的功能,让用户能够更加便捷地分享页面内容。这一更新将为开发者提供更多创意空间,同时也大幅提升了用户的互动性和使用便利性。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 本文首先介绍了BGP的基本概念和基础知识,详细解析了BGP的不同邻居类型及其作用。接着,文章对BGP的报文格式、状态机以及路由宣告原则进行了深入探讨,包括本地宣告、引入宣告和缺省路由的处理方法。通过这些内容,读者可以全面了解BGP路由协议的核心机制及其在实际网络中的应用。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • 在小学语文教育中,利用计算机辅助教学能够有效提升学生对汉字和语言知识的理解与掌握,增强其基础知识的应用能力。借助这一技术手段,教师可以更加高效地开展个性化教学,同时激发学生的学习兴趣和积极性,促进其全面发展。 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • PHP与MySQL的Web应用开发技术深入解析
    PHP与MySQL的Web应用开发技术深入解析 ... [详细]
  • 批量将多张图片转换为PDF或PPT文件
    本文介绍了如何批量将多张图片转换为PDF或PPT文件的方法。首先,可以通过批量下载工具或脚本高效地获取大量图片。接着,利用专业的图像处理软件或在线服务,将这些图片统一转换为所需的PDF或PPT格式,确保文件质量和一致性。此外,文中还提供了手动抓取单张图片进行初步测试的建议,以验证转换效果。 ... [详细]
  • 大家好,全新的技术专栏《从零开始掌握容器云网络实战》正式上线。该专栏将系统地介绍容器云网络的基础知识、核心技术和实际应用案例,帮助读者全面理解和掌握容器云网络的关键技术与实践方法。 ... [详细]
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
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社区 版权所有