2016年东南大学软件测试白盒测试实验二Word版
东南大学软件测试实验报告材料一

软件测试基础与实践实验报告实验名称:白盒测试实验一实验地点:计算机软件楼实验日期: 2016.11.6学生姓名:王鑫学生学号: 71114430 东南大学软件学院制一、实验目的(1)巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;(2)通过绘制程序控制流程图,实现对于程序源代码的逻辑描述(3)培养严谨的测试精神,学习测试用例的设计和分析二、实验内容(一)实验一: 控制流测试技术实验2.1 语句覆盖3.进一步用路径覆盖准则测试getWeekday()分析:非正常输出,return 0,-1,-2,-3,共4条路径。
之前有一条if语句,所以共2*4=8条路径。
正常输出,总共有4个if语句(把循环简化成if语句),分别有2,3,4,2条路径,所以总共有2*3*4*2=48条路径。
总共8+48=56条路径。
平均一条路径对应一个测试用例,需要1分钟给出,整个也要1个小时左右才能完成路径覆盖测试。
4.MC/DC(修订的判定条件覆盖)上述判定表达式只有TFT,TFF,TTF,FTF四种取值。
测试用例P1和P4比较得条件a独立;测试用例P3和P4比较得条件b独立;测试用例P2和P3比较得条件c独立。
三、实验体会(1)没有测出缺陷,但实际上存在缺陷。
这说明动态白盒测试并不能完全测出缺陷。
每种测试方法都存在弊端。
语句覆盖:很难达到100%的覆盖,是比较弱的覆盖;判定覆盖:容易忽略布尔表达式的分支和逻辑短路;条件覆盖:与判定覆盖类似,但比判定覆盖覆盖率高;判定条件覆盖:可能会有错误屏蔽现象;条件组合覆盖:比之前的覆盖率都高,但也存在漏洞。
(2)程序存在缺陷,如day取值为0这种错误输入时,依然有结果;month取值为0,程序报错;year取值为0,输出结果和取值为1时一样。
改进:程序代码21-22句多余,因为2月日期数的计算在2-3句已经分析过了,没必要再重复写判断语句。
(3)关键:1.做出正确有美观的流程图。
软件工程白盒测试文档

实验二白盒测试一、实验目的通过对于实例程序的测试,熟悉结构性测试的基本方法。
二、实验要求(1)综合运用结构性测试方法(如逻辑覆盖、基本路径测试等方法)对被测程序进行测试,找出whiteBox.exe程序中存在的缺陷。
三、测试用例的设计1.对于Triangle Program的测试Private Sub triangle(a As Long, b As Long, c As Long, progOutput As String) Dim IsATriangle As Boolean'Are a, b, and c sides of a Triangle?Node (0)If (a < b + c) And (b < a + c) ThenNode (1)IsATriangle = TrueElseNode (2)IsATriangle = FalseprogOutput = "Not a Triangle"End If' Determine Triangle TypeNode (3)If IsATriangle ThenNode (4)If (a = b) And (b = c) ThenNode (5)progOutput = "Equilateral"ElseNode (6)If (a = b) Or (a = c) ThenNode (7)progOutput = "Isosceles"ElseNode (8)If (a * a = b * b + c * c) Or (b * b = a * a + c * c) Or (c * c = a * a + b * b) ThenNode (9)progOutput = "Right Triangle"ElseNode (10)progOutput = "Scalene"End IfNode (11)End IfNode (12)End IfNode (13)End IfNode (14)End Sub(1)程序段的控制流图如下:(2)程序段的环形复杂度V(G)=19条边-15个结点+2=6 (3)程序段中的基本路径集中有6条独立路径。
软件测试-白盒测试2

