软件测试与质量保证复习提纲提要:【复习重点】单元测试(黑盒测试:边界值、等价类、决策表;白盒测试:语句覆盖、条件覆盖、判定(分支)覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖、基路径法、数据流测试——定义节点、使用节点)【复习方法】立足于教材,重点看讲课课件及所讲过的习题【复习题目】黑盒测试:边界值一般边界条件法(4n+1)健壮性边界条件法(6n+1)最坏边界条件法(5n)健壮最坏边界条件法(7n)等价类:注意无效等价类决策表:先得到等价类,简化决策表白盒测试(程序流程图、DD路径图):语句路径覆盖、判定(分支)路径覆盖、条件路径覆盖、判定/条件路径覆盖、条件组合路径覆盖、路径覆盖法基路径法圈复杂度V(G)= e –n +2 = 判定节点数+ 1=闭合区域数+1其中e表示程序控制流图中边的数量、n表示节点的数量定义/使用法:按照程序中变量定义和使用的位置来选择程序的测试路径的一种测试方法。
在程序设计中,程序的变量有两种不同作用:1、将数据存储起来(变量出现在赋值语句的左边)2、将所存储的数据取出来(变量出现在赋值语句的右边)常见的定义/使用路径错误包括:1、引用一个未初始化的变量2、一个变量的死(无用)定义3、等待一个还没有安排的进程4、安排了一个与自身相同的进程5、等待一个先前已经被中止了的进程6、引用一个在并行进程中被定义的变量7、引用一个值不确定的变量定义节点:变量关联的存款单元的内容变化使用节点:变量关联的存储单元的内容保持不变谓词使用:节点外度(出度)>=2计算使用:节点外度(出度)<=1注:一个变量节点不是定义节点就是使用节点,也可能两者都是。
如a = a + 1 或a ++关于变量V:定义/使用路径:路径的最初节点是定义节点,最终节点是使用节点定义清晰(清除)路径:只有路径的最初节点是定义节点,中间没有定义节点注:定义清晰路径一定是定义/使用路径因果图法找出原因及结果,会画因果图,并将因果图转化为决策表,设计测试用例正交试验法会计算实验次数题目汇总一、简答题1、简述软件测试的基本职责2、试论述自底向上/自顶向下集成测试的实施步骤及其优缺点3、什么是集成测试,一般在何时进行;请论述其集成测试方法的分类4、什么是维恩图,如何通过维恩图来理解软件测试5、试叙述V、W、H、X测试模型,给出其示意图,并说明其局限性和改进途径6、简述等价类的划分原则及测试用例的设计原则7、功能性测试有哪几种方法?请简单描述各种方法的特点8、简述G.Myers阐述的测试目标9、简述白盒测试的优缺点10、什么是软件缺陷,产生软件缺陷的原因有哪些11、简述黑盒测试的优缺点12、简述黑盒测试和白盒测试的区别及联系13、简述单元测试、集成测试与系统测试的区别及联系14、软件可靠性测试与硬件可靠性测试的区别二、判断正误题1.测试员需要尽早地和不断的进行软件测试2.测试员是可以对所有可能的输入进行测试的3.测试员可以对每一条程序的可能执行路径进行测试4.通过软件测试,我们可以找出所有的软件错误5.程序员应该尽量避免测试自己书写的程序6.软件调试和软件测试是一样的7.软件测试在软件开发过程中可以忽略8.所有的软件测试都应该在软件开发完成之后进行9.软件测试的流程是单元测试->集成测试->系统测试10.单元测试是一种浪费时间的工作11.如果程序员非常出色,是可以不进行单元测试的12.集成测试可以捕捉到所有的BUG13.单元测试的成本效率不高14.单元测试是证明代码做了什么的工作15.等价类测试的关键在于选择确定类的等价关系16.对于软件测试,完全测试是不可能的,但是我们应该修复所有找到的缺陷17.经过软件测试,如果发现的缺陷数目越多,则软件中剩余残存的缺陷数目越少18.软件测试就是通过一定的方法测试程序中是否存在错误19.完整的测试流程为:单元测试—联调—集成测试—系统测试20. 测试用例应由测试输入数据和对应的预期输出结果这两部分组成21. 如果一个等价类中的一个测试没有发现缺陷,那么这个等价类的其他测试也不能发现缺陷22.在软件测试过程中,不允许程序员检查自己的程序23.对于软件缺陷是否应该修复,其决策过程应由软件测试员、项目管理员和程序员共同参与24. 软件测试得越彻底,得到的经济收益也就越高25. 达到了判定覆盖也一定达到了语句覆盖26. 自底向上进行集成测试的优点是不需要构造桩(stub)模块27. 一个类的部分代码做修改了,只需要保证修改的部分测试到了即可28. TMM 是CMM 的一个关键性级别(不需要做)29. 白盒测试也称逻辑驱动测试30. 测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未知的条件开始,结束的过程不可预计31. 所有的软件故障均有编码错误引起32. W 模型仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段33. 验收测试往往不是对系统进行全覆盖测试,而是针对用户的核心业务流程进行的测试34. 自顶向下集成测试最显著的优点是不需要桩模块35. 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类36. 由于完全的测试是不能的,所以对于任何程序的任何一种覆盖不可能实现全覆盖37. 自底向上集成测试最显著的优点是不需要桩模块38. 软件缺陷是由软件失效导致的结果39. 条件覆盖的覆盖能力不一定强于判定覆盖40. 一个类的部分代码做修改了,只需要保证修改的部分测试到了即可41. 正交试验法产生的测试用例数目一定要少于简单对比法产生的测试用例三、填空题1.对于一个具有n 个变量的函数,最坏情况的边界值测试会产生___个测试用例;而边界值分析会产生____个测试用例。
2.在边界值分析测试技术、等价类测试技术和决策表技术中,按技术精细程序排序的结果为___。
3.在进行集成测试时,测试人员所必须的文档为:_______。
4. 在用维恩图(如下图所示)描述软件测试的过程中,测试人员应该使区域________(填入数字)尽可能地扩大。
5. 在软件测试中,我们最关注的就是软件中存在的各种缺陷,而导致软件缺陷产生的最大原因是______。
6.软件测试的本质是___。
7.从软件测试用例设计方法的角度分类,软件测试可分为___ __和_____。
8.边界值测试的基本原理为 ___。
9.在集成测试策略中,基于分解的集成策略主要有:____、____和___。
10.在传统软件中,确定单元的指导方针是:___、___和__ _。
11.进行黑盒测试时,测试人员必须的文档为_______。
12.软件测试有两个基本职责,即___。
13.软件测试员的目标为__ 。
14.在面向对象软件的测试中,一般是使用____和______作为测试单元。
15.驱动模块和桩模块的定义以及用途16.正交试验法的实验次数,例如6因子5水平的问题采用“简单对比法”需要进行的试验次数___,圆圈S 表示规格说明描述的程序行为 圆圈P 表示程序已实现的程序行为 圆圈T 表示测试用例覆盖的程序行为 全集为所有的程序行为正交试验法的试验次数____四、用例设计题1.采用健壮性边界值测试方法,对一个两个数的加法器进行测试(两个输入值均在100至200之间,包含100和200)2.金额校验测试用例设计:金额范围[0.00,99.99](最多只能有两位小数),要求划分等价类,然后设计测试用例。
例如输入:56.57 21. 23.4输出:56元5角7分21元23元4角3.某直辖市的电话号码由三部分组成,这三部分的名称和内容分别是:地区码:空白或4位数字;前缀:非“0”和非“1”开头的4位数字;后缀:4位数字假定被测程序接受一切符合上述规定的电话号码,拒绝所有不符合的号码,试设计它的测试用例(支持单缺陷假设)。
4.请为前一日(Predate)/下一日(Nextdate)设计强一般等价类(即假设所有输入数据均合法)。
5.试对以下程序设计语句覆盖、路径覆盖、条件覆盖、判定条件覆盖、条件组合覆盖以及判定覆盖测试用例。
(1)if(x>=80&&y>=80)t=1;elseif(x+y>=140&&(x>=90||y>=90))t=2;elset=3;(2)void DoWork(int x,int y,int z){int k=0,j=0;if((x>3)&&(z<10)){ k = x*y-1;j = sqrt(k); }if((x==4)||(y>5))j = x*y+10;j = j%3;}6. 有一个饮料自动售货机(处理单价为5角)的控制处理软件,它的规格说明为:若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就会送出来;若投入1元钱的硬币,同样也是按下“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退还5角硬币。
试做出决策表。
7. 第二次测验的五道白盒测试的题目8. 找零钱例子9. 佣金问题案例10 .三角形问题案例11. 课件上白盒测试的案例12. MM路径,参考教材示例13. 程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。
试画出以上问题的决策表及因果图14. 年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%,非年薪制员工:过失,扣当月薪资的4%。
画出以上问题的因果图五、名词解释1.软件测试2.测试用例3.回归测试4.白盒测试(结构性测试)5.黑盒测试(功能性测试)6.单元测试7.集成测试8.系统测试9.失效10.软件故障11.联调12.V&V(验证和确认)13.遗漏缺陷14.测试覆盖率15.软件可靠性六、论述题1.TDD2.PDCA3.测试模型(V、W、H)4.软件可靠性测试的步骤。