软件测试用例设计(软件测试用例设计方法有哪些)

2025-09-07 06:15:01 0

软件测试用例设计(软件测试用例设计方法有哪些)

大家好,如果您还对软件测试用例设计不太了解,没有关系,今天就由本站为大家分享软件测试用例设计的知识,包括软件测试用例设计方法有哪些的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

软件测试用例设计方法有哪些

正交试验法正交试验法是研究多因素、多水平组合的一种实验法,它是利用正交表来对实验进行设计,通过少数的实验替代全面实验。正交表中所有参与试验的、影响试验结果的条件成为因子,影响试验因子的取值或输入的成为水平。
测试用例常见的设计方法有:等价类划分法,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。边界值分析法,即针对各种边界情况设计测试用例。
错误猜测法是测试经验丰富的人喜欢使用的一种测试用例设计方法。一般这种方法是基于经验和直觉推测程序中可能发送的各种错误,有针对性地设计。只能作为一种补充。

如何设计一个完整的测试用例

软件测试的W模型,就要求测试与开发同步,在开发设计需求设计说明书的时候就开始测试流程,一般情况下,讨论需求设计的时候需要测试主管或者组员的参与,了解这个项目设计的总体情况

事实上,测试用例的编写一般是在需求设计说明书定下来之后才真正的开始的

因为测试用例的内容要以需求设计说明书为依据,设计说明书上没体现的功能,不需要在测试用例中体现

编写测试用例(这里指功能测试用例的编写),首先要做的就是设计测试用例的模板

每个公司都有适合自己公司用例编写的模板,各有各的特点

测试用例的格式包括,测试用例摘要、测试用例需求编号(一个需求设计说明书可以分好几个用例编写)、编写用例的日期、编写人员、编写日期、前置条件、准备数据等等

格式没有固定的要求,可以根据自己测试用例设计的思路,对测试用例的格式作相应的改变

下面以一个登陆窗口为例,说说我设计登陆界面的思路和方法

我把这个测试用例分为三层结构,表单测试、逻辑判断、业务流程

第一层,表单测试为最底层(最基础的)

这部分的测试用例是对登陆窗口这个界面的输入框、按钮功能、界面等最基本功能的测试

一般来说登陆用户名和登陆用户密码是输入框的形式体现,那么,我们需要的是针对这两个输入框进行功能的测试

这时,我们只要考虑这个输入框的功能,而不需要考虑业务方面的内容

这样,我们考虑就是这个输入框的长度限制是多少?能否输入特殊字符?能否输入全角字符?当然,登陆窗口还有其他按钮,例如登陆按钮、退出按钮、界面设计等,这一层的测试用例只对他们最简单的功能的测试

我觉得这一层的测试用例对新开发项目很重要,也必须执行,因为这些是最基本的功能保证,当项目进入维护阶段后,如果没有修改就不需要执行这部分的测试了或者说把这层的用例优先级置为最低,时间不充足的情况就不用去执行

第二层,逻辑判断层

根据需求的设计,各功能之间的简单逻辑联系

以登陆窗口为例,账号登录,账号和密码必须对应才能登录,否则登录失败

根据这一点,我们就可以从这个要求设计这一层测试用例

例如,账号和密码不一致时;账号为空时;密码为空时;账号密码对应时等等情况

输入这些情况时,程序是作怎么样的逻辑控制的?控制是否正确?是否有相应的提示信息?我觉得,这一层的用例时最常规的一层,平时使用这个软件用经常碰到的一些情况,在常规测试或修改这部分的功能之后,这一部分的测试用例也必须执行

第三层,业务流程层

这部分不关心软件的本身的基本功能,而是关心这个软件的业务有没有实现,不同的需求就有不同的业务需求

以登陆窗口为例,就可能有不同的需求,可能用户要求停用的账号能够登录系统(可能要求登录后不允许进行其他操作),也可能用户直接要求停用的用户账号不准登录系统

根据不同的业务需求,就有不同的业务流程

这样这层的测试用例,我们就只要考虑业务需求,仍然以登录窗口为例,我们就只要考虑删除的用户能否登录?停用的用户能否登录?超级用户是如何登录的?普通用户是何种方式登录的?简单的说,这层的用例只描述业务流程,不关心具体这个业务是怎么实现的,执行这部分用例时,不要考虑哪个输入框控制了多少长度,能否输入空格等其他功能,因为这部分的测试需要基于上面两层的测试用例都已经测试通过了,所以在项目维护阶段或者说时间很紧迫的阶段,我们只需要执行这部分的用例,保证业务能够通畅的完成

其实个人觉得在执行这部分用例时,对包含了对基本功能的测试,一些明显的问题应该能被发现,虽然严格来说测试覆盖率很低,但是基本能达到要求

这三层的组合起来才是一个完整的测试用例

