您的当前位置:首页正文

软件质量保证与测试实验指导书

2021-07-27 来源:易榕旅网


《软件质量保证与测试》

实验指导书

姓名:

学号:

班级:软 指导老师:

目录

实验一 用例设计与黑盒测试 .............................................................................................................. 3 1. 2. 3. 4.

实验目的 ..................................................................................................................................... 3 实验设备 ..................................................................................................................................... 3 实验内容 ..................................................................................................................................... 3 实验要求 ..................................................................................................................................... 4

实验二 WEB测试 ................................................................................................................................ 15 1.实验目的 ......................................................................................................................................... 15 2.实验设备 ......................................................................................................................................... 15 3.实验内容 ......................................................................................................................................... 15 4.实验要求 ......................................................................................................................................... 15 实验三 代码分析与单元测试 ............................................................................................................ 19 1.实验目的 ......................................................................................................................................... 19 2.实验设备 ......................................................................................................................................... 19 3.实验内容 ......................................................................................................................................... 19 4.实验要求 ......................................................................................................................................... 27 实验四 性能测试与结果分析 ............................................................................................................ 28 1. 2. 3. 4.

实验目的 ................................................................................................................................... 28 实验设备 ................................................................................................................................... 28 实验内容 ................................................................................................................................... 28 实验要求 ................................................................................................................................... 28

实验一 用例设计与黑盒测试

1. 实验目的

(1) 能够熟练应用黑盒测试技术进行测试用例设计 (2) 对测试用例进行优化测试

2. 实验设备

主流PC机一套,安装有主流的编程工具如MyEclipse、C、Visual C++

3. 实验内容

(1)三角形问题:输入三个正整数a、b、c(1-200),分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)。 请用黑盒测试的方法设计测试用例。

(2)NextDate问题:输入三个变量month、day和year,输出:输入日期后一天的日期,比如:输入为1986年6月9日,则该函数的输出应为1986年6月10日。年份为1-2050年。请用黑盒测试的方法设计测试用例。程序界面如下:

(3)选做内容:课件中的其他问题,或者,实现一个登陆模块,用户名要求由字母和数字组成且第一个必须是字母,长度为6-10,密码由六位数字组成,请根据黑盒测试的方法设计测试用例。

4. 实验要求

(1) 根据题目要求,编写相关程序。 三角形问题:

核心代码:

private void button2_Click(object sender, EventArgs e)//重新输入 {

textBoxA.Text = \"\"; textBoxB.Text = \"\"; textBoxC.Text = \"\"; textBoxXZ.Text = \"\";

}

private void button1_Click(object sender, EventArgs e)//判断形状 {

string a = textBoxA.Text.Trim(); string b = textBoxB.Text.Trim(); string c = textBoxC.Text.Trim(); if (IsInt(a)&&IsInt(b)&&IsInt(c)) {

int ia = int.Parse(a); int ib = int.Parse(b); int ic = int.Parse(c);

if (IsIn1To200(ia) && IsIn1To200(ib) && IsIn1To200(ic)) {

if (ia + ib <= ic || ia + ic <= ib || ib + ic <= ia) {

textBoxXZ.Text = \"不能构成三角形\"; return; }

if (ia==ib&&ib==ic) {

textBoxXZ.Text = \"等边三角形\"; return; }

if (ia==ib||ia==ic||ib==ic) {

textBoxXZ.Text = \"等腰三角形\"; return; }

textBoxXZ.Text = \"一般三角形\"; } else {

MessageBox.Show(\"参数输入超过限定值!\"); }

} else {

MessageBox.Show(\"参数输入非法!\");

}

}

private bool IsInt(string str)//判断是否是整数 { try {

int.Parse(str); return true; }

catch (System.Exception e) {

return false; }

}

private bool IsIn1To200(int cs)//判断是否在1至200范围 {

if (cs >= 1 && cs <= 200) {

return true; } else {

return false; } }

NextDate问题:

private void buttonClose_Click(object sender, EventArgs e)//关闭 {

this.Close(); }

private bool IsInt(string str)//判断是否是整数 { try {

int.Parse(str); return true; }

catch (System.Exception e) {

return false; }

}