10
8.1.3 数据流测试
相关概念 计算使用(C-use) 使用节点USE(v,n) 是一个计算使用,当且仅当语句n是计算语句,USE(v,n) 是计算使用。 ➢ 对应计算使用的节点的外度<=1。
11
8.1.3 数据流测试
的使用,但对如何从一个定义传递到一个使用不作 要求。 • 全使用覆盖虽然要求检查每个定义的所有可传递到 的使用,但对如何从一个定义传递到一个使用不作 要求。
27
8.1.4 信息流分析
定义
通过对输入数据、输出数据、语句之间关系的分析来检查程序错 误,还可用来分析是否存在无用的语句。
28
8.1.4 信息流分析
22
8.1.3 数据流测试
定义-使用的路经测试覆盖指标 全计算使用(all predicate use)/部分谓词使用(some calculation use)覆盖准则 集合T满足程序P的全计算使用/部分谓词使用覆盖准则,当且仅当对于所 有变量v∈V,T包含从v的每个定义节点到v的所有计算使用的定义清除 路径,并且如果v的一个定义没有计算使用,则到至少一个谓词使用有一 条定义清除路径。
32
8.1.5 覆盖率分析及测试覆盖准则
注意点 1. 内部动作是否按照规格说明书的规定正常进行。 2. 覆盖测试的主要方法。 3. 覆盖法要求全面了解程序内部逻辑结构、对所有逻辑路径进行测试。 4. 不同软件的覆盖率分析对应的的覆盖测试方法是可以有差别的。 5. 覆盖测试只是根据程序的内部结构进行测试,而不考虑外部特性。
19
8.1.3 数据流测试
全定义覆盖示例
n1: float X,Y,Z,U,W; n2: scanf("%f%f%f",&X,&Y,&Z); n3: U=(X-Y)*2; n4: if(X>Y) n5: W=U; n6: else W=Y; n7: if((W+Z)>100){ n8: X=X-2; n9: Y=Y+W; n10: printf("Linear");}
软件测试白盒测试实验报告

7.使用白盒测试用例设计方法为下面的程序设计测试用例:·程序要求: 10个铅球中有一个假球(比其他铅球的重量要轻), 用天平三次称出假球。
·程序设计思路:第一次使用天平分别称5个球, 判断轻的一边有假球;拿出轻的5个球, 拿出其中4个称, 两边分别放2个球;如果两边同重, 则剩下的球为假球;若两边不同重, 拿出轻的两个球称第三次, 轻的为假球。
【源程序】using System;using System.Collections.Generic;using System.Linq;using System.Text;using NUnit.Framework;namespace Test3_7{[TestFixture]public class TestGetMinValue{[Test]public void AddTwoNumbers(){Random r = new Random();int n;int[] a=new int[10];n = r.Next(0, 9);for (int i = 0; i < a.Length; i++){if (i == n)a[i] = 5;elsea[i] = 10;}GetMin gm = new GetMin();Assert.AreEqual(n,gm.getMinvalue(a));}}public class GetMin{public int getMinvalue(int[] m){double m1 = 0, m2 = 0, m3 = 0, m4 = 0; for (int i = 0; i < 5; i++){m1 = m1 + m[i];}for (int i = 5; i < 10; i++){m2 = m2 + m[i];}if (m1 < m2){m3 = m[1] + m[0];m4 = m[3] + m[4];if (m3 > m4){if (m[3] > m[4])return 4;elsereturn 3;}else if (m3 < m4){if (m[0] > m[1])return 1;elsereturn 0;}elsereturn 2;}else{m3 = m[5] + m[6];m4 = m[8] + m[9];if (m3 < m4){if (m[5] > m[6])return 6;elsereturn 5;}else if (m3 > m4){if (m[8] > m[9])return 9;elsereturn 8;}elsereturn 7;}}}class Program{ static void Main(string[] args) {}}}【运行截图】。
2016软件测试技术黑盒白盒部分复习指导实训

《软件测试技术》实训指导目录目录 (III)第一章实训基础知识 (1)1.1软件测试概述 (1)1.2测试用例的编写 (2)第二章实训要求 (5)2.1实训总体要求 (5)2.1.1实训意义和目的 (5)2.1.2实训内容安排......................................................................... 错误!未定义书签。
2.1.3实训过程要求 (5)2.2实训报告要求 (6)2.2.1实训报告格式 (6)2.3实训成绩评价................................................................................. 错误!未定义书签。
2.3.1实训成绩评价结构及比例..................................................... 错误!未定义书签。
2.3.2考核方式................................................................................. 错误!未定义书签。
第三章实训内容与指导 (7)3.1功能性测试用例设计 (7)3.1.1实训类型:设计型(4学时) (7)3.1.2实训目的 (7)3.1.3背景知识 (7)3.1.4实训设备 (8)3.1.5实训内容 (8)3.1.6实训步骤 (9)3.1.7实训要求 (9)3.1.8实训思考 (9)具体实例设计:163邮箱注册模块测试用例 (10)测试用例参考模版 (11)3.2结构性测试 (13)3.2.1实训类型:设计型(1学时) (13)3.2.2实训目的 (13)3.2.3背景知识 (13)3.2.4实训设备 (14)3.2.5实训内容 (14)3.2.6实训要求 (14)3.3Q UICK T EST P ROFESSIONAL使用 .................................................... 错误!未定义书签。
(word完整版)白盒测试实验报告范本