这是我个人对测试用例设计的一个思路和方法

真正设计这个测试用例的时候,可能会使用到黑盒测试用例的方法,例如等价类划分、边界值分析、错误猜测法(主要是个人经验)、正交分解等方法针对具体情况设计测试用例

分层测试用例的思路主要来自对自动测试实现的考虑

因为我觉得,如果需要实现自动化测试就必须对测试用例进行细分,划分得越细就越有利于自动化的实现

以上三层的划分也并不是很全面,需要在实践中不断完善,例如可以增加对数据库的部分功能的数据校验的分析

总之,测试用例写的细致、全面、步骤清晰,那么无论是用手工测试的方法还是用自动化测试的方法实现,只要能完整的跑完整个测试用例,就达到了测试的目标了

软件测试思想是什么

 1、逆向思维方式
· 逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分
· 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析
· 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞
2、组合思维方式
· 很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长
· 按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”
· 为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性
3、全局思维方式
· 事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求
· 其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性
4、两极思维方式
· 边界值分析是两极思维方式的典范
· 为了看系统的稳定性,我们采用了压力测试
· 两极思维方式,是在极端的情况下,看是否存在缺陷?
· 注意是两极,不是一极
· 测试人员做久了,往往容易走极端——职业病,不利于与人沟通
5、简单思维方式
· 剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”
· 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向
6、比较思维方式
· 认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用
· 应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用
· 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式

测试用例设计方法

一、用例介绍

1.定义

为某个业务目标,而编制的一组由测试输入,执行条件以及预期结果组成的案例

2.为什么要学习测试用例?

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

测试用例的使用令软件测试的实施重点突出、目的明确。

在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。

检验软件是否满足客户需求、体现一个测试人员的工作量、展现测试用例的设计思路。

3.用例核心要素(16个)

3.1  必须掌握:

用例编号(如何命名)、所属模块、用例标题(验证谁在什么情况下,去做什么,最后结果是什么)、优先级、前置条件、操作步骤、测试数据、预期结果、实际结果

3.2  了解内容:

通过否、bugID、编写人员、编写时间、测试人员、测试时间、备注

3.3  接口测试三大要素:

路由、参数、类型

3.4 什么是高质量的测试用例

1.测试用例覆盖所有的用户需求

2.测试用例要简单明了

3.各类型的测试用例要齐全

4.用最少的用例覆盖最多的需求

二、等价类划分法

1.定义

等价类划分 是把所有可能输入的数据分为若干个区域,然后从每个区域中取少量有代表性的数据进行测试即可。

等价类 :何为等价类,某个输入域的集合,在这个集合中每个输入条件都是等效的。

2.分类

一般可分为 有效等价类 和 无效等价类 。

有效等价类:指符合《需求规格说明书》,输入合理的数据集合

无效等价类:指不符合《需求规格说明书》,输入不合理的数据集合

3.案例

3.1邮箱登录

3.2  QQ号注册

三、边界值法

1.定义:

边界值法设计测试用例,是对输入或输出的边界值(有效等价类和无效等价类的界限)进行测试的一种黑盒测试方法。

2.边界值法存在的意义:

测试研究表明错误往往会发生在输入或输出范围的边界上,所以边界值法是对这些边界进行测试,是对划分等价类法的一种补充。

3.确定边界值的方法

上点: 边界上的点(符合条件的边界点),无论此时的域是开区间还是闭区间,开区间的话,上点就是在域外,闭区间的话,上点就是在域内。

内点: 边界内的任意点。

离点: 是指离上点最近的左右两点。这里就跟是闭区间还是开区间就有关系了,如果是开区间,那么离点就在域内,如果是闭区间,那么离点就在域外。(开内闭外)

遵循的原则:开内闭外 开区间往中间找,闭区间往外找

 (如下图)

4.案例

5.边界值分析法拓展

***隐藏网址***

软件测试用例的设计方法

