实验四(白盒测试)

合集下载

软件功能测试实验报告

软件功能测试实验报告

实验名称:软件功能测试实验日期:2021年10月25日实验地点:实验室实验人员:张三、李四、王五一、实验目的1. 熟悉软件功能测试的基本概念和流程。

2. 掌握常用的功能测试方法和工具。

3. 提高软件测试技能,为今后从事软件测试工作打下基础。

二、实验内容1. 了解软件功能测试的基本概念和流程。

2. 学习并使用常用的功能测试方法和工具。

3. 完成一项软件功能测试任务。

三、实验步骤1. 熟悉软件功能测试的基本概念和流程。

(1)软件功能测试的定义:软件功能测试是指通过一系列测试用例,验证软件是否满足需求规格说明书中的功能要求。

(2)软件功能测试的流程:1)需求分析:了解软件的功能需求,明确测试目标。

2)测试计划:制定测试策略、测试用例、测试环境等。

3)测试执行:按照测试计划执行测试用例。

4)缺陷报告:记录、跟踪、管理缺陷。

5)测试总结:总结测试过程,评估测试结果。

2. 学习并使用常用的功能测试方法和工具。

(1)黑盒测试:通过输入和输出数据,验证软件的功能是否满足需求。

(2)白盒测试:通过了解软件的内部结构和代码逻辑,验证软件的功能。

(3)灰盒测试:结合黑盒测试和白盒测试的特点,验证软件的功能。

(4)常用的功能测试工具:QTP(QuickTest Professional)、Selenium、LoadRunner等。

3. 完成一项软件功能测试任务。

(1)选择测试对象:选取一款常用的办公软件,如Microsoft Office Word。

(2)编写测试计划:明确测试目标、测试范围、测试方法、测试用例等。

(3)编写测试用例:根据测试计划,编写详细的测试用例。

(4)执行测试用例:按照测试用例执行测试,记录测试结果。

(5)缺陷报告:发现缺陷后,及时编写缺陷报告,提交给开发人员。

(6)测试总结:对测试过程进行总结,评估测试结果。

四、实验结果与分析1. 实验结果本次实验选取了Microsoft Office Word作为测试对象,通过编写测试用例、执行测试用例、缺陷报告等环节,完成了软件功能测试任务。

第4章白盒测试及其实例设计

第4章白盒测试及其实例设计
第4章白盒测试及其实例设计
测试用例
Test Case 1 Test Case 2 Test Case 3 Test Case 4
表4-9 测试用例组9
输入
i
str
num1
期望输出 num2
5
‘T’
0
0
4
‘T’
1
0
4
‘A’
0
0
4
‘F’
0
1
score
执行路径
100
路径1
100
路径2
100
路径3
实例设计
3.设计测试用例 根据上面环形复杂度的计算结果,源程序的基本路径集合中有4条独立路径: 路径1:7->18 路径2:7->9->10->16->7->18 路径3:7->9->11->15->16->7->18 路径4:7->9->11->13->14->15->16->7->18 根据上述4条独立路径,设计了测试用例组9,如表4-9所示。测试用例组9 中的4个测试用例作为程序输入数据,能够遍历这4条独立路径。对于源程序 中的循环体,测试用例组9中的输入数据使其执行零次或一次。
序时,程序中每个判断条件的真值分支和假值分支至少被执行一遍。在保证完 成要求的情况下,测试用例的数目越少越好。
判断覆盖又称为分支覆盖。 以下是针对公共程序段设计的两个测试用例: Test Case 1:x=2000,y=600,z=6000 Test Case 3:x=50,y=600,z=2000
判断/条件覆盖 判断/条件覆盖是指设计若干个测试用例,执行被测试程序时,程序中 每个判断条件的真假值分支至少被执行一遍,并且每个判断条件的内 部判断式的真假值分支也要被执行一遍。 测试用例组6: Test Case 1:x=2000, y=600, z=2000 Test Case 6:x=2000, y=200, z=6000 Test Case 7:x=2000, y=600, z=2000 Test Case 8:x=50, y=200, z=2000

基于白盒测试的用例设计与验证(一)

基于白盒测试的用例设计与验证(一)

