1407040248_周立群_白盒测试试题

合集下载

白盒测试方法习题及含答案

白盒测试方法习题及含答案

[ 试题分类 ]: [04]白盒测试方法/[0400][综合]白盒测试方法1.下边不属于白盒测试能保证的是。

A. 模块中所有独立门路起码测试一次B. 测试所以逻辑决议真和假两个方面D.不正确或遗漏的功能答案 :D分数 :1题型 :单项选择题难度 :12.因果图方法是依据()之间的因果关系来设计测试用例的。

A.输入与输出B.设计与实现C.条件与结果D.主程序与子程序答案 :A分数 :1题型 :单项选择题难度 :13.使用白盒测试方法时,确立测试数据应依据()和指定的覆盖标准。

A.程序的内部逻辑B.程序的复杂程度C.使用说明书D.程序的功能答案 :A分数 :1题型 :单项选择题难度 :14.软件测试中常用的静态剖析方法是()和接口剖析。

A.引用剖析B.算法剖析C.靠谱性剖析D.效率剖析答案 :A分数 :1题型 :单项选择题难度 :15.软件测试中常用的静态剖析方法是引用剖析和()。

A.引用剖析B.算法剖析C.靠谱性剖析D.接口剖析答案 :D分数 :1题型 :单项选择题难度 :16.白盒方法中常用的方法是()方法。

A.路径测试B.等价类C.因果图D.概括测试答案 :A分数 :1题型 :单项选择题难度 :17.在软件工程中,白箱测试法可用于测试程序的内部构造。

此方法将程序看作是()A.路径的会合B.循环的会合C.目标的会合D.地点的会合答案 :A分数 :1题型 :单项选择题难度 :18.软件测试白箱测试是对软件的构造进行测试,下述:Ⅰ .边沿值剖析Ⅱ .语句测试Ⅲ .分值测试Ⅳ .路经测试()是其应包含的内容。

A. ⅠB. Ⅱ和ⅢC.Ⅲ和ⅣD. Ⅱ .Ⅲ和Ⅳ答案 :D分数 :1题型 :单项选择题难度 :19.在进行单元测试时,常用的方法是()。

A.采纳白盒测试,辅之以黑盒测试B.采纳黑盒测试,辅之以白盒测试D.只合用黑盒测试答案 :A分数 :1题型 :单项选择题难度 :110. 白盒测试法一般使用于()测试。

白盒测试试题答案

白盒测试试题答案