功能 测试用例的设计方法 :
  1. 边界值分析法:
  指对输入的边界条件进行分析,设计出针对边界值的测试用例。
  数值的边界值检验
  字符的边界值检验
  如: ASCII和 Unicode编码方式
  其他边界值检验
  选上所有选项(最大值)
  不选上任何一项(空,零)
  只选一项 (最小值)
  2. 等价类划分法:
  有效等价类:指输入完全满足程序输入的规格说明,是由有效且有意义的输入数据所构成的集合,利用有效等价类可以检验程序是否满足规格说明所规定的功能和 性能 。
  无效等价类:和有效等价类相反,即不满足程序输入要求或者由无效的输入数据构成的集合。
  3. 因果图法:
  就是利用图解法分析软件输入(原因)和输出条件(结果)之间的关系,以设计测试用例的方法。因果图法适合于检查程序输入条件的多种情况的组合,并最终生成判定表,来获得对应的测试用例。
  4. 功能图法
 功能图是描述程序状态变化、转移的过程,因为软件运行或操作的过程可以看作是其状态不断发生变化的过程。测试用例的设计就是如何覆盖所有软件表现出来的状态,即在满足输入/输出的一组条件下,软件运行是一系列有次序的、受控制的状态变化过程。
  5. 错误推测法:
  推测法主要依赖经验、直觉来作出简单的判断甚至是猜测,给出可能存在 缺陷 的条件、场景等,在找到缺陷后,设计出相应的测试用例。
  6. 正交实验设计方法:
  主要步骤是:
  (1) 对软件 需求 规格说明中的功能要求进行划分(层层分解与展开),分解成具体的、相对独立的基本功能。
  (2) 根据基本功能的 质量 需求,找出影响其功能实现的操作对象和外部因素,每个因素的取值可以看作水平,多个取值就存在多个水平。
  (3) 确定待测试软件中所有因素及其权值,这是 测试用例设计 的关键,确保全面、准确。
  权值是依据各因素的影响范围、发生的频率和质量的需求来确定的。
  (4) 加权筛选,生成因素分析表。
  (5) 利用正交表构造测试数据集,正交表的每一行,就是一条测试用例。考虑交互作用不可忽略的处理因素和不可混杂的原则,有交互作用的组合优先安排。

如何写测试用例

对各个功能模块进行测试点分析,提取测试点再堆测试点进行用例编写。

比如对PC端QQ账号的登录模块,提取测试点就有:

①正常登陆;

②账号为空时点击登录;

③密码为空时点击登录;

④账号密码都为空时点击登录;

⑤密码错误时点击登录 ;

⑥找回密码功能是否有效;

⑦记住密码功能是否有效;

⑧自动登录功能是否有效。

编写测试用例该注意:

①根据项目的实际情况设计测试用例表格;

②用例格式不要生搬硬套;

③根据具体情况编写。



关于软件测试用例设计到此分享完毕,希望能帮助到您。

软件测试用例设计(软件测试用例设计方法有哪些)

本文编辑:admin

更多文章:


setint(PreparedStatement setString与setInt效果是否一样)

setint(PreparedStatement setString与setInt效果是否一样)

大家好,今天小编来为大家解答以下的问题,关于setint,PreparedStatement setString与setInt效果是否一样这个很多人还不知道,现在让我们一起来看看吧!本文目录PreparedStatement setStri

2026年7月20日 22:15

spring用英语怎么说(spring怎么读英语 spring英文解释)

spring用英语怎么说(spring怎么读英语 spring英文解释)

本篇文章给大家谈谈spring用英语怎么说,以及spring怎么读英语 spring英文解释对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录

2026年2月23日 15:30

throwstones怎么读(stones怎么读)

throwstones怎么读(stones怎么读)

今天给各位分享stones怎么读的知识,其中也会对stones怎么读进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录stones怎么读石头英文怎么念石用英文怎么读Don’t throw stonesstones

2025年6月18日 11:45

hash是什么(hash算法是什么呢)

hash是什么(hash算法是什么呢)

大家好,关于hash是什么很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于hash算法是什么呢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录hash算

2026年9月17日 16:30

eclipse怎么安装汉化包(eclipse怎么安装)

eclipse怎么安装汉化包(eclipse怎么安装)

大家好,eclipse怎么安装汉化包相信很多的网友都不是很明白,包括eclipse怎么安装也是一样,不过没有关系,接下来就来为大家分享关于eclipse怎么安装汉化包和eclipse怎么安装的一些知识点,大家可以关注收藏,免得下次来找不到哦

2025年9月8日 00:45

j2ee三层架构(基于J2EE的WEB开发中如何分层)

j2ee三层架构(基于J2EE的WEB开发中如何分层)

大家好,今天小编来为大家解答以下的问题,关于j2ee三层架构,基于J2EE的WEB开发中如何分层这个很多人还不知道,现在让我们一起来看看吧!本文目录基于J2EE的WEB开发中如何分层请问软件三层架构是如何架构的,用什么工具开发J2EE开发中

2026年7月8日 23:00

property prices(spillover effect是什么意思)

property prices(spillover effect是什么意思)

“property prices”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看property prices(spillover effect是什么意思)!本文目录spillover effect是什么意思harden是什

2026年9月23日 18:00

免费主题大全(vivo免费全局主题名字)

免费主题大全(vivo免费全局主题名字)

大家好,今天小编来为大家解答以下的问题,关于免费主题大全,vivo免费全局主题名字这个很多人还不知道,现在让我们一起来看看吧!本文目录vivo免费全局主题名字oppo免费全局主题有哪些全部免费的主题壁纸软件是什么主题软件免费主题有哪些viv

2025年9月15日 20:15

c语言求二维数组最大值(C语言求出二维数组中的最大元素值)

