《软件测试技术》实验指导书 使用文档格式.docx
《《软件测试技术》实验指导书 使用文档格式.docx》由会员分享,可在线阅读,更多相关《《软件测试技术》实验指导书 使用文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
(一)内容:
1、题目一:
电话号码问题
某城市电话号码由三部分组成。
它们的名称和内容分别是:
(1)地区码:
空白或三位数字;
(2)前缀:
非'
0'
或'
1'
的三位数字;
(3)后缀:
4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
根据该程序的规格说明,作等价类的划分,并设计测试方案。
2、题目二:
三角形问题
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。
把此三个数值看成是一个三角形的三个边。
这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。
”
3、题目三:
日期问题
用决策表测试法测试以下程序:
该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:
1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。
例如,输入为2004年11月29日,则该程序的输出为2004年12月1日。
(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。
(2)分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(3)根据
(1)和
(2),画出简化后的决策表。
4、题目四:
找零钱最佳组合
假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?
(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种。
试根据边界值法设计测试用例。
(二)步骤:
1、根据功能性测试技术设计测试用例(详见下面模板),主要考虑等价类划分和边界值分析测试技术。
2、根据所学知识确定优化策略(原则:
用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集。
3、根据设计的两套测试用例集进行测试。
附录:
测试用例参考模板
用例编号
版本号
测试环境
用例名称
前提条件
测试步骤
输入数据
预期输出
实际输出
同预期输出:
(Y/N)
问题描述
设计人
设计日期
测试人
测试日期
再测试人
再测试日期
修改意见
(用√选择)
1、同意修改2、不必修改3、暂时不修改
问题修改摘要
修改人
修改日期
五、注意事项:
1、注意测试用例的选择。
六、练习项目及思考题:
1、注意测试用例的选择?
实验项目二黑盒测试
1.掌握用边界值方法设计测试用例和执行测试的过程;
2.掌握用等价划分方法设计测试用例和执行测试的过程;
3.掌握用决策表方法设计测试用例和执行测试的过程。
测试Excel中的公式“WEEKDAY”函数。
WEEKDAY返回某日期为星期几。
默认情况下,其值为1(星期天)到7(星期六)之间的整数。
(Excel中的公式“WEEKDAY”的详细功能请参考Excel的相关帮助。
)
用你熟悉的语言编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。
1、用边界值方法设计测试用例,填写测试用例表;
2、用等价类划分方法设计测试用例,填写测试用例表;
3、用决策表方法设计测试用例,填写测试用例表。
4、测试用例表格式如下所示:
测试项目名称
测试人员
编制日期
功能特性
测试状态
1
2
测试结果分析
2、学生严格遵守实验室的各项规章制度,配合和服从实验室人员管理。
实验项目三功能性测试方法
1、掌握功能性测试方法。
4学时
对电话账单来说,春季和秋季的标准时间与夏时制时间的转换会带来有意思的问题。
春季,这种转换发生在(3月末、4月初的)星期日凌晨2:
00时,这时时钟要设置为凌晨3:
00时。
对称的转换通常发生在10月最后一个星期日,时钟要从2:
59:
59调回到2:
00:
00。
请为采用以下费率计算用户的每月通话费:
通话时间<
=20分钟时,每分钟收费0.05美元,通话时间不到1分钟时按1分钟计算。
通话时间>
20分钟时,收费1.00美元,超过20分钟的部分,每分钟0.10美元,不到1分钟时按1分钟计算。
假设:
通话计费时间从被叫方应答开始计算,到呼叫方挂机时结束。
没有超过20个小时的通话。
1、找到可测试的内容,或对实验参考题目进行编码(程序语言自定)。
2、根据实验内容设计测试用例,要求分别是用边界值分析、等价类测试和决策表测试方法生成测试用例。
3、执行测试用例,并记录测试结果。
4、编写实验报告,实验报告的内容包括测试用例的测试结果、程序中存在的bug、以及这三种测试用例生成方法对于揭露程序的错误有什么异同点。
实验项目四结构性测试(白盒测试)
1、掌握结构性测试技术,并能应用结构性测试技术设计测试用例。
2、掌握对测试用例进行优化设计方法。
1、根据题目要求编写测试用例。
2、实验结果要求给出两套测试用例集测试效果比较;
计算测试用例的分支覆盖率、条件覆盖率和语句覆盖率等测试管理指标。
3、撰写实验报告。
使用逻辑覆盖测试方法测试以下程序段
voidDoWork(intx,inty,intz)
{
1intk=0,j=0;
2if((x>
3)&
&
(z<
10))
3{
4k=x*y-1;
5j=sqrt(k);
6}
7if((x==4)||(y>
5))
8{
9j=x*y+10;
10}
11j=j%3;
12}
说明:
程序段中每行开头的数字(1~12)是对每条语句的编号。
(1)画出程序的控制流图(用题中给出的语句编号表示)。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
在三角形计算中,要求输入三角型的三个边长:
A、B和C。
当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。
若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。
画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。
3.题目三:
计算生日是星期几
已知公元1年1月1日是星期一。
编写一个程序,只要输入年月日,就能回答那天是星期几。
应用逻辑覆盖方法和基路径测试方法为上面的问题设计测试用例。
4.题目四:
选择排序
下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:
一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey(),一是交换两数组元素内容的操作Swap():
voidSelectSort(datalist&
list){
/对表list.V[0]到list.V[n-1]进行排序,n是表当前长度。
for(inti=0;
i<
list.n-1;
i++){
intk=i;
//在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象
for(intj=i+1;
j<
list.n;
j++)
if(list.V[j].getKey()<
list.V[k].getKey())k=j;
//当前具最小关键码的对象
if(k!
=i)Swap(list.V[i],list.V[k]);
//交换
}
(1)试计算此程序段的McCabe复杂性;
(2)用基本路径覆盖法给出测试路径;
为各测试路径设计测试用例。
1、根据结构性测试技术设计测试用例,主要考虑逻辑覆盖测试(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖)和基路径测试技术。
3、计算测试用例的分支覆盖率、条件覆盖率和语句覆盖率等测试管理指标。
【附】测试结果
用例ID
输入
是否通过
备注
1、注意测试用例的选择?
实验项目五白盒测试
1.掌握用逻辑覆盖设计测试用例和执行测试的过程;
2.掌握用基路径测试方法设计测试用例和执行测试的过程;
3.掌握用对循环测试方法设计测试用例和执行测试的过程。
1、使用逻辑覆盖测试方法测试以下程序段
voidDoWork(intx,inty,intz){
8j=x*y+10;
9j=j%3;
程序段中每行开头的数字(1~10)是对每条语句的编号。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、修正的判定/条件覆盖设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
2、折半查找
请按要求对下面的代码进行测试。
代码的功能是:
用折半查找法在元素呈升序排列的数组中查找值为key的元素。
publicintbinSearch(intarray[],intkey){
intmid,low,high;
low=0;
high=array.length-1;
while(low<
=high){
mid=(low+high)/2;
if(key==array[mid])
returnmid;
elseif(key<
array[mid])
high=mid-1;
else
low=mid+1
}
return-1;
(1)试计算此程序段的McCabe复杂性;
(3)为各测试路径设计测试用例。
3、对实验一WEEKDAY问题,应用逻辑覆盖方法和基路径测试方法为上面的问题设计测试用例。
1、根据白盒测试技术设计测试用例,主要考虑逻辑覆盖测试(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、修正的判定/条件覆盖)和基路径测试技术;
2、计算测试用例的分支覆盖率、条件覆盖率和语句覆盖率等测试管理指标;
测试覆盖标准
测试用例名称编号
测试数据
测试路径
实验项目六结构性测试方法
1、学习使用自动化测试工具Junit。
2、掌握逻辑覆盖测试。
一个假想的保险金计算程序,根据两个因素计算半年保险金:
投保人的年龄和驾驶历史记录:
保险金=基本保险费率×
年龄系数
-
安全驾驶折扣
年龄系数是投保人年龄的函数,如果投保人驾驶执照上的当前点数(根据交通违规次数确定)低于与年龄有关的门限,则给予安全驾驶折扣。
书面保险政策的驾驶人年龄范围为从16-100岁,如果投保人有12点,则驾驶入的执照就会被吊销(因此不需要保险)。
基本保险费率随时间变化,对于这个例子,是每半年500美元。
具体情况如表2.1所示。
表2.1保险金计算情况分类
年龄范围
年龄系数
门限点数
16≤年龄<25
2.8
50
25≤年龄<35
1.8
3
35≤年龄<45
1.0
5
100
45≤年龄<60
0.8
7
150
60≤年龄<100
1.5
200
1、使用各种逻辑覆盖方法生成测试用例。
2、使用JUNIT测试工具进行TDD开发。
4、修改BUG,并进行回归测试直到测试用例全部通过。
5、编写实验报告,实验报告的内容包括测试用例的测试结果、程序中存在的bug、以及这几种测试用例生成方法的异同点。
实验项目七单元测试及测试工具使用
1、掌握单元测试技术,并按单元测试的要求设计测试用例。
2、掌握一种单元测试工具的使用。
2、根据测试用例编写测试程序进行测试,并记录结果。
3、选择合适测试工具进行单元测试。
4、撰写实验报告。
题目一:
针对三角形问题进行单元测试
三角形问题:
接受三个正整数a、b、c作为输入,用做三角形的边。
三边必须满足条件:
0<
a、b、c≤1000;
程序的输出是由这三条边确定的三角形类型:
等边三角形、等腰三角形、不等边三角形或非三角形。
1、根据功能测试技术设计测试用例,主要考虑边界测试、等价类(弱一般、强一般、弱健壮性、强健壮性)和基于决策表等技术。
2、根据结构性测试技术设计测试用例,主要考虑路径测试、数据流等测试技术。
3、用Junit(Java程序)或Cunit(C程序)进行单元测试。
实验项目八软件测试综合训练
1、掌握根据应用系统编写合适测试用例方法。
2、掌握编写测试程序及合理选择测试工具方法。
3、掌握编写测试报告方法。
1、提交测试程序,如果选用测试工具,则需写出测试步骤及测试脚本。
2、按单元测试、集成测试、系统测试写出测试报告;
测试报告用Excel保存,需用保留测试数据。
3、对测试结果进行分析。
6学时
以3~4人为1个小组,实验课前按以下要求准备一个系统:
1、图书管理系统
2、个人网站
3、其它C/S或B/S系统
对准备的系统进行单元测试、集成测试和系统测试。
1、拟定测试计划。
2、撰写测试方案。
3、设计测试用例。
4、编写测试程序及测试。
5、填写测试报告。
6、分析测试结果。