先看以下代码:/** 白盒测试逻辑覆盖测试范例*/int logicExample(int x, int y){int magic=0;if(x>0 && y>0){magic = x+y+10; // 语句块1}else{magic = x+y-10; // 语句块2}if(magic < 0){magic = 0; // 语句块3}return magic; // 语句块4}解答:一般做白盒测试不会直接根据源代码,而是根据流程图来设计测试用例和编写测试代码,在没有设计文档时,要根据源代码画出流程图:做好了上面的准备工作,接下来就开始讲解六个逻辑覆盖标准:一、语句覆盖1、概念:设计足够多的测试用例,使得被测试程序中的每条可执行语句至少被执行一次。

在本例中,可执行语句是指语句块1到语句块4中的语句。

2、测试用例:{x=3, y=3}可以执行到语句块1和语句块4,所走的路径:a-b-e-f{x=-3, y=0}可以执行到语句块2、语句块3和语句块4,所走的路径:a-c-d-f这样,通过两个测试用例即达到了语句覆盖的标准,当然,测试用例(测试用例组)并不是唯一的。

3、测试的充分性:假设第一个判断语句if(x>0 && y>0)中的“&&”被程序员错误地写成了“||”,即if(x>0 || y>0),使用上面设计出来的一组测试用例来进行测试,仍然可以达到100%的语句覆盖,所以语句覆盖无法发现上述的逻辑错误。

在六种逻辑覆盖标准中,语句覆盖标准是最弱的。

二、判断覆盖(分支覆盖)1、概念:设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。

在本例中共有两个判断if(x>0 && y>0)(记为P1)和if(magic < 0)(记为P2)。

2、测试用例:两个判断的取真、假分支都已经被执行过,所以满足了判断覆盖的标准。

1407040248_周立群_白盒测试试题详解

1407040248_周立群_白盒测试试题详解
10 j=j%3;
11 }
说明:程序段中每行开头的数字(1~10)是对每条语句的编号。
(1) 画出程序的控制流图(用题中给出的语句编号表示)。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
答:语句覆盖x=4y=5 z=9执行路径:1 2 34 5 6 7 8 9 10 11判定覆盖取:1:x=4y=5 z=9执行路径:1 2 34 5 6 7 8 9 10 11 2:x=4 y=5 z=9执行路径:1 2 7 9 10 11条件覆盖取:1:x=4 y=5 z=9执行路径:1 2 3 4 5 6 7 8 910 11 2:x=5 y=6 z=11执行路径:1 2 7 9 10 11路径覆盖取:1:x=5 y=6 z=11执行路径:1 2 34 5 6 7 8 9 10 11 2:x=5 y=6 z=11执行路径:1 2 7 9 10 11
答:白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。逻辑覆盖包含多种:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。
语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。这里的“若干个”,意味着使用测试用例越少越好。
例如上边的Coverage类代码,从path a到path c再到path e的路径就是所有可执行的语句路径,所以选择path ace路径设计测试用例即可覆盖所有可执行语句。
publicbooleanisDate(intyear,intmonth,intday) {
booleanflag =true;
if((year < 0) || (year > 2050)) {

白盒测试用例练习题(1)

白盒测试用例练习题(1)

白盒测试用例练习题(1)白盒测试用例练习1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。

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); //语句块1} if ( (x==4)||(y>5) ) {j=x*y+10;} //语句块2 j=j%3; //语句块3 }a Y cN be YN dx>3 and z<10 x=4 or y>5 j=j%3 j=x*y+10k=x*y-1j=sqrt(k)k=0j=0由这个流程图可以看出,该程序模块有4条不同的路径:P1:(a-c-e) P2:(a-c-d)P3:(a-b-e) P4:(a-b-d)将里面的判定条件和过程记录如下:判定条件M={x>3 and z<10}判定条件N={x=4 or y>5}1、语句覆盖测试用例输入输出判定M的取值判定N的取值覆盖路径x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e)2、判定覆盖p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。

测试用例输入输出判定M的取值判定N的取值覆盖路径x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e)x=2,z=11,y=5 k=0,j=0 F F P4(a-b-d)也可以让测试用例测试路径P2和P3。

相应的两组输入数据如下:测试用例输入输出判定M的取值判定N的取值覆盖路径x=5,z=5,y=4 k=19,j=sqrt(19)%3 T F P2(a-c-d) x=4,z=11,y=6 k=0,j=1 F T P3(a-b-e)3、条件覆盖对于M:x>3取真时T1,取假时F1;z<10取真时T2,取假时F2;对于N:x=4取真时T3,取假时F3;y>5取真时T4,取假时F4。

白盒测试逻辑覆盖练习题

白盒测试逻辑覆盖练习题

白盒测试逻辑覆盖练习题一、语句覆盖if (a > 0 && b > 0) {c = a + b;} else {c = 0;}def check_age(age):if age < 18:return "未成年"elif age >= 18 and age < 60:return "成年人"else:return "老年人"二、分支覆盖if (x > 0) {if (y > 0) {printf("第一象限");} else {printf("第四象限");}} else {if (y > 0) {printf("第二象限");} else {printf("第三象限");}}function calculateGrade(score) {if (score >= 90) {return 'A';} else if (score >= 80) {return 'B';} else if (score >= 70) {return 'C';} else {return 'D';}}三、路径覆盖public int calculate(int a, int b) { if (a > 0) {if (b > 0) {return a + b;} else {return a b;}} else {if (b > 0) {return b a;} else {return 0;}}}public int Max(int a, int b, int c) { if (a > b) {if (a > c) {return a;} else {return c;}} else {if (b > c) {return b;} else {return c;}}}四、条件覆盖def check_password(password):if len(password) >= 8 and any(char.isdigit() for char in password):return "密码强度高"else:return "密码强度低"function validateForm(username, password) {if (username.length > 0 && password.length > 0) { return true;} else {return false;}}五、判定条件覆盖public boolean isEligible(int age, boolean hasLicense) {if (age >= 18 && hasLicense) {return true;} else {return false;}}int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i < num; i++) {if (num % i == 0) {return 0;}}return 1;}六、多条件覆盖public string GetGrade(int score, bool isFinalExam) { if (score >= 90 || (isFinalExam && score >= 80)) { return "A";} else if (score >= 80 || (isFinalExam && score >= 70)) {return "B";} else if (score >= 70 || (isFinalExam && score >= 60)) {return "C";} else {return "D";}}return "Eligible";} else {return "Not Eligible";}}七、条件组合覆盖def check_login(username, password, is_admin):if (username == "admin" or username == "user") and password == "56" and not is_admin:return "User logged in";elif (username == "admin" and is_admin) and password == "admin123":return "Admin logged in";else:return "Invalid credentials";public String authenticate(String username, String password, boolean hasTwoFactor) {if (username.equals("admin") &&password.equals("admin123") && hasTwoFactor) {return "Admin access granted";} else if (username.equals("user") &&password.equals("user123") && !hasTwoFactor) {return "User access granted";} else {return "Access denied";}}八、路径条件覆盖void processOrder(int quantity, float discount) {if (quantity > 10) {if (discount < 0.1) {printf("Order processed with standard discount");} else {printf("Order processed with special discount");}} else {printf("Order processed without discount");}}function calculateTotal(price, isMember, hasCoupon) { let total = price;if (isMember) {total = 0.9; // 10% discount for members}if (hasCoupon) {total = 0.95; // Additional 5% discount for coupon}return total;}九、修改条件/判定覆盖def upgrade_account(user_type, points):if user_type == "basic" and points >= 100:return "Upgrade to premium"elif user_type == "premium" and points >= 200:return "Upgrade to elite"else:return "No upgrade available"public String checkSubscription(String type, int duration) {if (type.equals("monthly") && duration >= 6) {return "Eligible for annual plan";} else if (type.equals("annual") && duration >= 12) {return "Eligible for lifetime plan";} else {return "Continue current plan";}}答案一、语句覆盖1. 测试用例:a=1, b=1;a=1, b=12. 测试用例:age=15;age=25;age=65二、分支覆盖1. 测试用例:x=1, y=1;x=1, y=1;x=1, y=1;x=1, y=12. 测试用例:score=95;score=85;score=75;score=65三、路径覆盖1. 测试用例:a=1, b=1;a=1, b=1;a=1, b=1;a=1, b=12. 测试用例:a=10, b=5, c=3;a=5, b=10, c=8;a=5, b=5, c=10;a=3, b=3, c=3四、条件覆盖1. 测试用例:password="567";password=""2. 测试用例:username="test", password="pass";username="", password=""五、判定条件覆盖1. 测试用例:age=20, hasLicense=True;age=17, hasLicense=False2. 测试用例:num=2;num=1;num=0;num=1六、多条件覆盖1. 测试用例:score=95, isFinalExam=False;score=85, isFinalExam=True;score=75, isFinalExam=False;score=65, isFinalExam=True七、条件组合覆盖1. 测试用例:username="admin", password="admin123",is_admin=False;username="user", password="56",is_admin=False;username="admin", password="admin123",is_admin=True2. 测试用例:username="admin", password="admin123", hasTwoFactor=True;username="user", password="user123", hasTwoFactor=False;username="admin", password="wrong", hasTwoFactor=True八、路径条件覆盖1. 测试用例:quantity=15, discount=0.05;quantity=8, discount=0.05;quantity=15, discount=0.22. 测试用例:price=100, isMember=True, hasCoupon=True;price=100, isMember=False, hasCoupon=False;price=100, isMember=True, hasCoupon=False九、修改条件/判定覆盖1. 测试用例:user_type="basic", points=50;user_type="basic", points=150;user_type="premium",points=150;user_type="premium", points=2502. 测试用例:type="monthly", duration=3;type="monthly", duration=9;type="annual", duration=9;type="annual", duration=15。

白盒测试及例题

白盒测试及例题

语句覆盖
为使程序中每个语句 至少执行一次,只需设计 一个能通过路径ace的例 子就可以了,例如选择输 入数据为: A=2,B=0,X=3 就可达到“语句覆盖” 标准。
语句覆盖
语句覆盖
从上例可看出,语句覆盖实际上是很 弱的,如果第一个条件语句中的AND错误 地编写成OR,上面的测试用例是不能发现 这个错误的;又如第三个条件语句中X>1 误写成X>0,这个测试用例也不能暴露它, 此外,沿着路径abd执行时,X的值应该保 持不变,如果这一方面有错误,上述测试 数据也不能发现它们。
1)A>1, B=0 3) A≤1, B=0 B≠0 5) A=2, X>1 7) A≠2, X>1 2) A>1, B≠0 4) A≤1, 6) A=2,X≤1 8) A≠2, X≤1
5)、 6)、 7)、8)四种情况是 第二个 IF语句的条件组合,而X的值 在该语句之前是要经过计算的,所以 还必须根据程序的逻辑推算出在程序 的入口点X的输入值应是什么。
白盒测试的主要目的:
• 保证一个模块中的所有独立路径至少被执 行一次; • 对所有的逻辑值均需要测试真、假两个分 支; • 在上下边界及可操作范围内运行所有循环; • 检查内部数据结构以确保其有效性。
测试覆盖标准
• 白盒法特点:以程序的内部逻辑为基础设计 测试用例,所以又称为逻辑覆盖法。应用白 盒法时,手头必须有程序的规格说明以及程 序清单。
条件组合覆盖
• 针对上述问题又提出了另一种标准——―条 件组合覆盖”。它的含义是:执行足够的 例子,使得每个判定中条件的各种可能组 合都至少出现一次。显然,满足“条件组 合覆盖”的测试用例是一定满足“分支覆 盖”、“条件覆盖”和“分支/条件覆盖” 的。

