软件评测师一些测试题.docx
- 文档编号:6717856
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:9
- 大小:77.24KB
软件评测师一些测试题.docx
《软件评测师一些测试题.docx》由会员分享,可在线阅读,更多相关《软件评测师一些测试题.docx(9页珍藏版)》请在冰豆网上搜索。
软件评测师一些测试题
软件评测师一些测试题
LT
供选择的答案:
A~B:
①引用分析②算法分析③可靠性分析④效率分析
⑤接口分析⑥操作分析
C~E:
①路径测试②等价类③因果图④归纳测试
⑤综合测试⑥追踪⑦深度优先⑧调试
⑨相对图
【9】下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:
一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey(),一是交换两数组元素内容的操作Swap():
:
voidSelectSort(datalist&list){
//对表list.V[0]到list.V[n-1]进行排序,n是表当前长度。
for(inti=0;i intk=i;//在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象 for(intj=i+1;j if(list.V[j].getKey() if(k! =i)Swap(list.V[i],list.V[k]);//交换 } } (1)试计算此程序段的McCabe复杂性; (2)用基本路径覆盖法给出测试路径; (3)为各测试路径设计测试用例。 【10】根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。 “一个程序读入三个整数。 把此三个数值看成是一个三角形的三个边。 这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。 ” 【11】设要对一个自动饮料售货机软件进行黑盒测试。 该软件的规格说明如下: “有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。 若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。 若投入的是2元硬币,在送出饮料的同时退还5角硬币。 ” (1)试利用因果图法,建立该软件的因果图; (2)设计测试该软件的全部测试用例。 【12】对一个长度为100,000条指令的程序进行测试,记录下来的数据如下: ú测试开始,发现错误个数为0; ú经过160小时的测试,累计改正100个错误,此时,MTTF=0.4小时; ú又经过160小时的测试,累计改正300个错误,此时,MTTF=2小时; (1)估计程序中固有的错误总数; (2)为使MTTF达到10小时,必须测试和调试这个程序多长时间? (3)给出MTTF与测试时间t之间的函数关系。 【13】应该由谁来进行确认测试? 是软件开发者还是软件用户? 为什么? 【习题解答】 【1】A.②B.④C.①D.④E.④ 软件测试的目的是软件中的错误。 因为不可能把所有可能的输入数据都拿来测试(时间花费不起),为了提高测试的效率,应该选择发现错误的可能性大的数据作为测试数据。 使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准,可以不考虑程序的功能。 与设计测试数据无关的文档是项目开发计划。 软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果。 【2】A.②B.④C.④D.②E.① 1966年,Bohm与Jacopini提出任何单入口单出口的没有“死循环”的程序都能由三种最基本的控制结构构造出来。 这三种基本控制结构就是“顺序结构”、“选择IF-THEN-ELSE结构”、“重复DO-WHILE或DO-UNTIL结构”。 它们的共同点是只有一个入口和一个出口。 E.W.Dijkstra提出了程序要实现结构化的主张,并将这一类程序设计称为结构化程序设计。 这种方法的一个重要原则就是采用自顶向下、逐步求精的方法编写程序。 N.Wirth曾做过如下说明: “我们对付一个复杂问题的最重要的方法就是抽象。 因此,对于一个复杂的问题,不要急于马上用计算机指令、数字和逻辑符号来表示它,而应当先用较自然的抽象的语句来表示,从而得到抽象的程序。 抽象程序对抽象的数据类型进行某些特定的运算,并用一些合适的记号(可以是自然语言)来表示。 下一步对抽象程序再做分解,进入下一个抽象的层次。 这样的细化过程一直进行下去,直到程序能被计算机接受为止。 此时的程序已经是用某种高级语言或机器指令书写的了。 ” 软件调试则是在进行了成功的测试之后才开始的工作。 它与软件测试不同,软件测试的目的是尽可能多地发现软件中的错误,但进一步诊断和改正程序中潜在的错误,则是调试的任务。 调试活动由两部分组成: ①确定程序中可疑错误的确切性质和位置。 ②对程序(设计,编码)进行修改,排除这个错误。 【3】正确的叙述有(4)、(5)、(6)、(7)、(10)。 黑盒测试主要是根据程序的有关功能规格说明和覆盖准则来设计测试用例,进行测试的,不是根据程序的内部逻辑来设计测试用例,这是白盒测试做的事情。 在所有黑盒测试方法中,最有效的不是因果图法,而是边界值分析方法。 测试的目的是尽可能多地发现软件中的错误,其附带的收获才是验证该软件已正确地实现了用户的要求。 测试的一条重要原则是: 发现错误多的程序模块,残留在模块中的错误也多。 软件可靠性模型(Shooman)就是依据这个原则建立它的公式的。 对于连锁型分支结构,若有n个判定语句,则有2n条路径。 因此,随着n的增大,路径数增长非常快。 单元测试时,因为桩模块要模拟子模块的功能,这不是一件容易的事情,而驱动模块只是控制被测模块的执行,所以桩模块的编写比驱动模块的编写要难得多。 在程序设计风格方面,如果重复的代码段没有明显的功能,不可以抽取出来形成独立的公共过程或子程序,只有在这些代码段表现出独立的功能时,才可把它们抽取出来形成独立的公共过程或子程序。 另外,程序效率的提高主要应通过选择高效的算法或使用高效的语言编译器来实现。 GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁,这句话是正确的。 【4】 (1)② (2)⑩(3)⑨(4)⑧(5)④ (1)对可靠性要求很高的软件,由第三者对源代码进行逐行检查,这是代码审查。 (2)软件变更时可能发生退化现象: 原来正常的功能可能发生异常,性能也可能下降。 因此,对变更的软件要进行退化测试。 (3)基于被测试模块的内部结构或算法设计测试用例进行测试,这是白盒测试。 (4)为了确认用户的需求,先做出系统的原型,提交给用户试用。 (5)自顶向下对具有层次结构的大型软件进行集成测试时,需要设计一些虚拟模块来替代尚未测试过的下层模块,这些模块叫做桩模块。 【5】对小程序进行穷举测试,不见得能保证程序百分之百正确。 所谓穷举测试是拿所有可能的输入数据来作为测试用例(黑盒测试),或覆盖程序中所有可能的路径(白盒测试)。 对于小程序来说,实际上并不能真正作到穷举测试。 例如前面讲过,一个小程序P只有两个输入X和Y及输出Z,在字长为32位的计算机上运行。 如果X、Y只取整数,考虑把所有的X、Y值都做为测试数据,按黑盒方法进行穷举测试,这样做可能采用的测试数据组(Xi,Yi),基数(radix)i的最大可能数目为: 232×232=264。 如果程序P测试一组X、Y数据需要1毫秒,而且假定一天工作24小时,一年工作365天,要完成264组测试,需要5亿年。 【6】单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。 其目的在于发现各模块内部可能存在的各种差错。 单元测试需要从程序的内部结构出发设计测试用例。 多个模块可以平行地独立进行单元测试。 单元测试是在编码阶段完成的,每编写出一个程序模块,就开始做这个模块的单元测试,所以只要采用模块化方法开发软件,单元测试都是必需的。 它可由编写程序的人来完成。 因为它需要根据程序的内部结构设计测试用例,对于那些不了解程序内部细节的人,这种测试无法进行。 【7】A.③B.④C.②D.②E.②F.①G.④H.⑤I.①J.① 软件测试方法可分为黑盒测试法和白盒测试法两种。 黑盒测试法是基于程序的功能来设计测试用例的方法。 除了测试程序外,它还适用于对需求分析阶段的软件文档进行测试。 白盒测试法是根据程序的内部逻辑来设计测试用例的方法。 除了测试程序外,它也适用于对软件详细设计阶段的软件文档进行测试。 白盒法测试程序时常按照给定的覆盖条件选取测试用例。 判定覆盖比语句覆盖严格,它使得每一个判定的每一条分支至少经历一次。 判定/条件覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值。 多重条件覆盖,也叫组合条件覆盖,比其他条件都要严格,但它不能保证覆盖程序中的每一条路径。 单元测试一般以白盒法为主,测试的依据是系统的模块功能规格说明。 【8】A.①B.⑤C.①D.②E.③ 软件测试中常用的静态分析方法是引用分析和接口分析。 接口分析用于检查模块或子程序间的调用是否正确。 分析方法(白盒方法)中常用的方法是路径测试方法。 非分析方法(黑盒方法)中常用的方法是等价类(划分)方法和因果图方法。 因果图方法根据输出对输入的依赖关系设计测试用例。 【9】 (1)McCabe环路复杂性=5 (2)独立路径有5条: ①③ ①②⑤⑧…… ①②⑤⑨…… ①②④⑥…… ①②④⑦…… (3)为各测试路径设计测试用例: 路径①③: 取n=1 路径①②⑤⑧……: 取n=2, 预期结果: 路径⑤⑧③不可达 路径①②⑤⑨……: 取n=2, 预期结果: 路径⑤⑨③不可达 路径①②④⑥⑤⑧③: 取n=2,V[0]=2,V[1]=1,预期结果: k=1,V[0]=1,V[1]=2 路径①②④⑥⑤⑨③: 取n=2,V[0]=2,V[1]=1,预期结果: k=1,路径⑨③不可达 路径①②④⑦⑤⑧③: 取n=2,V[0]=1,V[1]=2,预期结果: k=0,路径⑧③不可达 路径①②④⑦⑤⑨③: 取n=2,V[0]=1,V[1]=2,预期结果: k=0,V[0]=1,V[1]=2 【10】设三角形的三条边分别为A,B,C。 如果它们能够构成三角形的三条边,必需满足: A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。 如果是等腰的,还要判断是否A=B,或B=C,或A=C。 对于等边的,则需判断是否A=B,且B=C,且A=C。 列出等价类表: 输入条件有效等价类无效等价类 是否三角形的三条边(A>0) (1),(B>0) (2),(C>0)(3),(A+B>C),(4)(B+C>A)(5),(A+C>B)(6)A£0(7),B£0(8),C£0(9),A+B£C(10),A+C£B(11),B+C£A(12) 是否等腰三角形(A=B)(13),(B=C)(14),(A=C)(15)(A¹B)and(B¹C)and(A¹C)(16) 是否等边三角形(A=B)and(B=C)and(A=C)(17)(A¹B)(18),(B¹C)(19),(A¹C)(20) 设计测试用例: 输入顺序是〖A,B,C〗 §〖3,4,5〗覆盖等价类 (1), (2),(3),(4),(5),(6)。 满足即为一般三角形。 §〖0,1,2〗覆盖等价类(7)。 不能构成三角形。 若不考虑特定A,B,C, §〖1,0,2〗覆盖等价类(8)。 同上。 三者取一即可 §〖1,2,0〗覆盖等价类(9)。 同上。 §〖1,2,3〗覆盖等价类(10)。 同上。 若不考虑特定A,B,C, §〖1,3,2〗覆盖等价类(11)。 同上。 三者取一即可 §〖3,1,2〗覆盖等价类(12)。 同上。 §〖3,3,4〗覆盖等价类 (1), (2),(3),(4),(5),(6),(13)。 满足即为等腰三角形, §〖3,4,4〗覆盖等价类 (1), (2),(3),(4),(5),(6),(14)。 若不考虑特定A,B,C, §〖3,4,3〗覆盖等价类 (1), (2),(3),(4),(5),(6),(15)。 三者取一即可 §〖3,4,5〗覆盖等价类 (1), (2),(3),(4),(5),(6),(16)。 不是等腰三角形。 §〖3,3,3〗覆盖等价类 (1), (2),(3),(4),(5),(6),(17)。 是等边三角形 §〖3,4,4〗覆盖等价类 (1), (2),(3),(4),(5),(6),(14),(18)。 不是等边三角形, §〖3,4,3〗覆盖等价类 (1), (2),(3),(4),(5),(6),(15),(19)。 若不考虑特定A,B,C, §〖3,3,4〗覆盖等价类 (1), (2),(3),(4),(5),(6),(13),(20)。 三者取一即可 【11】 (1)因果图 输入条件(原因)输出条件(结果) 投入1元5角硬币 (1)(21)退还5角硬币 E 投入2元硬币 (2)(11)(22)送出“可乐”饮料 按“可乐”按钮(3)(23)送出“雪碧”饮料 按“雪碧”按钮E(4)Ú(12)(24)送出“红茶”饮料 按“红茶”按钮(5) (2)测试用例设计 1234567891011 输入投入1元5角硬币 (1)11110000000 投入2元硬币 (2)00001111000 按“可乐”按钮(3)10001000100 按“雪碧”按钮(4)01000100010 按“红茶”按钮(5)00100010001 中间结点已投币(11)11111111000 已按钮(12)11101110111 输出退还5角硬币(21)00001110000 送出“可乐”饮料(22)10001000000 送出“雪碧”饮料(23)01000100000 送出“红茶”饮料(24)00100010000 测试用例每一纵列为一个测试用例 【12】由shooman公式: 其中,IT=105,MTTF1=0.4,T1=160,n1=100,MTTF2=2,T2=320,n2=300。 得: (1)解得程序中固有得错误总数ET=350,此外K=1000。 (2)设MTTF=10,有 解得x=340。 由可靠性累积曲线EC(t)=ET(1-e-K1t), 得100=350(1-e-160K1) 300=350(1-e-320K1) 解得K1»0.01。 代入: 340=350(1-e-K1t)=350(1-e-0.01t) t=(ln(35))/0.01»356(小时) 因此求得为使MTTF=10,测试和调试该程序需要花费356小时。 (3)MTTF与测试时间t之间的函数关系: 因为EC(t)=ET(1-e-K1t),则ET-EC(t)=ETe-K1t。 代入shooman公式: 【13】在对照需求做有效性测试和软件配置审查时,是由软件开发者在开发环境下进行的测试。 而接下来做验收测试时则以用户为主。 软件开发人员和QA(质量保证)人员也应参加。 由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。 一般使用生产中的实际数据进行测试。 如果软件是为多个客户开发的,则需要进行α测试和β测试。 α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。 软件在一个自然设置状态下使用。 开发者坐在用户旁边,随时记下错误情况和使用中的问题。 这是在受控制的环境下进行的测试。 β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。 这些用户是与公司签定了支持产品预发行合同的外部客户,他们要求使用该产品,并愿意返回有关错位错误信息给开发者。 与α测试不同的是,开发者通常不在测试现场。 因而,β测试是在开发者无法控制的环境下进行的软件现场应用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 评测 一些 测试
![提示](https://static.bdocx.com/images/bang_tan.gif)