学号:《软件测试技术》实验报告与习题册2014 / 2015 学年第2学期系别计算机科学与技术专业计算机软件班级一班姓名指导教师目录实验一:基于白盒测试的用例设计与验证(一)一.实验目的(1)熟悉Eclipse开发环境(2)掌握Java语言的基本语法,能够利用Java实现简单的程序开发(3)熟悉白盒测试基本原理(4)掌握白盒测试的逻辑覆盖法,能够依据语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖的原理进行相应测试用例的设计工作。

二.实验内容(1)选择一门语言,完成指定的单元程序开发。

(2)分别依据白盒测试逻辑覆盖法中的语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖的原理设计相应的测试用例。

(3)根据给定的流程图,实际运行测试用例,检测程序的实现是否正确。

三.程序流程图运行结果示例程序源码#include<stdio.h>void main(){int m;int n;int p;int q;printf("请输入m的值:");scanf("%d",&m);printf("请输入n的值:");scanf("%d",&n);printf("请输入p的值:");scanf("%d",&p);printf("请输入q的值:");scanf("%d",&q);printf("输入完毕\n");if(m>0 && n<6){m=n+3;n=n*2;}if(p>5 || q<0){p=2*q+5;q=q++;}printf("m:%d\n",m);printf("n:%d\n",n);printf("p:%d\n",p);printf("q:%d\n",q);}1.语句覆盖程序中的每个可执行语句至少被执行一次2.判定覆盖3.条件覆盖4.判定-条件覆盖判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次。

课题四-1白盒测试方法

课题四-1白盒测试方法

英文Female;F任选一 个(5)
已婚(6)
非“已婚”或“未婚” 之任意字符。如“离 婚”(b5)
继续分析细分有效等价类和无效等价类
有效等价类
婚姻
未婚(7)
抚养人数 空白(8)
抚养人数 1—6(9)
无效等价类
无效等价类
小于1选一个(b6)
抚养人数 7—9(10)
大于9选一个(b7)
保险费率 10点以上(0.6%) (11)
a
A>1 AND B=0
N
b
A=2 OR X>1
dN
c
Y
X:=X/A
e
Y
X:=X+1
应满足以下情况: 条件: A>1, A≤1, B=0, B≠0
A=2, A≠2, X>1, X≤1
应执行路径 ace ∧ abd 或: acd ∧ abe
选择用例:
[(2,0,4),(2,0,3)](ace) [(1,1,1),(1,1,1)] (abd)
测试用例的基本元素:测试索引,测试环 境,测试输入,测试操作,预期结果,评 价标准。
最简单的测试用例也将包含:用例编号、 输入、期望结果、实际结果。
测试用 输入
预期结果
实际结果
测试统计
例ID
利率 贷款 贷款 月
总 总 月 总 总 通过/ 测试 测试
期限 金额 支
支 利 支 支 利 失败 日期 人员
选择用例: [(2,0,4),(2,0,3)]
目标二:使得程序中每个判定至少为TRUE或FALSE 各一次 (判定覆盖)
a
A>1 AND B=0
N
b
c
Y

实验1 白盒测试技术(4学时)

实验1 白盒测试技术(4学时)

实验1:白盒测试用例设计实验目的1.理解白盒测试意义和目的2. 掌握逻辑覆盖测试进行白盒测试测试3.掌握独立路径测试方法。

实验内容运用覆盖及路径测试方法,使用白盒测试法为下列的 JAVA 程序设计测试用例。

