当前位置:文档之家› 软件测试案例分析

软件测试案例分析

案例分析题解1. 回归测试时,如何在效率和风险之间权衡?(1)如果资源足够,尽可能执行所有测试用例.(2)如果资源不充分,选择性的执行测试用例,兼顾效率,降低风险执行缺陷修复关联的测试用例;根据风险分析,识别出关联的测试用例集,然后执行测试用例集中所有测试用例。

2 .如何有效地描述软件缺陷?1)给出缺陷的属性信息,包括缺陷的名称、简要描述、优先级、状态、类型等属性信息。

2)描述缺陷管理相关信息,包括缺陷状态、责任者等信息;3)不仅要文字描述,还要给出缺陷相关的日志、图片、视频等信息,实现缺陷的全方位表达;4)缺陷有效描述的目标是确保开发人员、测试人员能够再现缺陷。

3 软件质量神殿思考题——以软件质量保证神殿为基础,思考如何构建企业的软件质量保证体系。

4. 理解JUnit 单元测试框架教材P102-1035. 编写JUnit 测试脚本实验 4 三角形问题、次日问题测试脚本(重点:如何把测试过程编码为测试方法中的脚本)例1:三角问题:三角定义代码:public class triCalculate {private static int tri =0;public void triangle(int a,int b, int c){if(a<=0||b<=0||c<=0){tri=0;//无法构成三角形}else{if(((a+b)>c) && ((a+c)>b && (b+c)>a)){if((a == b) &&(a == c)){tri = 3;//equilateral等边}if((a==b && a!=c)||(a==c && a!=b)||(b==c && a!=b)){tri = 2;//isosceles等腰}if(a!=b && a!=c && b!=c){tri = 1;//scalene普通三角形}}else{tri=0;//三边长度无法构成三角形}}}public int getReuslt(){return tri;}public void clear(){tri = 0;}}测试java代码:public class testCalculate {private static triCalculate cal = new triCalculate();@Testpublic void testTriangle(){cal.triangle(-5, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(5, 5, 5);assertEquals(3, cal.getReuslt());cal.triangle(5, 5, 6);assertEquals(2, cal.getReuslt());cal.triangle(3, 4, 5);assertEquals(1, cal.getReuslt());cal.triangle(12, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(10, 5, 5);assertEquals(0, cal.getReuslt());}}例2:次日问题脚本:次日定义java代码:import java.util.Scanner;public class NextDay {public int year;public int month;public int day;@Overridepublic String toString() {return year + "-" + month+ "-" + day;}public NextDay() {super();}public boolean isLeapYear(){if(year%4==0&&year%100!=0||year%400==0){return true;}else{return false;}}public boolean isFebruary(){if(month==2){return true;}else{return false;}}public boolean isYearEnd(){if(month==12&&day==31){return true;}else{return false;}}public boolean isMonthEnd() {if(day==31&&(month==4||month==6||month==9||month==11)){return true;}elseif(day==31&&(month==1||month==3||month==5||month==7||month==8||month==10||m onth==12)){return true;}else{if(day==29&&(year%4==0&&year%100!=0||year%400==0)){return true;}else if(day==28){return true;}else{return false;}}}public int getMonthMaxDays(){if(month==4||month==6||month==9||month==11){return 30;}elseif(month==1||month==3||month==5||month==7||month==8||month==10||month== 12){return 31;}else{if(year%4==0&&year%100!=0||year%400==0){return 29;}else{return 28;}}}public String computeNextDay(){NextDay next=new NextDay();Scanner scanner = new Scanner(System.in);System.out.print("请输入年份:");next.year = scanner.nextInt();System.out.print("请输入月份:");next.month = scanner.nextInt();System.out.print("请输入天数:");next.day=scanner.nextInt();if(next.isYearEnd()){next.year+=1;next.month=1;next.day=1;}else if(next.isMonthEnd()){next.day=1;next.month+=1;}else{next.day+=1;}return next.year+"-"+next.month+"-"+next.day;}}测试脚本:@Testpublic void testComputeNextDay() {NextDay next=new NextDay();assertEquals("2018-3-1",puteNextDay()+"");}6. 集成测试过程用层次方框图描述软件架构,测试过程中要编写驱动模块和桩模块。

驱动模块编号示例d1,d2,d3桩模块编号例示:s1, s2, s3例:1)自顶向下集成测试策略1 广度优先自顶向下集成测试2 深度优先自顶向下集成测试2)自底向上集成测试策略参考:第8 章PPT 中例题7 .McCall 质量模型的应用,识别出需求描述关联的质量要素McCall质量模型在产品运行类别的5个质量要素:(1)正确性:正确性需求定义在软件系统所需的输出清单中;(2)可靠性:它同提供服务的失效有关。

它们决定允许的最大整个软件系统、软件的一个/多个功能失效率。

(3)效率:它同所需要的硬件资源有关。

考虑的硬件资源主要是计算机的处理能力、存储器的数据访问能力、磁盘容量、通信通路的通信能力,还包括软件系统或固件中使用的硬件资源的最大值等。

(4)完整性:它需求同软件系统的保密性有关,即防止非授权人员访问等。

(5)实用性:它同员工培训和操作软件系统所需的人力资源范围有关。

McCall软件质量模型中,产品修改维度包含3个软件质量要素:(1)可维护性:它的需求确定用户和维护人员识别软件失效的原因、失效的改正、验证改正成功与否等工作。

该因素的需求要参考软件的模块结构、内部程序文档和程序员手册及其特文档。

(2)灵活性:它的需求覆盖了支持性维护、适应性维护所需的能力和工作。

这些能力和工作包括使一个软件包括适应于统一行当的各种顾客、活动的各种程度、产品的不同范围等所需的资源等方面。

(3)可测试性:它的需求同信息系统的测试以及它的运行有关。

可测试性需求同程序中那些帮助测试人员的专门特性关联;软件可测试性需求还包括在启动系统前由软件进行自动诊断,以发现是否软件系统的所有部件都符合工作要求,并得到以份关于检验故障的报告。

可测试性需求的另一类同由维护人员使用的自动诊断检查有关,他们用以监测软件失效的原因。

产品移转维度的质量因素包括下述4个质量因素:(1)可移植性:它的需求关注的是软件系统对由不同硬件、不同操作系统等组成的其他环境的适应。

(2)可重用性:它的需求同原先为一个项目设计的软件模块在当前正开发的新项目中的使用有关。

(3)软件的可重用性:它的是为了节省开发资源、缩短开发成本并提供更高质量的软件。

(4)互操作性:它的需求关心建立同其它软件系统或其他设备固件的接口。

例题:8 .等价类划分法设计测试用例1)三角形问题等价类划分:A.有效等价类M1={整数} M2={输入3个数} M3={正数} M4={非零}B.无效等价类M1={一边非整} M2={两边非整} M3={三边非整}M4={输入数大于3个} M5={只输入一个} M6={只输入2个}M7={一边<0} M8={两边<0} M9={三边<0}M10={一边=0} M8={两边=0} M9={三边=0}2)次日问题问题描述:NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。

相关主题