c语言求二维数组最大值(C语言求出二维数组中的最大元素值)

大家好,今天小编来为大家解答以下的问题,关于c语言求二维数组最大值,C语言求出二维数组中的最大元素值这个很多人还不知道,现在让我们一起来看看吧!本文目录C语言求出二维数组中的最大元素值c语言编程:找出二维数组中的最大值最小值及其所在行号列号

2026年8月10日 01:15

update的过去式和过去分词(Update翻译成汉语是什么意思)

update的过去式和过去分词(Update翻译成汉语是什么意思)

“update的过去式和过去分词”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看update的过去式和过去分词(Update翻译成汉语是什么意思)!本文目录Update翻译成汉语是什么意思update英文怎么读windows

2025年8月29日 13:00

jquery在哪里写(如何写一个jquery 插件)

jquery在哪里写(如何写一个jquery 插件)

本篇文章给大家谈谈jquery在哪里写,以及如何写一个jquery 插件对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录如何写一个jquer

2026年4月30日 06:45

学生eclipse安装教程(哪位大神可以手把手教我怎么在eclipse中安装PHP啊,我是学生,刚刚开始学习,不会装呀..)

学生eclipse安装教程(哪位大神可以手把手教我怎么在eclipse中安装PHP啊,我是学生,刚刚开始学习,不会装呀..)

今天给各位分享哪位大神可以手把手教我怎么在eclipse中安装PHP啊,我是学生,刚刚开始学习,不会装呀..的知识,其中也会对哪位大神可以手把手教我怎么在eclipse中安装PHP啊,我是学生,刚刚开始学习,不会装呀..进行解释,如果能碰巧

2026年7月2日 16:30

进制转换器代码(C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具)

进制转换器代码(C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具)

本篇文章给大家谈谈进制转换器代码,以及C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具求c++各进制转

2025年10月4日 05:30

idea写的代码eclipse能用吗(怎么把Intelij IDEA的工程变为Eclipse工程,希望有人解答)

idea写的代码eclipse能用吗(怎么把Intelij IDEA的工程变为Eclipse工程,希望有人解答)

本篇文章给大家谈谈idea写的代码eclipse能用吗,以及怎么把Intelij IDEA的工程变为Eclipse工程,希望有人解答对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决

2025年6月9日 15:00

values英文(价值观的英语定义有谁知道麻烦告之谢谢)

values英文(价值观的英语定义有谁知道麻烦告之谢谢)

大家好,今天小编来为大家解答以下的问题,关于values英文,价值观的英语定义有谁知道麻烦告之谢谢这个很多人还不知道,现在让我们一起来看看吧!本文目录价值观的英语定义有谁知道麻烦告之谢谢三观用英文怎么说我个人想了个views英文翻译一道题谢

2026年6月5日 17:15

关系数据库系统的特点(数据库关系模型的主要特点是什么)

关系数据库系统的特点(数据库关系模型的主要特点是什么)

“关系数据库系统的特点”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看关系数据库系统的特点(数据库关系模型的主要特点是什么)!本文目录数据库关系模型的主要特点是什么关系数据库系统的主要特点是什么关系数据库系统的特点是什么数据

2026年3月22日 03:00

易语言源代码及模块大全1500(求一个小工具的易语言源代码 悬赏100分)

易语言源代码及模块大全1500(求一个小工具的易语言源代码 悬赏100分)

其实易语言源代码及模块大全1500的问题并不复杂,但是又很多的朋友都不太了解求一个小工具的易语言源代码 悬赏100分,因此呢,今天小编就来为大家分享易语言源代码及模块大全1500的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分

2026年1月17日 23:15

plsql打开多个窗口列表(plsql多窗口切换)

plsql打开多个窗口列表(plsql多窗口切换)

各位老铁们,大家好,今天由我来为大家分享plsql打开多个窗口列表,以及plsql多窗口切换的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录plsq

2026年8月7日 14:00

mmap的实现原理(Android跨进程通信-mmap函数)

mmap的实现原理(Android跨进程通信-mmap函数)

大家好,mmap的实现原理相信很多的网友都不是很明白,包括Android跨进程通信-mmap函数也是一样,不过没有关系,接下来就来为大家分享关于mmap的实现原理和Android跨进程通信-mmap函数的一些知识点,大家可以关注收藏,免得下

2026年5月3日 00:15

stunted(t,u,s,t,e,n,d能组成什么单词)

stunted(t,u,s,t,e,n,d能组成什么单词)

今天给各位分享t,u,s,t,e,n,d能组成什么单词的知识,其中也会对t,u,s,t,e,n,d能组成什么单词进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录t,u,s,t,e,n,d能组成什么单词stunt

2025年12月15日 05:00

近期文章

char ch用法(c语言char ch)
2026-09-24 18:45:02
本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索