下面是一个洗牌、发牌程序的规格说明:1.输入玩牌的张数,有52、48张;2.如有52张牌,则输入玩牌人数,4或2人,输入人数后打出发牌结果;如果输入人数不对,则退出程序;3.如有48张牌,则输入玩牌人数,3或4人,输入人数后打出发牌结果;如果输入人数不对,则退出程序;import java.util.*;import java.io.*;import javax.swing.*;public class cardTest {public static void main(String[] args) {String[] suit = {"黑桃", "红桃", "梅花", "方块"};String[] rank = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};ArrayList list = new ArrayList();for (int i = 0; i < suit.length; i++) {for (int j = 0; j < rank.length; j++) {list.add(suit[i] + rank[j]);}}for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i) + " ");}Collections.shuffle(list); //将list中的元素重新随机排序int cardnum = Integer.parseInt(JOptionPane.showInputDialog("有多张牌?请输入整数52,48"));if (cardnum == 48) {list.remove("红桃2");list.remove("方块2");list.remove("梅花2");list.remove("方块A");int player1 = Integer.parseInt(JOptionPane.showInputDialog("请输入人数:3或4的整数"));if (player1 == 3) {for (int i = 0; i < 3; i++) {System.out.print("玩家" + i + ": ");for (int j = i * 16; j < (i + 1) * 16; j++) {System.out.print(list.get(j+1) + " ");}System.out.println();}}else if(player1 == 4) {for (int i = 0; i < 4; i++) {System.out.print("玩家" + i + ": ");for (int j = i * 12; j < (i + 1) * 12; j++) {System.out.print(list.get(j) + " ");}System.out.println();}}else{JOptionPane.showMessageDialog(null,"输入错误!");System.exit(0);}}else {int player1 = Integer.parseInt(JOptionPane.showInputDialog("请输入人数:整数2或4"));if (player1 == 2) {for (int i = 0; i < 3; i++) {System.out.print("玩家" + i + ": ");for (int j = i * 24; j < (i + 1) * 24; j++) {System.out.print(list.get(j) + " ");}System.out.println();}}else {for (int i = 0; i < 4; i++) {System.out.print("玩家" + i + ": ");for (int j = i * 13; j < (i + 1) * 13; j++) {System.out.print(list.get(j) + " ");}System.out.println();}}}}}1.要求为加粗代码行画出控制流图;2.要求采用覆盖测试法设计测试用例;3.要求采用独立路径测试法设计测试用例。

黑盒测试,白盒测试

黑盒测试,白盒测试

黑盒测试,白盒测试黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。

利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。

黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。

黑盒测试试图发现以下类型的错误:1)功能错误或遗漏;2)界面错误;3)数据结构或外部数据库访问错误;4)性能错误;5)初始化和终止错误。

采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

黑盒测试的测试用例设计方法·等价类划分方法·边界值分析方法·错误推测方法·因果图方法·判定表驱动分析方法·正交实验设计方法·功能图分析方法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.1) 划分等价类:等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.无效等价类:与有效等价类的定义恰巧相反.设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.2)划分等价类的方法:下面给出六条确定等价类的原则.①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:输入条件有效等价类无效等价类... ... ...... ... ...然后从划分出的等价类中按以下三个原则设计测试用例:①为每一个等价类规定一个唯一的编号.②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.边界值分析法边界值分析方法是对等价类划分方法的补充.1)边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.2)基于边界值分析方法选择测试用例的原则:①如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.②如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.③根据规格说明的每个输出条件,使用前面的原则1).④根据规格说明的每个输出条件,应用前面的原则2).⑤如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.⑥如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.7)分析规格说明,找出其它可能的边界条件.错误推测法错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.利用因果图生成测试用例的基本步骤:①分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.②分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.③由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.④把因果图转换为判定表.⑤把判定表的每一列拿出来作为依据,设计测试用例.从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.判定表通常由四个部分组成.条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.判定表的建立步骤:(根据软件规格说明)①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有种规则.②列出所有的条件桩和动作桩.③填入条件项.④填入动作项.等到初始判定表.⑤简化.合并相似规则(相同动作).B. Beizer 指出了适合使用判定表设计测试用例的条件:①规格说明以判定表形式给出,或很容易转换成判定表.②条件的排列顺序不会也不影响执行哪些操作.③规则的排列顺序不会也不影响执行哪些操作.④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.黑盒测试的优点1. 基本上不用人管着,如果程序停止运行了一般就是被测试程序crash了2. 设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定crash原因黑盒测试的缺点1. 结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG的东西很值得借鉴2. 没有状态转换的概念,目前一些成功的例子基本上都是针对PDU 来做的,还做不到针对被测试程序的状态转换来作3. 就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。

白盒测试实验

实验题1.编写判断是否为闰年的程序,①画出程序流程图②转换成控制流图③得到控制流矩阵④参考课件分别设计语句覆盖、判定覆盖、条件覆盖、判定---条件覆盖和路径覆盖的测试用例。

实验题2.参考以下流程图,编写判断三角形的函数。