实验一:白盒软件测试一、实验目的通过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯。
熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。
二、实验内容背景:被测测试程序功能:计算被输入日期是星期几;程序定义:已知公元1年1月1日是星期一,只要输入年月日,能自动回复当天是星期几;测试环境:Windows vista、Dev C++;说明:本次测试采用插桩测试法,由于程序简单,手动输入测试用例。
程序说明:A程序思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数B闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0)(1)分析各种输入情况,结合程序输出结果,并给出详细测试用例;(2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例;(3)决策表测试法;①列出输入变量month、 day、 year的有效等价类;(条件桩)②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩)③画出决策表(简化);④根据决策表,给出详细测试用例。
代码:(被测部分为while循环内部语句)#include 〈iostream>using namespace std;int main(){int x=1,year, month, day;while(x){1.int i, num=0,total, total1, total2;2。
cout〈<”请输入年份: ”;3。
cin>>year;4。
cout〈<"请输入月份: ";5。
cin〉〉month;6.cout<〈”请输入日期:”;7。
cin〉〉day;//求得输入年份之前一年末的总天数8。
(word完整版)白盒测试实验报告

《软件测试技术》实验报告实验序号:03 实验项目名称:使用基本路径覆盖法测试自动售货机程序一、实验目的及要求理解并掌握分支和条件覆盖测试法,能够实际运用;理解并掌握基本路径覆盖测试法,能够实际运用使用Eclipse+JUnit+EclEmma进行单元测试。
二、实验设备(环境)及要求●开发环境:Eclipse v3.7及以上版本;JUnit v4。
10及以上版本;文本编辑软件.●硬件要求:CPU PIV 以上,256M 内存,1G 硬盘空间。
●系统要求:Windows98/Me/XP/NT/2000,IE 5 以上.三、实验内容与步骤1.下载并安装Eclipse+JUnit+EclEmma实验环境;2.通读自动售货机程序,并在Eclipse环境下运行该程序;3.设计自动售货机程序相关的分支覆盖测试用例并进行测试4.设计自动售货机程序相关的条件覆盖测试用例并进行测试。
5.使用基本路径测试法设计测试用例;⏹绘制程序控制流图:⏹计算环路复杂度;⏹确定基本路径;⏹设计测试用例6.完整填写以下表格编号输入值Type输入值money状态预期输出实际情况001Beer5C各资源剩余Input InformationType: Beer; Money: 5 Cents; Change:0Current StateBeer: 5Orange Juice: 65 Cents: 71 Dollar: 6002OrangeJuice5C各资源剩余Input InformationType: OrangeJuice; Money: 5 Cents; Change: 05角零钱Change Shortage一样008OrangeJuice1D各资源均有剩余Input InformationType: OrangeJuice; Money: 1Dollar; Change: 5 CentsCurrent StateBeer:6Orange Juice: 55 Cents: 51 Dollar: 7与预期不一样009OrangeJuice1D没有橙汁Failure InformationOrangeJuice Shortage与预期不一样010Cola1D各资源剩余Failure InformationType Error与预期一样011Beer1D没有零钱Failure InformationChange Shortage与预期不一样012OrangeJuice4C各资源剩余Failure InformationMoney Error与预期一样用有缺陷的代码测试结果:修改代码后:所有测试成功、使用EclEmma检测测试用例覆盖率达100%五、分析与讨论这次试验基于上次的试验,围绕白盒测试的基本路径覆盖法测试进行测试.重点在于对测试用例的设计,试验中借助了程序流程控制图来设计用例。
软件测试实验报告白盒测试

软件测试实验报告白盒测试本页仅作为文档页封面,使用时可以删除
This document is for reference only-rar21year.March
软件测试与质量课程实验报告
实验3:白盒测试
掌握静态白盒测试方法及一般要求
掌握白盒测试用例的设计方法
掌握白盒测试基本测试方法:逻辑覆盖、路径测试。
语句覆盖输入数据路径预期输出1A=2,B=5,C=3,1239不能构成三角形2A=15,B=15,C=1512459等边三角形3A=15,B=15,C=13124679等腰三角形4A=23,B=24,C=25124689一般三角形
判定覆盖输入数据路径预期输出1A=2,B=3,C=5,1239不能构成三角形
语句覆
盖
编号输入数据覆盖语句
1array[8,9,10,11] key 101,2,3,8
2array[8,9,10,11] key 251,2,3,9
3array[8,9,10,11] key 81,2,3,6,7
4array[8,9,10,11] key 91,2,3,4,5
判定覆
盖
编号输入数据路径
1array[8,9,10,11] key 10-
2array[8,9,10,11] key 25--10-11-4-12
3array[8,9,10,11] key 8-9-4-5-6-7
果
果
果
7
-1
5
缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1 – 10
分
其他情况:扣分<=5分总扣分不能大于10分
11。
软件测试-实验2-白盒测试案例分析