private void buttonNextDate_Click(object sender, EventArgs e) {

//textBoxNextDate

string year = textBoxYear.Text.ToString().Trim(); string month = textBoxMonth.Text.ToString().Trim(); string day = textBoxDay.Text.ToString().Trim(); if (IsInt(year) && IsInt(month) && IsInt(day)) {

int y = int.Parse(year); int m = int.Parse(month); int d = int.Parse(day);

textBoxNextDate.Text = NextDate(y, m, d);

} else {

MessageBox.Show(\"参数输入非法!\"); }

}

private string NextDate(int year, int month, int day) {

if(!(year >= 1 && year <= 2050)) {

return \"年份超过界限,请重新输入\" ;

}

if(month > 12 || month < 1) {

return \"月份输入有误,请重新输入\" ; }

if (day > 31 || day < 1) {

return \"日期输入有误,请重新输入\"; }

if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {

int i = 0; i = day - 29;

while (month == 2 && i > 0) {

return \"本月是闰月,请在1-29之间从新输入日期\"; }

if (month == 2 && day == 29) {

month = 3; day = 1;

}

else day++; }

else day++; //月底计算; switch (month) {

case 1: case 3: case 5: case 7: case 8: case 10:

if (day == 32) {

month++; day = 1;

return \"\"+year + '/' + month + '/' + day ; }

//检查闰年;

break; case 2:

if (day == 29) {

month = 3; day = 1;

return \"\" + year + '/' + month + '/' + day; } break; case 4: case 6: case 9: case 11:

if (day == 31) {

month++; day = 1;

return \"\" + year + '/' + month + '/' + day; } break; case 12:

if (day == 32) {

year++; month = 1; day = 1;

return \"\" + year + '/' + month + '/' + day; } break; }

return \"\" + year + '/' + month + '/' + day; }

(2) 撰写实验报告,并给出设计的测试用例对程序进行测试 三角形问题: 测试用例 用例编号 a 1 2 3 4 5 6 7 8

b 1 10 20 28 3.5 -1 210 空格 c 2 10 25 30 3.5 -1 210 空格 预期结果 不能构成三角形 等边三角形 等腰三角形 一般三角形 参数输入非法 参数输入超限 参数输入超限 参数输入非法

实际结果 不能构成三角形 等边三角形 等腰三角形 一般三角形 参数输入非法 参数输入超限 参数输入超限 参数输入非法 1 10 20 23 3.5 -1 210 空格

9 10 11 12 空白 A ! 好 空白 B % 啊 空白 C * 哈 参数输入非法 参数输入非法 参数输入非法 参数输入非法 参数输入非法 参数输入非法 参数输入非法 参数输入非法 部分测试截图

NextDate问题: 用例ID 月份 1--3 4 5 6--9 10 11-14 15 16 17 18 19 20 21,22 4 4 4 1 1 12 12 2 2 2 2 2 2 日期 12 30 31 15 31 15 31 15 28 28 29 29 30 年 2001 2001 2001 2001 2001 2001 2001 2001 2004 2001 2004 2001 2001 预期输出 2001年4月12日 2001年5月1日 不可能 2001年1月16日 2001年2月1日 2001年12月16日 2002年1月1日 2001年2月16日 2004年2月29日 2001年3月1日 2005年3月1日 不可能 不可能

选做内容测试用例:

用例编号 用户名 密码 1 h12345 123456 2 h12345 123 3 h12345 1234567 4 h12345 123a56 5 h1234 123456 6 h12345678910 123456 7 123j124 123456 8

%123ahdf

123456

预期结果合法 不合法 不合法 不合法 不合法 不合法 不合法 不合法

实验二 Web测试

1.实验目的

掌握用例执行及缺陷报告的书写方法。

2.实验设备

主流PC机一套,网络通畅。

3.实验内容

测试NBA英文版网站www.nab.com,报告四个缺陷。

4.实验要求

将所发现的四个缺陷进行详细描述,撰写实验报告,描述缺陷可使用中文,附件若必要,也可使用视频,截取图片或抓取视频时,需要有浏览器的标题栏和地址栏。 附:

缺陷描述样本:

Bug Title: Home-Login link does not work in IE6 OS & BS: Windows XP Professional SP3 + IE6 Bug Type:Functional Severity Degree: Medium Action Steps:

1. Visit NBA Home with IE6: www.nab.com 2. Click \"Login\"

Expect Result: Go to the login page.

Actual Result: No response. BTW: FF10 and Chrome 17 NO this issue. Bug Attachment: 缺陷1:

Bug Title: IE8下界面排版混乱

OS & BS: Windows XP Professional SP3 + IE8 Bug Type:界面

Severity Degree: 较小缺陷 Action Steps:

1. 用IE8浏览器打开网址: www.nab.com Expect Result: 界面排版显示正常.

Actual Result: 界面排版混乱,不紧凑。. Bug Attachment: 期望效果图:

IE8实际截图:

缺陷2:

Bug Title: IE8情况下不显示Sign按钮和Sign Up按钮 OS & BS: Windows XP Professional SP3 + IE8 Bug Type:功能

Severity Degree: 较小缺陷 Action Steps:

1. 用IE8浏览器打开网址: www.nab.com

Expect Result: Sign按钮和Sign Up按钮在右上侧正常显示. Actual Result: Sign按钮和Sign Up按钮被隐藏了 Bug Attachment: IE8实际截图

搜狗浏览器截图:

缺陷3:

Bug Title: Chat、Connect、Exchange左侧图标不显示 OS & BS: Windows XP Professional SP3 + IE8 Bug Type:界面

Severity Degree: 轻微缺陷 Action Steps:

1. 用IE8浏览器打开网址: www.nab.com

Expect Result: Chat、Connect、Exchange左侧图标显示正常 Actual Result: Chat、Connect、Exchange左侧图标不显示 Bug Attachment: IE8实际截图:

期望效果图:

缺陷4:

Bug Title: 点击“English(US)”[Change Language],只有一个选项可选 OS & BS: Windows XP Professional SP3 + 搜狗浏览器 Bug Type:功能

Severity Degree: 较小缺陷 Action Steps:

1. 用搜狗浏览器打开: www.nab.com

2. 点击左下角“English(US)”[Change Language] Expect Result: 显示可选择的多种语言列表. Actual Result: 只有English(US)这一个选项. Bug Attachment:

实验三 代码分析与单元测试

1.实验目的

掌握白盒测试方法,并用白盒测试方法设计测试用例; 掌握使用Junit进行单元测试的方法。

2.实验设备

主流PC机一套,安装有主流的编程工具如MyEclipse、C、Visual C++

3.实验内容

题目一:为以下流程图所示的程序段设计一组测试用例

要求:

(1)分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。 答:

语句覆盖: 用例 1 2 3 X -1 1 17 Y -1 1 6 执行路径 覆盖语句 abd abe acg 引用语句1 引用语句2 引用语句3 判断覆盖: 用例 1 2 3 4 X -1 1 17 12 Y -1 1 6 8 执行路径 覆盖判断 abd abe acg acf 判定1的N,2的N 判定1的N,2的Y 判定1的Y,3的Y 判定1的Y,3的N

条件覆盖:

将X>8 真为T1,假为F1 将Y>5 真为T2,假为F2 将X>0 真为T3,假为F3 将Y>0 真为T4,假为F4 将X>16 真为T5,假为F5 将Y>10 真为T6,假为F6 用例 1 2 X -1 18 Y -1 12 执行路径 覆盖条件 abd acg F1,F2,F3,F4,F5,F6 T1,T2,T3,T4,T5,T6

判定/条件覆盖: 用例 1 2 3 4 X -1 1 17 13 Y -1 1 11 9 执行路径 覆盖判断 abd abe acg acf 判定1的N,2的N 判定1的N,2的Y 判定1的Y,3的Y 判定1的Y,3的N 覆盖条件 F1,F2,F3,F4,F5,F6 F1,F2,T3,T4,F5,F6 T1,T2,T3,T4,T5,T6 T1,T2,T3,T4,F5,F6 条件组合覆盖:

组合1:X>8,Y>5 T1,T2 组合5:X>0,Y>0 T3,T4 组合9:X>16,Y>10 T5,T6

组合2:X>8,Y<=5 T1,F2 组合6:X>0,Y<=0 T3,F4 组合10:X>16,Y<=10 T5,F6 组合3:X<=8,Y>5 F1,T2 组合7:X<=0,Y>0 F3,T4 组合11:X<=16,Y>10 F5,T6 组合4:X<=8,Y<=5 F1,F2 组合8:X<=0,Y<=0 F3,F4 组合12:X<=16,Y<=10 F5,F6 用例 1 2 3 4

路径覆盖:

X 17 17 0 0 Y 11 0 11 0 执行路径 覆盖条件组合 acg abe abe abd 1,5,9 2,6,10 3,7,11 4,8,12 覆盖条件 T1,T2,T3,T4,T5,T6 T1,F2,T3,F4,T5,F6 F1,T2,F3,T4,F5,T6 F1,F2,F3,F4,F5,F6

用例 1 2 3 4 X -1 1 17 13 Y -1 1 11 9 覆盖路径 abd abe acg acf

(2)将流程图转换成N-S图,并估算至少需要多少个测试用例完成逻辑覆盖?

由于图中并不存在并列的层次,最少测试用例数由并列的操作数决定,即为1+1+1+1=4。 题目二:折半查找

请按要求对下面的Java代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key的元素。

public int binSearch(int array[],int key) 1{

2int mid,low,high; 3low=0;

4high=array.length-1; 5while(low<=high){ 6mid=(low+high)/2; 7if(key==array[mid]) 8return mid;

9else if(key12low=mid+1; 13}

14return -1; 15}

(1) 用基本路径测试给出测试路径; 画出控制流图:

计算圈复杂度: V(G)=3+1=4 导出独立路径: 路径1:515

路径2:57815

路径3:5791013515 路径4:5791213515 (2) 为各测试路径设计测试用例。 测试用例 1 2 3 4 输入数据 array=null,key=2 array[2]={1,2},key=1 array[0]={1,2,3,4,5},key=2 array[0]={1,2,3,4,5},key=4 预期输出 -1 0 1 3

题目三:

设计一个加减乘除的计算器程序,利用Junit实施自动测试

计算器代码: JSQ.jave

public class JSQ { private static int result; //运行结果 public void add(int n){//加法 result = result + n; } public void substract(int n){//减法 result = result - n; } public void multiply(int n){//乘法 result = result * n; } public void divide(int n){//除法 if (n==0) { result=0;

}

}

return; }

result = result / n;

public void square(int n){//平方 result = n * n; }

public void clear(){ // 清零 result = 0; }

public int getResult(){ return result; }

测试程序代码: JSQTest.java

import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; public class JSQTest {

@Test

public void testAdd() { }

//fail(\"Not yet implemented\"); jsq.add(2); jsq.add(3);

private static JSQ jsq = new JSQ(); @Before

public void setUp() throws Exception { }

jsq.clear();

assertEquals(5, jsq.getResult());

@Test

public void testGetResult() { }

//fail(\"Not yet implemented\"); @Test

public void testClear() { }

//fail(\"Not yet implemented\"); @Test

public void testSquare() { }

//fail(\"Not yet implemented\");

jsq.square(3); @Test

public void testDivide() { }

//fail(\"Not yet implemented\"); jsq.add(12); jsq.divide(3); @Test

public void testMultiply() { }

//fail(\"Not yet implemented\"); jsq.add(20); jsq.multiply(5); @Test

public void testSubstract() { }

//fail(\"Not yet implemented\"); jsq.add(11); jsq.substract(-3); jsq.substract(9);

assertEquals(17, jsq.getResult());

assertEquals(100, jsq.getResult());

assertEquals(4, jsq.getResult());

assertEquals(9, jsq.getResult());

}

测试结果:

出错模块:

检测后发现是测试代码出的错误,修改后

4.实验要求

对于题目一、题目二,根据题目要求编写测试用例。

对于题目三,给出程序和测试的源代码,并附上测试执行成功与否的截图。 撰写实验报告。

实验四 性能测试与结果分析

1. 实验目的

(1)掌握性能测试的原理,及使用LoadRunner进行性能测试的方法; (2)掌握分析测试结果的基本方法。 2. 实验设备

主流PC机一套, LoadRunner 8.0 3. 实验内容

(1)配置一个用户登陆系统;

(2)录制脚本(即创建虚拟用户脚本); (3)创建场景(设置用户数<=100),并执行场景; (4)分析测试结果。 4. 实验要求

撰写实验报告,填写上机测试步骤和内容,包括:录制的测试脚本,场景的设置和测试结果图。

脚本录制测试步骤: 启动

设置虚拟用户

开始录制

选项设置:

因篇幅问题不能全部显示,请点此查看更多更全内容