并对其进行如下操作:①转换成控制流图②得到控制流矩阵③参考课件分别设计语句覆盖、判定覆盖、条件覆盖、判定---条件覆盖和路径覆盖的测试用例。

实验题3.程序流程图如下,并对其进行如下操作:①转换成控制流图②得到控制流矩阵③参考课件分别设计语句覆盖、判定覆盖、条件覆盖、判定---条件覆盖和路径覆盖的测试用例。

备注:下课之前以word文档形式(班级+学号+姓名)发到clmjet@实验题1.判断是否是润年程序代码:package ww;import java.util.Scanner;public class Tes {public static void main(String[] args) {Scanner in = new Scanner(System.in);int year = in.nextInt();/* 闰年的条件是:①能被4整除,但不能被100整除;②能被100整除,又能被400整除。

*/System.out.println("请输入年份:");Scanner sc=new Scanner(System.in); sc.nextInt();if(year%4==0&&year%100!=0||year%400==0) {System.out.println("是闰年");}else{System.out.println("不是闰年");}}}程序流程图:控制流图:①a②b③c d④⑤e f g⑥h i⑦j⑧k m⑨语句覆盖:int year = 2016;int year =2017;int year=2018; 判定覆盖:实验题2.#include<stdio.h>#include<stdlib.h>void main(){int a,b,c;bool flag = false;scanf("%d%d%d",&a,&b,&c);if((a+b)>c&&(b+c)>a&&(a+c)>b) {flag =true;if(flag){if(a != b && b != c){printf("不等边三角形。

最新实验1-白盒测试

实验一白盒测试用例设计班级: 11511 学号: 20113051119 姓名:张琳静一.实验目的1.掌握白盒测试用例设计方法;2.综合运用所学的白盒测试方法设计进行测试用例设计;3.掌握测试用例的编写方法。

二.实验内容及要求1.使用逻辑覆盖法测试以下程序段。

private void DoWork(int x, int y, int z)1 {2 int k = 0, j = 0;3 if ((x > 3) && (z < 10))4 {5 k = x * y - 1;6 j = (int)Math.Sqrt(k);7 }8 if ((x == 4) || (y > 5))9 j = x * y + 10;10 j = j % 3;11 lbResult.Text = "k=" + k.ToString() +" j=" +j.ToString () ;12 }说明:程序段中每行开头的数字是对每条语句的编号。

要求:(1)画出程序的控制流图(用题中给出的语句编号表示)。

(2)分别以语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。

(3)执行测试用例,并记录测试结果。

2.基本路径测试按要求对下面的代码进行测试。

代码功能是:用折半查找在元素呈升序排列的数组中查找值为key的元素。

代码如下:private int BinSearch(int [] array,int key)1 {2 int mid,low,high;3 low=0;4 high = array.Length - 1;5 while (low <= high)6 {7 mid = (low + high) / 2;8 if (key == array[mid])9 return mid;10 else if (key < array[mid])11 high = mid - 1;12 else13 low = mid + 1;14 }15 return -1;16 }(1)画出该程序的控制流图;(2)计算该程序的环路复杂度;(3)用基本路径测试法设计测试路径,之后为各测试路径设计测试用例,并记录执行结果。

软件测试实验报告

软件测试实验报告《软件测试》实验报告书安徽⼯业⼤学计算机学院姓名马超专业软件⼯程班级132学号139074191指导教师刘卫红2016年 5⽉实验⼀⽤例设计与⿊盒测试⼀、实验⽬的(1)能够熟练应⽤⿊盒测试技术进⾏测试⽤例设计。

(2)对测试⽤例进⾏优化测试。

⼆、实验设备主流PC机⼀套,安装有主流的编程⼯具如MyEclipse、C、Visual C++三、实验内容为QQ的注册账号功能设计测试⽤例。