实验2 白盒测试一、实验目的与要求1、掌握白盒测试的语句覆盖和判定覆盖测试方法的原理及应用2、掌握条件覆盖、条件组合覆盖的方法,提高应用能力3、掌握路径法测试二、实验设备1、电脑PC三、实验原理白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。
它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。
这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,其又称为结构测试。
1、语句覆盖语句覆盖指代码中的所有语句都至少执行一遍,用于检查测试用例是否有遗漏,如果检查到没有执行到的语句时要补充测试用例。
无须细分每条判定表达式,该测试虽然覆盖了可执行语句,但是不能检查判断逻辑是否有问题。
2、判定覆盖又称判断覆盖、分支覆盖,指设计足够的测试用例,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假取值均曾被满足。
判定覆盖比语句覆盖强,但是对程序逻辑的覆盖度仍然不高,比如由多个逻辑条件组合而成的判定,仅判定整体结果而忽略了每个条件的取值情况。
3、条件覆盖、条件判定覆盖条件覆盖指程序中每个判断中的每个条件的所有可能的取值至少要执行一次,但是条件覆盖不能保证判定覆盖,条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。
条件判定覆盖是条件覆盖和判定覆盖的组合,指设计足够的测试用例,使得判定中每个条件的所有可能的取值至少出现一次,并且每个判定取到的各种可能的结果也至少出现一次。
条件判定覆盖弥补了条件和判定覆盖的不足,但是未考虑条件的组合情况。
4、条件组合覆盖又称多条件覆盖,设计足够的测试用例,使得判定条件中每一个条件的可能组合至少出现一次。
线性地增加了测试用例的数量。
5、基本路径法在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行的路径集合,从而设计测试用例的方法。
软件测试技术实验指导书—2016.pdf(终稿)

软件测试技术实验指导书谢红薇、崔冬华、宋晓涛、兰方鹏编写2016 年9 月16 日实验名称实验二黑盒测试方法实验地点实验时间一、实验目的和要求⑴熟练掌握黑盒测试方法中的等价类测试方法和边界值测试方法。
⑵通过实验掌握如何应用黑盒测试方法设计测试用例。
⑶运用所学理论,完成实验研究的基本训练过程。
二、实验内容和原理1.用你熟悉的语言编写一个判断三角形问题的程序。
要求:读入代表三角形边长的三个整数,判断它们能否组成三角形。
如果能够,则输出三角形是等边、等腰或一般三角形的识别信息;如何不能构成三角形,则输出相应提示信息。
2.使用等价类方法和边界值方法设计测试用例。
三、主要仪器设备笔记本电脑四、操作方法与实验步骤⑴先用等价类和边界值方法设计测试用例,然后用白盒法进行检验与补充。
⑵判断三角形问题的程序流程图和程序流图如图1和图2所示。
用你熟悉的语言编写源程序。
⑶使用等价类方法设计测试用例,并填写完成表2和表3。
⑷输入设计好的测试用例,执行源程序,记录输出结果。
表2. 等价类划分表输入条件有效等价类无效等价类是否构成三角形是否等腰三角形是否等边三角形表3. 测试用例表用例编号测试数据(A, B, C)等价类覆盖情况输出五、实验数据记录和处理六、实验结果与分析七、讨论、心得图3⑶在弹出的“Record and Run Settings”对话框中切换至“Windows Applications”标签,如图4所示:图4⑷在弹出的对话框中,选择“Application details:”中右边的“+”标签,如图5所示:图5⑸在弹出的对话框中按照默认选项选择,然后点击“ok”按钮,如图6所示:图6⑹在弹出的“Login”界面中输入用户名和密码,如图7所示。
注意:用户名至少是4个字符,密码是“mercury”。
图7⑺在弹出的“Flight Reservation”窗口中选择订票日期、出发地和目的地,然后选择“Flight”图标选择航班,如图8所示。
白盒测试实验