白盒测试习题

白盒测试习题

习题010401 逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语旬覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是( )。

语句段:if(A&&(B||C)) x=1;else x=0;用例表:A. ①TRUE ②FALSE ③TRUEB. ①TRUE ②FALSE ③FALSEC. ①FALSE ②FALSE ③TRUED. ①TRUE ②TRUE ③FALSE0402 针对以下程序段,对于(A,B,C)的取值,以下( )测试用例能够满足语句覆盖的要求。

IF((A+10)=2 OR (B-20)<3) THEN C=0IF((A+30)>10 AND (C-30)<0) THEN B=30A. (2,30,1)B.(-20,0,30)C. (-30,20,30)D. (2,20,3)0403 为以下程序段,设计足够的测试用例满足语句覆盖。

if (x>8&&y>5) {if(x>16||y>10) s1;}else {if (x>0||y>0) s2;else s3;0404 针对下列程序段,需要()个测试用例才可以满足语句覆盖的要求。

switch ( value ){case 0: other = 30; break;case 1: other = 50; break;case 2: other = 300;case 3: other = other / value; break;default: other = other * value;}0405 对下面的个人所得税程序中,满足语句覆盖测试用例的是( ) 。

if (income < 800) tarrate = 0else if (income <= 1500) tarrate = 0.05else if (income < 2000) tarrate = 0.08else tarrate = 0.1A.income = (800, 1500, 2000, 2001)B.income = (800, 801, 1999, 2000)C.income = (799, 1499, 2000, 2001)0406 阅读下列流程图:当用判定覆盖法进行测试时,至少需要设计( ) 个测试用例。

白盒测试作业题目-附答案

白盒测试作业题目-附答案

1.说出静态白盒测试的几个好处
答:进行静态白盒测试的首要原因是尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。

另一个好处是给黑盒测试人员提供思路。

2.判断是非:静态白盒测试可以找出需求遗漏之处和相关问题。

答:错误,因为静态白盒测试保证程序中所有关键路径的测试,防止由于没有执行的路径在实际投入运行后执行到发生意外的情况,但无法找出需求遗漏之处和相关问题。

3.正式审查由哪些关键要素组成?
答:确定问题、遵守规则、准备、编写报告
4.为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判
定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖
语句覆盖:
判定覆盖
条件覆盖
将X>8 真为T1,假为F1 将Y>5 真为T2,假为F2 将X>0 真为T3,假为F3 将Y>0 真为T4,假为F4 将X>16 真为T5,假为F5 将Y>10 真为T6,假为F6
判定/条件覆盖
条件组合覆盖
组合1:T1,T2 组合5:T3,T4 组合9:T5,T6 组合2:T1,F2 组合6:T3,F4 组合10:T5,F6 组合3:F1,T2 组合7:F3,T4 组合11:F5,T6 组合4:F1,F2 组合8:F3,F4 组合12:F5,F6
路径覆盖:
所有路径:a b c d e f g h k m n p
6. 按照基本路径测试方法设计测试用例
●画流图、计算环形复杂度
●导出独立路径
流图如下:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答:V(G)=e-n+2。其中,e表示控制流图中边的数量,n表示控制流图中节点的数量。其实,圈复杂度的计算还有更直观的方法,因为圈复杂度所反映的是“判定条件”的数量,所以圈复杂度实际上就是等于判定节点的数量再加上1,也即控制流图的区域数,对应的公式为:V(G)=区域数=判定节点数+1。V(G)=3+1=4或V(G)=5=3+2=4
4.请用逻辑覆盖和基路径测试方法对下面的java代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key的元素。
publicintbinSearch(intarray[],intkey) {
intmid, low, high;
low = 0;
high = array.length - 1;
publicbooleanisDate(intyear,intmonth,intday) {
booleanflag =true;
if((year < 0) || (year > 2050)) {
flag =false;
}
if((month < 1) || (month > 12)) {
flag =false;
}else{
switch(month) {
case1:
case3:
case5:
case7:
case8:
case10:
case12:
if((day > 31) || (day < 1)) {
flag =falቤተ መጻሕፍቲ ባይዱe;
}
break;
case4:
case6:
case9:
case11:
if((day > 30) || (day < 1)) {
二、简答题
1.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
答:1)、语句覆盖。就是选择足够的测试用例,使程序中的每个可执行语句至少执行一次。
2)、判定覆盖。就是执行足够的测试用例,使得程序中的每个判定的"true"和"false"值都至少执行一次,这种测试也称为“分支测试”。
3)、条件覆盖。执行足够的测试用例,使程序每个判定中的每个条件的"true"和"false"
}
}
returnt;
}
2.使用逻辑覆盖测试方法测试以下程序段:
voidDoWork (intx,inty,intz) {
1intk=0,j=0;
2if( (x>3)&&(z<10) ){
4 k=x*y-1;
5 j=sqrt(k);
6 }
7if((x==4)||(y>5)){
8 j=x*y+10;
9 }
}
5.设计判别一个整数x(x≥2)是否为素数的程序,并设计测试用例满足条件覆盖和基本路径覆盖。
答:
测试条件
测试数据
期待结果
小于2的整数
-12
输出错误信息
素数
67
素数
非素数
90
非素数
6.请用逻辑覆盖和基路径测试方法对下面的java代码进行测试。代码的功能是:输入三个数,判断它们是否为有效的日期(其中年小于2050)。
动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
4.举例说明结构性测试覆盖指标C0,C1,C1P,CMCC的区别。
答:结构性测试覆盖指标C0:所有语句。
C1:所有DD-路径(判断分支)
C1P:所有判断的每种分支
CMCC:多条件覆盖
5.常用的逻辑覆盖测试方法有哪几种?并简单描述各种方法的目的。
8.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。(X)
9.尽量用公共过程或子程序去代替重复的代码段。(X)
10.对于连锁型分支结构,若有n个判定语句,则有2n条路径。(√)
11.尽量采用复合的条件测试,以避免嵌套的分支结构。(√)
12.GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。(√)
leap =false;
}
}else{
leap =true;
}
}else{
leap =false;
}
returnleap;
}
(1)请画出以上代码的控制流图
答:
(2)请计算上述控制流图的圈复杂度V(G)(独立线性路径数)
答:V(G)=8-5+1=4,独立线性路径数:4
(3)假设输入的取值范围是0 < year < 2010,请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求。
答:白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。逻辑覆盖包含多种:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。
语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。这里的“若干个”,意味着使用测试用例越少越好。
例如上边的Coverage类代码,从path a到path c再到path e的路径就是所有可执行的语句路径,所以选择path ace路径设计测试用例即可覆盖所有可执行语句。
值至少执行一次。
4)、判定/条件覆盖。执行足够的测试用例,使得判定中每个条件的所有可能至少出现一次,同时每个判定本身的判定结果也至少出现一次。
5)、条件组合覆盖。执行足够的测试用例,使得每个判定中条件的各种可能组合至少出现一次。
6)、路径覆盖。执行足够的测试用例,要求覆盖程序中所有可能的路径
6.逻辑覆盖中几种主要覆盖的含义?举例说明?
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;
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
判定覆盖:有时也称分支覆盖,就是指设计若干测试用例,运行被测程序,使得每个判定的取真分支和取假分支至少经历一次。
例如上边的Coverage类代码,path ace,path abd,path abe,path acd四条路径均是符合判定覆盖要求的路径。
条件覆盖:设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。
7.什么是DD-路径?什么是MM-路径?DD-路径和MM-路径的区别与联系。
答:DD-路径是程序图中的一条链,使得:情况1:由一个节点组成,内度=0。情况2:由一个节点组成,外度=0。情况3:由一个节点组成,内度≥2或外度≥2。情况4:由一个节点组成,内度=1并且外度=1。情况5:长度≥1的最大链。使用数据流测试方
三、用例设计题
1.请用逻辑覆盖法对下面的java代码段进行测试。
publiccharfunction(intx,inty) {
chart;
if((x >= 90) && (y >= 90)) {
t = 'A';
}else{
if((x + y) >= 165) {
t = 'B';
}else{
t = 'C';
例如上边的Coverage类中第8行“if(A==2 or X>1)”代码,所有可能的条件组合为:“A==2,X>1”、“A==2,X<=1”和“A!=2,X>1”三种。在条件覆盖中仅需考虑到这三种的一种即可,而在条件组合覆盖中需要都考虑到。
路径覆盖:路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。路径覆盖是覆盖率最高的一种覆盖技术。
2.什么是白盒测试?白盒测试主要采用的技术有哪些?
答:白盒测试是通过对程序内部结构的分析、检测来寻找问题。词法分析与语法分析,静态错误分析,程序插桩技术。
3.白盒测试有那几种方法?并简单描述各种方法的特点。
答:白盒测试方法分为两大类:静态测试方法和动态测试方法。
静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。
3.以下代码由java语言书写,用于判断闰年。请按要求回答问题。
相关文档
最新文档