注册账号功能部分截图如下:等价类划分有效等价类编号⽆效等价类编号昵称不为空空密码长度为6-16个字符⾮长度为6-16个字符或9位以下纯数字不是9位以下纯数字不包含空格包含空格确认密码与密码栏输⼊⼀致与密码栏输⼊不⼀致性别男/⼥不选择(⽆法做到)⽣⽇选择合法有效⽇期不选择所在地选择合法有效地址不选择(⽆法做到)验证码验证正确验证不正确不验证⼿机号码输⼊合法有效⼿机号码输⼊⼿机号码不合法或⽆效不输⼊短信验证码输⼊正确验证码输⼊错误验证码不输⼊(有效与否由⼿机号码栏是否输⼊决定)不输⼊(有效与否由⼿机号码栏是否输⼊决定) 同意开通QQ空间勾选/不勾选我已阅读并同意相关服务条款和隐私政策勾选不勾选其中,密码栏和确认密码栏,⼿机号码栏和短信验证码栏之间有约束关系,采⽤因果图法原因:密码: 1 输⼊合法密码确认密码: 3 与密码栏⼀致2 输⼊合法密码 4 与密码栏不致结果: 5后续操作 6 报错O约束(唯⼀);1或2和3或4必须有且仅有1个为1。

原因:⼿机号码: 1 输⼊短信验证码: 3输⼊2 不输⼊ 4 不输⼊结果: 7后续判断8 报错R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。