实验题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("不等边三角形。
软件测试 第2版 第3章 白盒测试方法

3.1.1 基本路径法概述
设计测试用例
步骤1 步骤2 步骤3 步骤4
根据计算出的程序圈复杂度导出基本可执行路径集合,从而设计测试用例的输入 数据和预期结果。以上一页中某程序的控制流图为例,由于圈复杂度为4,所以 可以得到4条独立的路径,具体如下。 路径1:1→7。 路径2:1→2→3→7。 路径3:1→2→4→5→8→1→7。 路径4:1→2→4→6→8→1→7。 根据以上4条独立的路径即可设计测试用例,从而确保每一条路径都能被执行。
掌握判定-条件覆盖法的使用,能够应用判定-条件覆盖法设计测试用例 掌握条件组合覆盖法的使用,能够应用条件组合覆盖法设计测试用例 了解目标代码插桩法的原理,能够描述目标代码插桩法的3种执行模式 掌握源代码插桩法的使用,能够应用探针代码测试程序
章节、结构测试,它基于程序的内部逻辑结构进行测试, 而不是程序的功能(黑盒测试)。因此,进行白盒测试时,测试人员需要了解 程序的内部逻辑结构,根据使用的编程语言设计测试用例。白盒测试可用于单 元测试、集成测试和系统测试。白盒测试的方法包括基本路径法、逻辑覆盖法、 程序插桩法,本章将对白盒测试的方法进行详细讲解。
目录/Contents
01
基本路径法
02
逻辑覆盖法
03
程序插桩法
3.1 基本路径法
3.1.1 基本路径法概述
先定一个小 目标!
掌握基本路径法的概述,能够使用基本路径法设 计测试用例
3.1.1 基本路径法概述
基本路径法是一种将程序的流程图转化为程序控制流 图,并在程序控制流图的基础上,分析被测程序控制 构造的环路复杂性,导出基本可执行路径集合,从而 设计测试用例的方法。使用基本路径法设计的测试用 例需要确保被测程序中的每个可执行语句至少被执行 一次。
实验二-白盒测试

实验二白盒测试一、实验目的通过本实验,熟悉白盒测试的目的、内容,并掌握白盒测试的基本方法,能够按照具体要求对指定的程序设计测试用例并进行测试。
二、相关知识逻辑覆盖法的六种覆盖标准:1、语句覆盖:设计足够的测试用例,使得程序中的每个语句至少执行一次。
2、判定覆盖:设计足够的测试用例,使得在语句覆盖的基础上,程序中每个判定的取“真”分支和取“假”分支至少都执行一次。
3、条件覆盖:设计足够的测试用例,在语句覆盖的基础上使得程序判定中的每个条件能获得各种可能的结果。
4、判定/条件覆盖:设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。
5、条件组合覆盖:设计足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次。
6、路径覆盖:每条可能的路径都至少执行一次。
三、实验内容1、对实验一中编写的三角形程序,画出其程序流程图;分析程序流程图,确定程序分支;(1) 设计分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖的测试用例;(2) 用测试用例对程序进行测试,记录测试结果,并对结果进行分析,如果存在缺陷则修改程序,继续测试;运用逻辑覆盖法的六种覆盖标准设计测试用例,并执行测试,撰写实验报告。
四、实验步骤1、根据其题意,可以得出输入为三个整数:a、b、c为三角形的三条边,再根据以下条件输出其类型:条件一:a>0 条件二:b>0 条件三:c>0条件四:a<b+c 条件五:b<a+c 条件六:c<a+b(1)如果输入值a、b、c不满足条件一、条件二、条件三,程序输出“边的取值不符合要求”。
(2)如果输入值a、b、c不满足条件四、条件五、条件六,程序输出“非三角形”。
(3)如果三条边相等,程序输出“等边三角形”。
(4)如果三条边恰好有两边相等,程序输出“等腰三角形”。
(5)如果三条边都不相等,则程序输出为“一般三角形”。
2016年度精品--白盒测试实验报告_三角形

2016年度精品--白盒测试实验报告_三角形白盒测试实验报告——三角形一、实验目的(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;(2)学习测试用例的书写。
二、实验内容判断三角形类型输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形,如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c,必须满足以下条件:1?a?200;1?b?200;1?c?200。
要求:为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。
(1)画出程序的流图;(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。
(4)通过你的测试,请总结你所使用测试方法发现的Bug。
三、实验要求(1)根据题目要求编写测试用例(2)撰写实验报告(3)有关的实现程序请附到实验报告中(4)实验报告命名规则:学号后两位+姓名_白盒实验四、实验报告(1)程序代码:(2)程序的流图:(3)语句覆盖;(4)判定覆盖;(5)条件覆盖;(6)判定/条件覆盖;(7)组合覆盖;(8)基本路径覆盖;附录:测试用例书写格式(语句覆盖为例)测试用例表编号测试用例执行路径覆盖条件覆盖判定预输出结果 1 2---------------------------------------------------------------范文最新推荐------------------------------------------------------ 财务工作总结ppt[财务工作总结ppt]一、合理安排收支预算,严格预算管理单位预算是学校完成各项工作任务,实现事业计划的重要前提,因此认真做好我校的收支预算责任重大,财务工作总结ppt。
(完整word版)白盒测试实验报告

实验报告一、实验目的1.熟练掌握如何运用基路径测试方法进行测试用例设计。
2.初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。
二、实验内容1、题目前一日函数PreDate是NextDate的逆函数(代码实现见下),实现功能为:输入1800 年到2050 年之间的某个日期,函数返回这一天的前一天的日期。
(此处不考虑无效输入)请采用基路径方法对前一日函数进行测试用例设计,并利用程序插装技术对测试用例的判定覆盖率进行检查分析。
代码:(被测函数为PreDate)#include"stdio.h"typedef struct MyDate{int month;int day;int year;}MyDate;MyDate PreDate(MyDate date);int Leapyear(int year);void Print(MyDate date);MyDate PreDate(MyDate date)//输入日期有效性检查中其他模块实现,此处假设输入日期都是合法数据{1.MyDate yesterday;2.yesterday.month = date.month; // initialization3.yesterday.day = date.day;4.yesterday.year = date.year;5.int days_month[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};//初始化每月天数,其中2月不确定,初始化为06.if(date.day>1)7.yesterday.day=date.day-1;else{8.if(date.month==1){9.yesterday.year=date.year-1;10.yesterday.month=12;11.yesterday.day=31;}12.else if(date.month==3){13.if(Leapyear(date.year)){14.yesterday.month=2;15.yesterday.day=29;}else{16.yesterday.month=2;17.yesterday.day=28;}}else{18.yesterday.month=date.month-1;19.yesterday.day=days_month[date.month-1];}}20.return yesterday;}21.int Leapyear(int year){22.if((year%4==0&&year%100!=0) || (year%400==0))23.return 1;24.else return 0;}void Print(MyDate date){25.printf("%d--%d--%d\n",date.year,date.month,date.day); }2、测试用例设计1)控制流图2)环路复杂度计算由图可知,图中的环路有五条,故环路复杂度为五。
实验二_白盒测试

实验二:白盒测试一、实验目的保证一个模块中的所有独立路径至少被执行一次;对所有的逻辑值均需要测试真、假两个分支;在上下边界及可操作范围内运行所有循环;检查内部数据结构以确保其有效性。
二、实验内容要求:被测测试程序功能:PriorDate函数;程序定义:为了获得前一个日期, PriorDate函数执行如下操作:(默认年数大于等于0)如果输入日期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。
测试环境:Windows 7、Eclipse;三、实验要求根据代码调通程序并进行白盒测试,即用语句覆盖、分支覆盖、条件覆盖、分支/条件覆盖、条件组合覆盖及基本路径测试方法,写出测试用例,执行测试,给出测试报告,实验报告。
四、实验测试用例与测试结果程序的流程图如下图:1.语句覆盖语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
测试数据执行路径结果month=13,day=32,year=-10OACEGZ 日的范围为:1 (31)月的范围为:1 (12)年应该大于0month=12,day=12,year=2012 OBDFHL Y 前一天为:12 11 2012month=12,day=1,year=2012 OBDFHMY 前一天为:11 30 2012month=11,day=1,year=2012 OBDFIPY 前一天为:10 31 2012 month=3,day=12,year=2000 OBDFJQY 前一天为:3 11 2000 month=3,day=1,year=2012 OBDFJRY 前一天为:2 28 2012 month=1,day=12,year=2012 OBDFKSY 前一天为:1 11 2012 month=1,day=1,year=2012 OBDFKTWY 前一天为:12 31 2009 month=1,day=1,year=0 OBDFKTXY 上一年也应大于02.分支覆盖执行足够的测试用例,使得程序中的每一个分支至少都通过一次测试数据执行路径结果month=13,day=32,year=-10OACEGZ 日的范围为:1 (31)月的范围为:1 (12)年应该大于0month=12,day=12,year=2012 OBDFHL Y 前一天为:12 11 2012 month=12,day=1,year=2012 OBDFHMY 前一天为:11 30 2012 month=11,day=12,year=2012 OBDFINY 前一天为:11 11 2012 month=11,day=1,year=2012 OBDFIPY 前一天为:10 31 2012 month=3,day=12,year=2000 OBDFJQY 前一天为:3 11 2000 month=3,day=1,year=2000 OBDFJRY 前一天为:2 29 2000 month=3,day=1,year=2012 OBDFJRY 前一天为:2 28 2012 month=1,day=12,year=2012 OBDFKSY 前一天为:1 11 2012 month=1,day=1,year=2012 OBDFKTWY 前一天为:12 31 2009 month=1,day=1,year=0 OBDFKTXY 上一年也应大于03.条件覆盖测试数据执行路径结果month=13,day=32,year=-10OACEGZ 日的范围为:1 (31)月的范围为:1 (12)年应该大于0month=0,day=0,year=1800 OACEGZ 日的范围为:1 (31)月的范围为:1 (12)年应该大于0month=12,day=1,year=2012 OBDFHMY 前一天为:11 30 2012 month=11,day=12,year=2012 OBDFINY 前一天为:11 11 2012 month=11,day=1,year=2012 OBDFIPY 前一天为:10 31 2012 month=3,day=12,year=2000 OBDFJQY 前一天为:3 11 2000 month=3,day=1,year=2000 OBDFJRY 前一天为:2 29 2000 month=3,day=1,year=2012 OBDFJRY 前一天为:2 28 2012 month=1,day=12,year=2012 OBDFKSY 前一天为:1 11 2012 month=1,day=1,year=2012 OBDFKTWY 前一天为:12 31 2009 month=1,day=1,year=0 OBDFKTXY 上一年也应大于0执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。
东南大学软件测试白盒测试实验二

软件测试基础与实践实验报告实验名称:白盒测试实验二实验地点:计算机软件楼实验日期:学生姓名:王鑫学生学号:东南大学软件学院制一、实验目的(1)巩固白盒测试知识,能熟练应用基本路径测试方法设计测试用例(2)学习测试用例的书写二、实验内容(一)实验一: 基本路径测试技术实验运用基本路径测试方法,分别对程序WeekB 中的方法IsCorrect()和getResult()进行测试。
要求:(1) 画出程序流图。
(2) 计算环复杂度。
(3) 找到基本路径集合。
(4) 设计具体的测试用例。
方法IsCorrect()1.画出程序流图bool IsCorrect(int y,int m,int d){if(y<1)return false;else{if(((y%4==0)&&(y%100!=0))||(y%400==0))maxA[1]=29;if(m<0||m>12)return false;else{if(d>maxA[m-1])return false;elsereturn true;}}2.计算环复杂度V(G)=流图中的区域数量=8 3.找到基本路径集合4.设计具体的测试用例方法getResult ()1.画出程序流图int getResult(int y,int m,int d){long totalDays=0;for(int i=1;i<y;i++){if(((i%4==0)&&(i%100!=0))||(i%400==0))totalDays+=366;elsetotalDays+=365;}if(((y%4==0)&&(y%100!=0))||(y%400==0))maxA[1]=29;elsemaxA[1]=28;for(int i=1;i<m;i++){totalDays+=maxA[i-1];}totalDays+=(d-1);maxA[1]=28;return (totalDays%7); }2.计算环复杂度V(G)=流图中的区域数量=93.找到基本路径集合4.设计具体的测试用例三、实验体会(1)没有测出缺陷,但实际上存在缺陷。
2016年东南大学软件测试白盒测试实验二

软件测试基础与实践实验报告实验名称:白盒测试实验二实验地点:计算机软件楼________ 实验日期:2016 •们・9 _________学生:王鑫 ____________学生学号:71114430 ____________ 东南大学软件学院制实验目的(1)巩固白盒测试知识,能熟练应用基本路径测试方法设计测试用例(2)学习测试用例的书写实验容(一)实验一:基本路径测试技术实验运用基本路径测试方法,分别对程序WeekB中的方法IsCorrect ()和getResultO进行测试。
要求:(1)画出程序流图。
(2)计算环复杂度。
(3)找到基本路径集合。
(4)设计具体的测试用例。
方法IsCorrect()1. 画出程序流图bool IsCorrect(int y, int m, int d){if(y<1) return false;else{if(((y%4==0) &&(y%100!=0))||(y%400==0)) maxA[1]=29;if (m<0||m>12)return false;e I seif (d>maxA[m-1]) return false;elsereturn true;}}1 y<i2 return fa Ise3 y%4==03x y%100!=03y y%400==04 maxA[1]=295 m<05x m>122. 计算环复杂度V(G)=流图中的区域数量=8 3. 找到基本路径集合4. 设计具体的测试用例方法getResu 11 ()1.画出程序流图int getResult(int y, int m, int d)long total Days=0;for (int i=1; i <y; i 卄){if (((i%4==0)&&(i%100!=0)) 11 (i%400=0)) totalDays+=366;e I setotalDays+=365;}if (((y%4=0)&&(y%100! =0)) | | (y%400=0))maxA[1]=29;elsemaxA[1]=28;for (int i二1;i<m;i++){totaI Days+=maxA[i T];}totalDays+= (d-1); maxA[1]=28;return (totaIDays%7);2•计算环复杂度V(G)=流图中的区域数量二93•找到基本路径集合4.设计具体的测试用例三、实验体会(1) 没有测出缺陷,但实际上存在缺陷。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试基础与实践
实验报告
实验名称:白盒测试实验二
实验地点:计算机软件楼
实验日期: 2016.11.9
学生姓名:王鑫
学生学号: 71114430
东南大学软件学院制
一、实验目的
(1)巩固白盒测试知识,能熟练应用基本路径测试方法设计测试用例
(2)学习测试用例的书写
二、实验内容
(一)实验一: 基本路径测试技术实验
运用基本路径测试方法,分别对程序WeekB 中的方法IsCorrect()和getResult()进行测试。
要求:
(1) 画出程序流图。
(2) 计算环复杂度。
(3) 找到基本路径集合。
(4) 设计具体的测试用例。
方法IsCorrect()
1.画出程序流图
bool IsCorrect(int y,int m,int d)
{
if(y<1)
return false;
else
{
if(((y%4==0)&&(y%100!=0))||(y%400==0))
maxA[1]=29;
if(m<0||m>12)
return false;
else
{
if(d>maxA[m-1])
return false;
else
return true;
}
}
2.计算环复杂度
V(G)=流图中的区域数量=8
3.找到基本路径集合
4.设计具体的测试用例
方法getResult ()
1.画出程序流图
int getResult(int y,int m,int d)
{
long totalDays=0;
for(int i=1;i<y;i++)
{
if(((i%4==0)&&(i%100!=0))||(i%400==0))
totalDays+=366;
else
totalDays+=365;
}
if(((y%4==0)&&(y%100!=0))||(y%400==0))
maxA[1]=29;
else
maxA[1]=28;
for(int i=1;i<m;i++)
{
totalDays+=maxA[i-1];
}
totalDays+=(d-1);
maxA[1]=28;
return (totalDays%7); }
2.计算环复杂度
V(G)=流图中的区域数量=9
3.找到基本路径集合
4.设计具体的测试用例
三、实验体会
(1)没有测出缺陷,但实际上存在缺陷。
这说明动态白盒测试之路径测试并不能完全测出缺陷。
关键在于测试用例是否则测出缺陷。
不过比较实验一中WeekA.java中代码,有改进:
1.解决了year=0的问题
2.之前month=0会抱错,这次不会
3.对于错误输出,会输出“输入错误,请重新输入”,而不是也给出结果
(2)程序依然存在缺陷,如 month取值为0,程序显示“X年X月X日是星期计算错误”;day取值为0或者负数,程序依然显示“X年X月X日星期计算错误”。
而事实上应该显示“输入错误,请重新输入”。
改进:getResult()函数中,
if(((y%4==0)&&(y%100!=0))||(y%400==0))
maxA[1]=29;
else
maxA[1]=28;
可以删去,因为在IsCorrect()函数中已经判断过了。
(3)关键:1.做出正确有美观的流图。
“正确”保证了正确计算出环复杂度和设计出基
本路径集合,而“美观”保证了方便设计出正确测试用例。
2.设计出正确的基本路径集合,最好依照从上到下或者从下到上的遍历顺
序遍历流图。
3.对应基本路径集合中每条路径设计出正确测试用例。
难点:1.做出正确有美观的流图;
2.设计出正确的基本路径集合,不要过多,有些可以由集合中已经存在的
路径线性表示。
3. 对应基本路径集合中每条路径设计出正确测试用例,有些路径可能不存
在测试用例。
(注:可编辑下载,若有不当之处,请指正,谢谢!)。