逻辑覆盖法是设计白盒测试用例主要方法之一,它是通过对程序逻辑结构遍历实现程序覆盖。针对以下由C 语言编写程序,按要求回答问题。 main( ){int i,n; //1for(i=1;iimage.png7;i++){ //2n=0; if(i!=1) //3 n=n+1; //4 if(n==5){ //5printf("Hello!"); //6 }else{ printf("No!"); //7} }printf("GAME OVER!"); //8 } 问题1:请给出满足100%DC(判定覆盖)所需逻辑条件。问题2:请画出上述程序控制流图,并计算其控制流图环路复杂度V(G)。问题3:请给出【问题2】中控制流图线性无关路径。
问题1:i <72、i >= 73、i != 14、i == 15、n == 56、n != 5
问题2:(1) 控制流图如下图所示:
(2)、V(G)=3+1=4
问题3:(1) 1-2-8 (2) 1-2-3-5-6-2... (3) 1-2-3-4-5-6-2...(4) 1-2-3-5-7-2…
问题1:本小题考查白盒测试中判定覆盖法。判定覆盖指设计足够测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序每一个分支至少都通过一次。本题中程序一共有3个判定,所以满足判定覆盖一共就需要6个逻辑条件,这些条件详见上述答案。
问题2:本题考查白盒测试方法中基本路径法。涉及到知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中一个结点,表示一个或多个无分支语句;带箭头线段称为边或连接,表示控制流。基本结构如下所示:
其中要特别注意是,如果判断中条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接逻辑表达式,则需要改变复合条件判断为一系列之单个条件嵌套判断。环路复杂度用来衡量一个程序模块所包含判定结构复杂程度。环路复杂度等于右图中判定节点个数加1。图中判定节点个数为3,所以V(G)=3+1=4。控制流程图环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。(1)控制流程图中区域个数。(2)边数-结点数+2。(3)判定数+1。
问题3:本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。线性无关路径:指包含一组以前没有处理语句或条件路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过边路径。程序环路复杂度等于线性无关路径条数,所以本题中有4条线性无关路径。这4条路径组成了问题2中控制流图一个基本路径集。只要设计出测试用例能确保这些基本路径执行,就可以使程序中每个可执行语句至少执行一次,每个条件取真和取假分支也能得到测试。需要注意是,基本路径集不是唯一,对于给定控制流图,可以得到不同基本路径集。
某软件公司在研发一个城镇居民保险系统时,为了加快进度,测试工作在系统开发初步完成之后开始并直接进行系统测试。测试工程师针对界面进行了功能测试。测试工程师和开发工程师借助缺陷管理工具,交互进行测试与缺陷修复工作。测试期间发现系统“文档审批”功能出现严重缺陷,开发工程师认为修改难度大,经测试工程师认可后决定暂停修复该缺陷,直到产品发布前,该缺陷在开发环境下被修复。随后,测试工程师在开发环境下针对该缺陷执行了有关用例,进行了回归测试。回归测试结束后,开发工程师在开发环境下对产品直接打包发布。
1、测试开展时间是过早、过晚还是合适?说明理由。
2、测试工程师功能测试方法是否正确?若不正确,请陈述正确方法;若正确,请说明理由。
3、该案例中对缺陷管理有哪些不妥之处?
4、开发工程师产品发布做法是否正确?
某嵌入式刹车控制软件,应用于汽车刹车控制器,该软件需求如下:
1.模式选择:采集模式控制离散量信号In_D1并通过模式识别信号灯显示软件当前工作模式。在信号In_D1为低电平时进入正常工作模式(模式识别信号灯为绿色),为高电平时进入维护模式(模式识别信号灯为红色)。软件在正常工作模式下仅进行刹车控制和记录刹车次数,在维护模式下仅进行中央控制器指令响应。
2.刹车控制:采用定时中断机制,以5ms为周期采集来自驻车器发出模拟量信号In_A1以及来自刹车踏板发出模拟量信号In_A2,并向刹车执行组件发送模拟量信号Out_A1进行刹车控制。
模拟量信号说明:1)In_A1、In_A2以及Out_A1信号范围均为[0.0V,10.0V],信号精度均为0.1V;2)Out_A1信号计算方法为:Out_A1=In_A1+0.3×In_A2,在计算完成后需要在满足信号精度要求下进行四舍五入及限幅处理。
3.记录刹车次数:在Out_A1大于4V时,读出非易失存储器NVRAM中保存刹车次数记录进行加1操作,然后保存至非易失存储器NVRAM中。
4.响应中央控制器指令;接收来自中央控制器串行口指令字In_S1,回送串行口响应字Out_S1。当接收指令字错误时,软件直接丢弃该命令字,不进行任何响应。
指令字及响应字说明如表1所示。
2、请简述本软件串行输入接口测试测试策略及测试内容。针对表1中"读取刹车次数指令"进行鲁棒性测试时应考虑哪些情况?
某嵌入式刹车控制软件,应用于汽车刹车控制器,该软件需求如下:
1.模式选择:采集模式控制离散量信号In_D1并通过模式识别信号灯显示软件当前工作模式。在信号In_D1为低电平时进入正常工作模式(模式识别信号灯为绿色),为高电平时进入维护模式(模式识别信号灯为红色)。软件在正常工作模式下仅进行刹车控制和记录刹车次数,在维护模式下仅进行中央控制器指令响应。
2.刹车控制:采用定时中断机制,以5ms为周期采集来自驻车器发出模拟量信号In_A1以及来自刹车踏板发出模拟量信号In_A2,并向刹车执行组件发送模拟量信号Out_A1进行刹车控制。
模拟量信号说明:1)In_A1、In_A2以及Out_A1信号范围均为[0.0V,10.0V],信号精度均为0.1V;2)Out_A1信号计算方法为:Out_A1=In_A1+0.3×In_A2,在计算完成后需要在满足信号精度要求下进行四舍五入及限幅处理。
3.记录刹车次数:在Out_A1大于4V时,读出非易失存储器NVRAM中保存刹车次数记录进行加1操作,然后保存至非易失存储器NVRAM中。
4.响应中央控制器指令;接收来自中央控制器串行口指令字In_S1,回送串行口响应字Out_S1。当接收指令字错误时,软件直接丢弃该命令字,不进行任何响应。
指令字及响应字说明如表1所示。
1、在不考虑测量误差情况下,根据所设计输入填写表2中横线处。
某软件企业内部测试部门对其ERP产品进行内部测试之后,由第三方测试机构进行验收测试,重点测试质量特性包括:功能性、可靠性、易用性、效率、维护性以及可移植性。1、验收测试依据是什么?验收测试对测试环境有何要求?2、软件产品功能性测试中应关注哪些子特性?3、在实际软件测试过程中,对缺陷管理与分析至关重要。回答如下问题:(1)针对本测试,Bug错误类型除了功能性错误外,还可能会包括哪些?(2)严重性级别是Bug重要属性,请写出常见功能性Bug严重性级别层次。(3)在测试过程中,Bug处理会处于不同状态,请设计Bug管理中从发现到关闭必须经历状态名称。4、企业内部测试部在测试"主生产计划制定"模块过程中,使用30个测试案例进行测试,共发现10个问题。开发组对软件修改后,向测试组提交问题修改报告及修改后软件。问题修改报告中提出:其中3个问题是用户需求,不是错误,无需修改,其余7个问题已修改完成。测试组使用上轮测试中发现这7个问题5个测试案例进行了回归测试,确认问题已得到修改,因此测试组决定,当前版本可以进入配置管理库,进行后续集成工作。测试组做法是否有问题?为什么?如果有问题,应写出正确做法。
逻辑覆盖法是设计白盒测试用例主要方法之一,它是通过对程序逻辑结构遍历实现程序覆盖。针对以下由C 语言编写程序,按要求回答问题。 main( ){int i,n; //1for(i=1;iimage.png7;i++){ //2n=0; if(i!=1) //3 n=n+1; //4 if(n==5){ //5printf("Hello!"); //6 }else{ printf("No!"); //7} }printf("GAME OVER!"); //8 } 问题1:请给出满足100%DC(判定覆盖)所需逻辑条件。问题2:请画出上述程序控制流图,并计算其控制流图环路复杂度V(G)。问题3:请给出【问题2】中控制流图线性无关路径。
逻辑覆盖法是设计白盒测试用例主要方法之一,它是通过对程序逻辑结构遍历实现程序覆盖。针对以下由C 语言编写程序,按要求回答问题。
main( ){ int i,n; //1 for(i=1;iimage.png5;i++){ //2 n=0; if(i!=1) //3 n=n+1; //4 if(i==3) //5 n=n+1; //6 if(n==3) //7 printf("Hello!"); //8 }} //9 问题1:请给出满足100%DC(判定覆盖)所需逻辑条件。问题2:请画出上述程序控制流图,并计算其控制流图环路复杂度V(G)。问题3:请给出【问题2】中控制流图线性无关路径。
某飞行器供油阀控制软件通过控制左右两边油箱BL、BR,向左右发动机 EL、ER 供油,既要保证飞行器安全飞行,又要保证飞行器平衡,该软件主要完成功能如下:(1)无故障情况下,控制左油箱 BL 向左发动机 EL 供油,右油箱BR向右发动机 ER供油,不上报故障;(2)当左油箱 BL 故障时,控制右油箱BR分别向左、右发动机EL 和 ER 供油,并上报二级故障一一左油箱故障;(3)当右油箱 BR故障时,控制左油箱BL 分别向左、右发动机EL 和 ER 供油,并上报二级故障一一右油箱故障;(4)当左发动机EL 故障时,根据左右油箱剩油量决定(如果左右油箱剩油量之差大于等于 50 升,则使用剩油量多油箱供油,否则同侧优先供油)左油箱BL 还是右油箱 BR 向右发动机 ER 供油,并上报一级故障——左发动机故障;(5)当右发动机ER故障时,根据左右油箱剩油量决定(如果左右油箱剩油量之差大于等于 50 升,则使用剩油量多油箱供油,否则同侧优先供油)左油箱且还是右油箱 BR 向左发动机BL 供油,井上报一级故障——右发动机故障;(6)当一个油箱和一个发动机同时故障时,则无故障油箱为无故障发动机供油, 并上报一级故障——故障油箱和发动机所处位置;(7)当两个油箱或两个发动机同时故障或存在更多故障时,则应进行双发断油控制, 并上报特级故障——两侧油箱或两侧发动机故障;(8)故障级别从低级到高级依次为二级故障、一级故障和特级故障,如果低级故障和高级故障同时发生,则只上报最高级别故障。
【问题1】覆盖率是度量测试完整性一个手段,也是度量测试有效性一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、条件覆盖率和 MC/DC 覆盖率作为度量指标。在实现第 6 条功能时,设计人员采用了下列算法:if ((BL==故障) && ( EL==故障)){BR供油ER;BL断油;EL断油;}if ((BL==故障) && ( ER==故障))、{BR供油EL;BL断油;ER断油;}if ((BR==故障) && ( EL==故障)){BL供油ER;BR断油;EL断油;}if ((BR=故障) && ( ER==故障)){BL供油EL;BR断油;ER断油;}请指出对上述算法达到 100%语句覆盖、100%条件覆盖和 100%MC/DC 覆盖所需最少测试用例数目,填写下表中空(1)~(3)。
【问题2】为了测试此软件功能,测试人员设计了下表所示测试用例,请填写该表中空(1)~(12)。
【问题3】常见黑盒测试测试用例设计方法包括等价类划分、决策表、因果图、边界值分析等。测试人员在针对本题设计测试时,使用哪种测试用例设计方法最恰当?
逻辑覆盖法是设计白盒测试用例主要方法之一,它是通过对程序逻辑结构遍历实现程序覆盖。针对以下由Java语言编写程序,按要求回答问题。
问题1:请简述基本路径测试法概念。
问题2:请画出上述程序控制流图,并计算其控制流图环路复杂度V(G)。
问题3:请给出【问题2】中控制流图线性无关路径。
逻辑覆盖法是设计白盒测试用例主要方法之一,它是通过对程序逻辑结构遍历实现程序覆盖。针对以下由C 语言编写程序,按要求回答问题。
问题1:请针对上述C程序,给出满足100%DC(判定覆盖)所需逻辑条件。
问题2:请画出上述程序控制流图,并计算其控制流图环路复杂度V(G)。
问题3:请给出【问题2】中控制流图线性无关路径。
逻辑覆盖法是设计白盒测试用例主要方法之一,它是通过对程序逻辑结构遍历实现程序覆盖。针对以下由C 语言编写程序,按要求回答问题。
问题1:请给出满足100%DC(判定覆盖)所需逻辑条件。
问题2:请画出上述程序控制流图,并计算其控制流图环路复杂度V(G)。
问题3:请给出【问题2】中控制流图线性无关路径。