《软件质量保证与测试》
实验指导书
姓名:
学号:
班级:软 指导老师:
目录
实验一 用例设计与黑盒测试 .............................................................................................................. 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(key 14return -1; 15} (1) 用基本路径测试给出测试路径; 画出控制流图: 计算圈复杂度: V(G)=3+1=4 导出独立路径: 路径1:515 路径2:57815 路径3:5791013515 路径4:5791213515 (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. 实验要求 撰写实验报告,填写上机测试步骤和内容,包括:录制的测试脚本,场景的设置和测试结果图。 脚本录制测试步骤: 启动 设置虚拟用户 开始录制 选项设置: 因篇幅问题不能全部显示,请点此查看更多更全内容