黑盒测试-用例设计(下)【Java黑盒测试用例代码 测试用例黑盒技术】 上篇主要记录了等价类划分、边界值分析、错误推测法 , 下面接着来学习黑盒测试其他常见的:因果图判定表、场景法等 。
因果图法是一种适合于描述对于多种输入条件组合的测试方法 , 根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况 。
因果图法一般和判定表结合使用 , 通过映射同时发生相互影响的多个输入来确定判定条件 。因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况 。采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例 。
因(原因):输入条件
果(结果):输出结果
因果图:就是通过画图的方式来表示输入条件(因)和输出结果(果)之间的关系 。
1.关系
①恒等 - :若ci是1,则ei也是1;否则ei为0 。
②非 ~ :若ci是1,则ei是0;否则ei是1 。
③或 V :若c1或c2或c3是1,则ei是1;否则ei为0 。“或”可有任意个输入 。
④与 ^ :若c1和c2都是1,则ei为1;否则ei为0 。“与”也可有任意个输入 。
2.约束
输入状态相互之间还可能存在某些依赖关系,称为约束 。例如,某些输入条件本身不可能同时出现 。输出状态之间也往往存在约束 。在因果图中,用特定的符号标明这些约束 。
A.输入条件的约束有以下4类:
① E 互斥(异):a和b不能同时成立 。
② I 包含(或):a、b和c中至少有一个成立 。
③ O 唯一;a,b条件中有且仅有一个成立 。
④R 约束(要求):表示当a出现时b也必须出现
B.输出条件约束类型
输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0 。
原因:
1:第一列字符是A;
2:第一列字符是B;
3:第二列字符是一数字 。
结果:
21:修改文件;
22:给出信息L;
23:给出信息M 。
其对应的因果图如下:11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束,如图所示:
判定表(Decision table)是另一种表达逻辑判断的工具 。与结构化语言和判断树相比,判断表的优点是能把所有条件组合充分地表达出来 。其缺点是判定表的建立过程较烦杂 , 且表达方式不如前两种简便 。判定表在用于知识表达中,有许多其他方式所达不到的作用 。
表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况 。把判定表的每一列拿出来作为依据 , 设计测试用例 。我们把表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据 。
优点
缺点
判定表优点:
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏 。因此,利用判定表能够设计出完整的测试用例集合 。在一些数据处理问题当中 , 某些操作的实施依赖于多个逻辑条件的组合 , 即:针对不同逻辑条件的组合值,分别执行不同的操作 。判定表很适合于处理这类问题 。
通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法 。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果 , 从而用来发现需求中存在的问题 。
我们通常以正常的用例场景分析开始 , 然后再着手其他的场景分析 。场景法一般包含基本流和备用流,从一个流程开始,通过描述判定表的优点:
软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流 。这种在软件设计方面的思想也可以引入到软件测试中 , 可以比较生动地描绘出事件触发时的情景 , 有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行 。
场景法一般包括基本流和备选流 。
业务层面(业务理解更重要):
测试人员要熟悉所测软件的业务逻辑,成为该行业 "业务专家" 。
技术层面:
基本流: 经过用例的每条路径都用基本流和备选流来表示 , 绿色主线表示基本流 , 是经过用例的最简单的路径 , 即无任何差错,程序从开始直接执行到结束的流程 。通常,一个业务仅存在一个基本流,且基本流仅有一个起点和一个终点 。
备选流: 表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正后仍能达到目标的流程 。备选流为除了基本流之外的各支流,包含多种不同情况 。
场景法的核心就是“场景”二字,你所需要的就是要找出场景,场景找出来了 , 测试用例也就水到渠成 。当你找到基本流和备选流之后,需要通过构造场景矩阵将场景表示出来 。矩阵一旦生成 , 用例也就一目了然 。说起来比较简单,但在使用的过程中会遇到不少的问题 。在很多流程图中,有不少备选流其实是隐藏的 。
希望读者能深入理解两个流的概念,为什么会有这两个流,两个流的特点是什么,为什么要构造矩阵,矩阵的纵向和横向代表什么,V, I又代表什么? 。
以上表中,是把每个场景成立的条件进行了分析 , 基本上已经明确了测试用例的数量,现在只要把真实数据填充上,那么整个测试用例就完成了 。
以上写到的测试用例只是购物的一部分测试用例 。其他测试用例,感兴趣的可以再进行补充和扩展,想要达到比较好的覆盖 。那么只能不断迭代进行优化用例设计 。
以上主要记录学习了平时比较常用的一些方法,当然还有一些其他的测试方法 。如:Pairwise 、 正交实验法(allpairspy) 、决策表等等 , 如果感兴趣的可以自行去了解学习 。对以上有疑惑的可以 关注 留言 点赞 进行互动讨论 。
如何写测试用例 java测试用例设计和执行是测试工作的核心,也是工作量最大的任务之一 。
测试用例(Test Case)目前没有经典的定义 。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略 。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档 。
测试用例编写准备
1
从配置管理员处申请软件配置:《需求规格说明书》和《设计说明书》;
2
根据需求规格说明书和设计说明书,详细理解用户的真正需求,并且对软件所实现的功能已经准确理解,然后着手制订测试用例 。
测试用例制定的原则
1测试用例要包括欲测试的功能、应输入的数据和预期的输出结果 。
2测试数据应该选用少量、高效的测试数据进行尽可能完备的测试 。
用例覆盖
1正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用 例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常 。
2容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出, 输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示 并进行相应处理 。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作 。
3完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整 。
4接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性 。
5压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录进行测试 。
6性能:完成预定的功能,系统的运行时间(主要是针对数据库而言) 。
7可理解(操作)性:理解和使用该系统的难易程度(界面友好性) 。
8可移植性:在不同操作系统及硬件配置情况下的运行性 。
测试方法
1边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取 。
2等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类 。
3错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处 。
测试用例的填写
1一个软件系统或项目共用一套完整的测试用例,整个系统测试过程测试完毕,将实际测试结果填写到测试用例中,操作步骤应尽可能的详细,测试结论是指最终的测试结果(结论为:通过或不通过) 。
搞不清测试用例怎么搞,有谁能提供个小软件代码 , 以及测试用例 。(比如图书馆,小超市管理系统等等都ok)最经典的莫过于三角形的案例Java黑盒测试用例代码,先写代码,再写测试案例?。。。〔馐怨こ淌Ρ乇钢叮?
三角形设计测试用例的问题在面试的时候经常遇到 。
假设输入三个整数a、b、c分别作为三边的边长构成三角形 。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时!要求画出程序的流程图和时序图,并且用自己熟悉的一种语言实现这个功能!Java黑盒测试用例代码我在网上搜索了一下发现已经有好多文章 , 不过发现很少有写出程序的,其实用java语言也可以实现,流程图和程序图参考的网上的 。
三角形设计测试用例的问题在面试的时候经常遇到 。
假设输入三个整数a、b、c分别作为三边的边长构成三角形 。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时!要求画出程序的流程图和时序图,并且用自己熟悉的一种语言实现这个功能!我在网上搜索了一下发现已经有好多文章,不过发现很少有写出程序的 , 其实用java语言也可以实现 , 流程图和程序图参考的网上的 。
程序如下Java黑盒测试用例代码:
package sanj;
/**
*
* @author xingzunxi
*/
import java.io.*;
class sanj{
public static int a,b,c;
public static void main(String arg[]) throws IOException{
try{
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in)); //接收键值
System.out.println("输入三边值,每个值输入后回车");
System.out.println("请输入:");
a=Integer.valueOf(stdin.readLine());
b=Integer.valueOf(stdin.readLine());
c=Integer.valueOf(stdin.readLine());
}catch(IOException e){
System.out.println("出现异常!");
System.exit(0);
}
if(a bc || a cb || b ca){
System.out.println("Java黑盒测试用例代码你输入的不能构成三角形");
}
if(a==b || a==c || b==c)
{
if(a==bb==c) System.out.println("等边三角形");
else System.out.println("等腰三角形");
}
else System.out.println("一般三角形");
}
【案例举例】
第一步:确定测试策略 。在本例中,对被测程序的功能有明确的要求,即:
(1)判断能否组成三角形;
(2)识别等边三角形;
(3)识别等腰三角形;
(4)识别任意三角形 。因此可首先用黑盒法设计测试用例 , 然后用白盒法验证其完整性,必要时再进行补充 。
第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类 , 然后用边界值分析法和猜错法作补充 。
等价分类法:
有效等价类
输入3个正整数:
(1)3数相等
(2)3数中有2个数相等,比如AB相等
(3)3数中有2个数相等,比如BC相等
(4)3数中有2个数相等 , 比如AC相等
(5)3数均不相等
(6)2数之和不大于第3数,比如最大数是A
(7)2数之和不大于第3数,比如最大数是B
(8)2数之和不大于第3数,比如最大数是C
无效等价类:
(9)含有零数据
(10)含有负整数
(11)少于3个整数
(12)含有非整数
(13)含有非数字符
边界值法:
(14)2数之和等于第3数
猜错法:
(15)输入3个零
(16)输入3个负数
第三步:提出一组初步的测试用例,如下表所示:
第四步:用白盒法验证第三步产生的测试用例的充分性 。结果表明 , 上表中的前8个测试用例,已能满足对被测程序图的完全覆盖 , 不需要再补充其Java黑盒测试用例代码他的测试用例
}
北大青鸟java培训:软件测试有哪些常用的测试方法?随着软件技术的不断发展,越来越多的人开始关注软件测试,软件测试的方法有很多种,最重要的是选择适合的软件测试方法 。
选择是非常关键的,只有选择到合适的才能在工作中起到事半功倍的作用 。
那么软件测试的方法有哪些呢?下面电脑培训为大家具体介绍 。
一、白盒测试白盒测试也称为结构测试,是根据程序内部的逻辑结构和代码结构,设计测试数据,完成测试的测试方法 。
白盒子测试的直接优点是,知道所设计的测试用例在代码上的哪个地方被忽视 。
IT培训认为其优点是测试人员能够增加代码的覆盖率,提高代码实行的整体质量,帮助发现代码中的隐藏危险 。
二、黑盒测试黑盒测试也称数据传输测试,作为不能够看到测试对象的黑匣子,完全不需要考虑程序内部结构和处理过程的情况,北大青鸟发现测试人员可以根据程序功能的要求规格,确定测试用例,并推断测试结果的测试方法 。
三、灰盒测试灰盒测试主要是一种综合的测试方法,它居于程序运行的外部表达 。
同时,根据内部逻辑结构设计用例 , 执行程序、采集路径执行信息和外部用户界面结果 。
四、集成测试集成测试是一种组装测试,是在单元测试基础上的一种有序测试 。
其主要的目的是验证软件单元间的接口关系,通过测试发现各软件单元接口间的问题,重庆北大青鸟非常期待最终测试的单元构成符合设计要求的软件 。
Java黑盒测试用例代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于测试用例黑盒技术、Java黑盒测试用例代码的信息别忘了在本站进行查找喔 。
推荐阅读
- 角色扮演游戏体验,角色扮演游戏的玩法
- 下载猫,下载猫眼电影app
- 怎么看主板跟显卡是否兼容,怎样看电脑主板与显卡是否兼容
- 满分答题技巧全套直播,满分题库小程序怎么样
- 关于php如何同时连接数据库的信息
- 小程序医疗直播,医疗直播间
- jquery全屏页面代码,jquery怎么实现单页面
- 农业电商如何运用,农业电商如何运用网络营销
- python可变函数 python中的可变数据类型有哪些