测试⽤例序号输⼊条件测试⽤例期望结果1 昵称412544热可以注册密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选2(已存在) 昵称412544热不可以注册密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选3 昵称昵称不可以为空密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码 gbe(随机验证通过) ⼿机号码 157********短信验证码 345234(随机验证通过) 同意开通QQ 空间勾选我已阅读并同意相关服务条款和隐私政策勾选 4昵称 412544热 6-12字符 9位⼀下纯数字密码 12345 确认密码 12345 性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码 gbe(随机验证通过) ⼿机号码 157********短信验证码 345234(随机验证通过) 同意开通QQ 空间勾选我已阅读并同意相关服务条款和隐私政策勾选 5昵称 412544热9位⼀下纯数字密码 123456/1234567/12345678 确认密码 123456/1234567/12345678 性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码 gbe(随机验证通过) ⼿机号码 157********短信验证码 345234(随机验证通过) 同意开通QQ 空间勾选我已阅读并同意相关服务条款和隐私政策勾选 6昵称 412544热可以注册密码 123456789/1234567890/12345678901/123456789012 确认密码123456789/1234567890/12345678901/123456789012 性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码 gbe(随机验证通过) ⼿机号码 157********短信验证码 345234(随机验证通过) 同意开通QQ 空间勾选我已阅读并同意相关服务条款和隐私政策勾选 7昵称 412544热 6-12字符密码 1234567890123 确认密码1234567890123性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服勾选务条款和隐私政策8 昵称412544热密码不⼀致密码123456789确认密码123456780性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选9 昵称412544热⽣⽇不可为确认密码2323rewew3性别男⽣⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选10 昵称4544热验证错误密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbMe(随机验证不通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选11 昵称412544热⼿机号不合法或⽆效密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码1575550370/⽆效⼿机号码短信验证码同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选12 昵称412544热短信验证码错误密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码34523(随机验证错误)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选13 昵称4544热注册按钮不可⽤密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策不勾选以下为补充补充测试⽤例编号主要操作及⽬的期望结果1 长时间离开页⾯长时间离开,重新操作2 输⼊全部正确并单击注册按钮查看是否跳转成功跳转页⾯3 检查所有下拉框是否正确且可⽤全部有效且可⽤4 在所有下拉框中分别输⼊错误信息⾃动转为默认值5 输⼊⼤⼩写字母可以区分6 能否点击查看《QQ号码规则》或《QQ空间跳转到相应页⾯服务协议》或《隐私政策》页⾯实验⼆Web测试⼀、实验⽬的掌握⽤例执⾏及缺陷报告的书写⽅法。

三角形判断-白盒测试

三⾓形判断-⽩盒测试关于三⾓形问题的⽩盒测试实验报告⼀、实验⽬的1、系统地学习和理解⽩盒测试的基本概念、原理,掌握⽩盒测试的基本技术和⽅法;2、通过实验和应⽤,逐步提⾼和运⽤⽩盒测试技术解决实际测试问题的能⼒。

3、掌握决策表和因果图的测试⽤例设计⽅法⼆、实验内容1、题⽬内容描述针对实验⼀编写的源代码进⾏⽩盒测试。

要求绘制出程序的控制流图,采⽤逻辑覆盖和基路径⽅法设计测试⽤例。

执⾏测试⽤例,并分析测试结果。

可以使⽤C++Test对代码进⾏静态检查和动态测试。

2、测试⽤例的编写根据条件绘制程序流程图如下:由程序流程图得如下控制流图:采⽤逻辑覆盖设计测试⽤例并执⾏测试⽤例:(1)语句覆盖:(2)判定覆盖(3)条件覆盖:(4)判定-条件覆盖:(5)条件组合覆盖:(6)路径覆盖:基路径⽅法设计测试⽤例并执⾏测试⽤例:三、测试结果分析经过以上测试发现:程序⽆法结束,达不到预测结果。

其余均能正确执⾏达到预期结果。

四、实验思考通过本次试验,对C++test⼯具有了⼀定的认识,学会了⼀些基本的⽤法和操作,⽤该⼯具测出了⼀些代码规范的问题,能够分析测试结果了。

本实验⽤两种⽅法对程序进⾏测试,从中可看出,基路径测试⽐逻辑覆盖测试过程简单,但是没有逻辑覆盖测试的效果好。

所以,我觉得应该更加熟悉两种测试⽅法的特⾊,以便在以后的测试中能更快更准确的选择测试⽅法,快速测试,找到程序中的错误。

附录:程序代码#include "iostream.h"#include "stdio.h"void Judge(int m_num1,int m_num2,int m_num3){while(scanf("%d %d %d",&m_num1,&m_num2,&m_num3)!=EOF){if(!(m_num1+m_num2<=m_num3 || m_num1+m_num3<=m_num2 || m_num2+m_num3<=m_num1)) {if (m_num1==m_num2 && m_num1==m_num3)cout<<"等边三⾓形"<else if (m_num1==m_num2 || m_num1==m_num3 || m_num2==m_num3)cout<<"等腰三⾓形"<elsecout<<"⼀般三⾓形"<}else{cout<<"不是三⾓形"<}}}void main(){int a,b,c;Judge(a,b,c); }。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试计划 测试目的 1. 练习和掌握软件测试管理的一般过程与步骤; 2. 掌握测试管理的人工过程和能够通过相关管理软件实现以下工作: a) 配置软件资产信息、软件需求、软件模型和缺陷数据库; b) 创建和管理多个测试组和用户; c) 配置测试环境、编写详细测试计划、安排测试进度; d) 设计测试脚本、测试用例; e) 实施测试、执行测试和评估测试。

测试选题 对PriorDate程序(计算当前输入日期的前一天)的测试。 测试人员 何@@:软件测试计划及相关资料的编写与收集。 侯@@:对特定问题编写程序代码,并对其进行黑盒测试。 金@@:对特定问题编写程序代码,并对其进行白盒测试。

测试方法 使用白盒测试技术,测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试及基本路径测试。

测试资料

白盒测试 测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。 白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。 白盒测试将被测程序看作一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。 􀂄白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。 􀂄通常的程序结构覆盖有: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 路径覆盖

软件测试过程

单元测试:针对每个单元的测试, 以确保每个模块能正常工作为目标。 集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程 序结构问题。 确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。 系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调 工作。 验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开 发人员也应有一定程度的参与。

数据整理 测试所得到的用例测试报告、BUG报告,需要进行反馈和最后的归档,归档的工作按照项目计划中所规定的内容进行,反馈的工作在测试项结束后,整理成测试总结报告后进行,具体的日期,在项目计划中有规定。 不同阶段的测试,都需要重复以上的步骤。 其他必要的数据整理的工作,由项目经理在进行过程中进行安排。 PriorDate程序测试报告(白盒) 问题描述: 定义一个PriorDate函数, PriorDate函数为了获得当前输入日期的前

一个日期, 执行如下操作: 如果输入日期day变量值大于1,则把day变量的值减1; 如果输入日期是2~12月份中某月的第一天,则把day变量的值置为前一个月的最后一 天,month变量的值减1; 如果输入日期是1月的第一天,则day变量的值置为31,month变量的值置为12,year 变量的值减1。 关于最后一天的判断: 􀂄如果是有31天的月份(1,3,5,7,8,10,12),day变量值为31; 􀂄如果是有30天的月份(4,6,9,11),day变量值为30; 􀂄如果是有29天的月份(闰年的2月),day变量值为29; 􀂄如果是有28天的月份(非闰年的2月),day变量值为28。

程序代码(开发环境:Windows7、VC++): #include using namespace std; int main() { int lastday,lastmonth,lastyear; int day,month,year; bool c1=1,c2=1,c3=1; while(c1&&c2&&c3) { cout<<"Enter today's date in form YYYY MM DD">year>>month>>day; c1=(day>=1)&&(day<=31); c2=(month>=1)&&(month<=12); c3=(year>=1900)&&(year<=2050); if (!c1) cout<<"Value of day not in the range 1~31"<<"\n"; if (!c2) cout<<"Value of month not in the range 1~12"<<"\n"; if (!c3) cout<<"Value of year not in the range 1900~2050"<<"\n"; switch(month) { case 5: case 7: case 10: case 12: if(day>1) { lastday=day-1; lastmonth=month; lastyear=year; } else { lastday=30; lastmonth=month-1; lastyear=year; } break; case 2: case 4: case 6: case 8: case 9: case 11: if(day>1) { lastday=day-1; lastmonth=month; lastyear=year; } else { lastday=31; lastmonth=month-1; lastyear=year; } break; case 3: if(day>1) { lastday=day-1; lastmonth=month; lastyear=year; } else { if(year%4==0&&year%100!=0||year%400==0) { lastday=29; lastmonth=2; lastyear=year; } else { lastday=28; lastmonth=2; lastyear=year; } } break; case 1: if(day>1) { lastday=day-1; lastmonth=month; lastyear=year; } else { lastday=31; lastmonth=12; if(year!=1900) lastyear=year-1; else cout<<"lastyear is not in range"<} break; default: cout<<"error!"<} if(c1&&c2&&c3) cout<<"the lastday is:"<} return 0; }

测试方法:

白盒测试(语句覆盖、分支覆盖、条件覆盖、分支/条件覆盖、条件组合覆盖及基本路径测试方法)

测试用例设计: 程序的流程图如下图: Y

U X W V T J P H G F E C B A O Yes Yes No Yes Yes Yes Yes Yes No No No No No No No default S Q L N M K 开始 天数1到31 月份1到12 打印输入天数出错 打印输入月份出错 年份1812到2012 Month匹配 打印输入年份出错 day>1 day>1 day>1 day>1 语句 语句 5,7,10,12 2,4,6,8,9,11 语句 语句 语句 润年 语句 语句 语句 year!=1812 语句 语句 语句 c1&&c2&&c3 打印 结束 3 1 D I R

Y Z 1. 语句覆盖 语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。  测试用例的设计格式如下:  【输入的(a, b, x),输出的(a, b, x)】

测试数据 执行路径 预期结果 实际结果 month=13,day=32,year=2013 OACEGZ Value of day not in the range 1...31 Value of month not in the range 1...12 Value of year not in the range 1812...2012 error! Value of day not in the range 1...31 Value of month not in the range 1...12 Value of year not in the range 1812...2012 error! month=12,day=12,year=2010 OBDFHLY the lastday is12 11 2010 the lastday is12 11 2010 month=12,day=1,year=2010 OBDFHMY the lastday is11 30 2010 the lastday is11 30 2010 month=11,day=12,year=2010 OBDFINY the lastday is11 11 2010 the lastday is11 11 2010 month=11,day=1,year=2010 OBDFIPY the lastday is10 31 2010 the lastday is10 31 2010 month=3,day=12,year=2000 OBDFJQY the lastday is3 11 2000 the lastday is3 11 2000 month=3,day=1,year=2010 OBDFJRY the lastday is2 28 2010 the lastday is2 28 2010 month=1,day=12,year=2010 OBDFKSY the lastday is1 11 2010 the lastday is1 11 2010 month=1,day=1,year=2010 OBDFKTWY the lastday is12 31 2009 the lastday is12 31 2009 month=1,day=1,year=1812 OBDFKTXY lastyear is not in range the lastday is12 31 lastyear is not in range the lastday is12 31 -858993460

2. 分支覆盖 执行足够的测试用例,使得程序中的每一个分支至少都通过一次

测试数据 执行路径 预期结果 实际结果 month=13,day=32,year=2013 OACEGZ Value of day not in the range 1...31 Value of month not in Value of day not in the range 1...31 Value of month not in

相关文档
最新文档