软件工程一元二次方程白盒测试

合集下载

一元二次方程软件测试

一元二次方程软件测试

一元二次方程软件测试1简介背景该测试报告根据测试用例编写,主要依据为组员编写的测试用例.包括白盒测试和黑盒测试的执行和对测试结果的分析,书写.主要任务包括:1.听取小组关于测试工具的讲解2.阅读小组程序设计说明和测试目标3.根据测试计划,测试方法执行测试4.分析和书写测试报告5.整理测试资源参考资料1.软件的详细设计和测试用例2.关于Logiscope和QTP的具体操作2测试概要该测试报告已表格的形式展现每一项测试的标识符及其测试内容,并给出了详细的说明.白盒测试测试路径编号输入参数预期结果执行结果测试是否通过路径1 a=0,b=12,c=12 方程不是一个二次方程方程不是一个二次方程是路径2 ;路径逻辑上不成立路径3 a =-1,b=2,c=-4 方程没有实数根,方程有虚数根x1=-1-1.7321iX2=-1+1.7321i 方程没有实数根,方程有虚数根x1=-1-1.7321iX2=-1+1.7321i是路径4 逻辑上不成立路径5 a =1,b=2,c=4 方程没有实数根,方程有虚数根x1=-1+1.7321iX2=-1-1.7321i 方程没有实数根,方程有虚数根x1=-1+1.7321iX2=-1-1.7321i是路径6 a =1,b=2,c=1 方程有两个相等实数,并且为整数根,-1 方程有两个相等实数,并且为整数根,-1是路径7 a =1,b=1,c=0.25 方程有两个相等实数,并且不为整数根,-0.5 方程有两个相等实数,并且不为整数根,-0.5是路径8 a =1,b=4,c=3 方程有两个不相等实数,并且为整数根,-1,-3 方程有两个不相等实数,并且为整数根,-1,-3是路径9 a =6,b=7,c=1 方程有两个不相等实数,并且为一个整数根,一个非整数根,-1,-0.1667 方程有两个不相等实数,并且为一个整数根,一个非整数根,-1,-0.1667是路径10 a =1 b=6,c=7 方程有两个不相等实数,并且为都不是整数根,-1.5858,-4.4142 方程有两个不相等实数,并且为都不是整数根,-1.5858,-4.4142是以上测试均通过黑盒测试:测试用例标识预计;两根a1,a2输入a,b,c覆盖有效等价类编号预期输出测试用例标识预计两根a1,a2输入a,b,c覆盖有效等价类编号预期输出TC1 a1=2,a2=3;1,-5,61,2,4-7,两不相等整数根根,TC9 虚根1,1,1 5,6,7,13两根为需根:a1= -0.5+0.866ia2=-0.5-0.866i;TC2 a1=2,a2=2;1,-4,41-7两个相等的整数根TC1无0,1,1 5,7,20 方程不是一个二次方程TC3 a1=1.2 1,2.41,4-7,11,两个相等TC1无1,x,x 14 请输入一个数a2=1.2 ,1.44 12 的非整数根1TC4 a1=-2;a2=3;1,1,-62,4-8两个整数根,一根为负数TC12无x,1,x 15 请输入一个数TC5 a1=-2;a2=-31,5,62,4,5,6,7,9两整数根,都为非正数TC13无x,x,1 16 请输入一个数TC6 a1=-2;a2=-2;1-4,4 2-7,9,12,两相等的非正数根TC14无1,1,x 17 请输入一个数TC7 a1=1.2;a2=2;1,3.2,2.41,4,5,6,7,10一根为整数一根为非整数TC15无x,1,1 18 请输入一个数TC8 a1=1.2a2=-21,-0.8,-2.44-8,10一根为负数,且一根为非整数TC17无1,x,1 19 请输入一个数TC18无0,1,1 5,7,20 方程不是二次方程TC19无-100.1,1,15,21 请填入一个-100-100之间的数TC2无100.1,1,15,22 请填入一个-100-100之间的数TC21无1,-100,1,15,23 请填入一个-100-100之间的数TC22无1,100,1,15,24 请填入一个-100-100之间的数TC23无1,1,-100.15,25 请填入一个-100-100之间的数TC24无1,1,100.15,26 请填入一个-100-100之间的数3测试报告分析测试报告分析经上述测试,已基本正是了该软件的能力.测试环境和实际运行环境相同.该软件已达到了预定设计,可以正常使用.测试报告和资源测试过程中生成的报告分别放在以下位置: 说明工程文件夹说明类型白盒测试测试工程源代码Res\aduit\11.ttw Aduit项目源码Res\rule\12.ttw rule项目源码测试工程报告Res\aduit\11auditAduit项目测试报告Res\rule\12.auditRule项目测试报告被测项目源代码一元二次方程的根一元二次方程的根C++项目源代码黑盒测试测试工程源代码一元二次方程的根QTPTest2QTP脚本一一元二次方程的根QTPTest3QTP脚本二测试工程报告一元二次方程的根QTPTest2Report脚本一生成的报告一元二次方程的根QTPTest3Report脚本二生成的报告被测软件一元二次方程的根.exe待测试的软件4使用Logiscope 测试Audit项目1.质量评估报告2.CmyDlg:OnButton2的函数流程图3. 度量元检测结果4. 函数质量标准检测结果5. 系统度量元检测结果6.类度量元的检测结果Table 1 类度量元的检测结果7.类质量准则的检测结果8. 父类、子类之间的派生关系9.类与类之间的使用关系RuleChecker项目1.代码检测结果2.查看不符合规范的代码TestChecker项目1.程序总的路径的覆盖率(使用上述逻辑上成立的8个测试用例)2.CMyDlg::OnButton2函数路径的覆盖率3.CMyDlg::OnButton2函数的功能覆盖情况(可看出已全部覆盖)4.显示到目前为止程序总的覆盖率,即所有测试用例的覆盖率之和。

(完整版)白盒测试练习及答案

(完整版)白盒测试练习及答案

1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。

为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。

若x, y是两个变量,可供选择的测试用例组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是( B )或( C );实现条件覆盖至少应采取的测试用例组是( D );实现路径覆盖至少应采取的测试用例组是( E )或( F )。

供选择的答案A:① 语句覆盖② 条件覆盖③ 判定覆盖④ 路径覆盖B~F:① Ⅰ和Ⅱ组② Ⅱ和Ⅲ组③ Ⅲ和Ⅳ组④ Ⅰ和Ⅳ组⑤ Ⅰ、Ⅱ、Ⅲ组⑥ Ⅱ、Ⅲ、Ⅳ组⑦ Ⅰ、Ⅲ、Ⅳ组⑧ Ⅰ、Ⅱ、Ⅳ组解答:A. ④ B. ⑤ C. ⑧ D. ④ E. ⑤ F. ⑧2. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到条件覆盖。

( B )int func(int a,b,c){ int k=1;if ( (a>0) || (b<0) || (a+c>0) ) k=k+a;else k=k+b;if (c>0) k=k+c;return k;}A. (a,b,c) = (3,6,1)、(-4,-5,7)B. (a,b,c) = (2,5,8)、(-4,-9,-5)C. (a,b,c) = (6,8,-2)、(1,5,4)D. (a,b,c) = (4,9,-2)、(-4,8,3)3. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定覆盖。

(D )int func(int a,b,c){ int k=1;if ( (a>0) &&(b<0) && (a+c>0) ) k=k+a;else k=k+b;if (c>0) k=k+c;return k;}A. (a,b,c) = (3,6,1)、(-4,-5,7)B. (a,b,c) = (2,5,8)、(-4,-9,-5)C. (a,b,c) = (6,8,-2)、(1,5,4)D. (a,b,c) = (4,-9,-2)、(-4,8,3)4. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定条件覆盖。

软件测试中的白盒测试方法

软件测试中的白盒测试方法

软件测试中的白盒测试方法白盒测试是软件测试过程中一种非常重要的测试方法,旨在检验和验证软件系统内部的逻辑结构、设计和代码的正确性。

与黑盒测试不同,白盒测试可以深入了解软件系统的内部机制和工作原理,因此可以更加细致和全面地测试软件系统。

本文将介绍几种常用的白盒测试方法。

一、静态代码分析静态代码分析是一种通过直接检查源代码或目标代码的方法,发现软件系统中隐藏的潜在缺陷或错误。

它不需要运行测试用例,只需要分析代码本身。

静态代码分析工具可以帮助开发人员找到编程错误、潜在的安全漏洞以及其他不符合编码规范的问题。

常见的静态代码分析工具包括Lint、PMD和FindBugs等。

二、控制流测试控制流测试是一种基于程序的控制流结构,设计测试用例来覆盖不同的路径和决策点。

通过控制流测试,我们可以检查程序在执行过程中的控制结构是否正确,是否存在死循环、无限递归等问题。

常用的控制流测试方法包括基本路径测试和路径覆盖测试。

基本路径测试旨在从所有可能的路径中选择出一组最小路径,并设计测试用例来覆盖这些路径。

路径覆盖测试则试图覆盖尽可能多的路径组合,包括语句覆盖、分支覆盖和条件覆盖等。

三、数据流测试数据流测试是一种基于程序的数据流分析,通过追踪和分析程序中数据的定义、引用和使用等信息,设计测试用例来发现和验证数据流问题。

数据流测试主要关注程序内部的数据处理和传递,包括探测未初始化变量、数据依赖关系和数据定义-引用不一致等问题。

在数据流测试中,常用的方法有数据定义-使用测试和数据逻辑测试。

数据定义-使用测试旨在查找未使用的变量、未定义的变量和重复定义的变量等问题。

数据逻辑测试则试图发现数据处理的逻辑错误,比如数据传递错误、数据转换错误等。

四、语句覆盖和分支覆盖测试语句覆盖和分支覆盖测试是白盒测试中常用的方法之一。

语句覆盖测试要求测试用例覆盖被测试程序中的每一条语句。

通过这种方式,我们可以确保每一行代码都被执行到。

分支覆盖测试则要求测试用例覆盖程序中的每一个分支,包括if语句、switch语句等。

白盒测试的内容是什么

白盒测试的内容是什么

白盒测试的内容是什么白盒测试,又称为结构化测试或透明盒测试,是一种测试方法,旨在检查软件系统的内部结构和逻辑,以确保其功能正常且符合预期。

与黑盒测试侧重于功能和用户体验不同,白盒测试关注的是代码的覆盖率和质量,帮助开发人员发现和修复潜在的代码缺陷和漏洞。

白盒测试的主要内容1.代码覆盖率测试–语句覆盖:确保每个代码语句都被执行过至少一次。

–分支覆盖:检查每个控制结构的每个分支是否都被覆盖。

–条件覆盖:测试每个条件语句的每个取值情况。

2.代码质量评估–静态代码分析:通过工具分析代码,查找代码中潜在的错误和不规范之处。

–代码审查:由开发者、测试人员等对代码进行仔细检查,发现潜在问题。

3.单元测试–测试单元:以函数、方法或模块为单位进行测试,验证其功能的正确性。

–覆盖所有路径:确保每个代码路径都被覆盖到,包括正常路径和异常路径。

4.集成测试–测试模块间的交互:确保不同模块之间的接口和数据交换正常工作。

–检查系统整体功能:验证整个系统的功能以及各部分的协调性。

5.性能测试–查找性能瓶颈:通过模拟不同负载下的系统运行来评估系统的性能。

–测量资源消耗:分析系统在不同工作量下的资源消耗情况,如 CPU 使用率、内存占用等。

白盒测试的优势•早期发现问题:白盒测试能够在代码编写阶段就发现潜在问题,有利于早期修复。

•提高代码质量:通过代码覆盖率和质量评估,帮助提高代码质量和可维护性。

•减少后期成本:及早发现并解决问题可以降低软件维护和修复成本。

总的来说,白盒测试是一种全面、深入的测试方法,可以有效地提高软件质量,减少软件项目中的风险和错误。

通过不同的测试内容和方法,白盒测试可以帮助开发团队更好地了解和掌握软件系统的内部结构,从而提供更稳定、可靠的软件产品。

软件工程的白盒和黑盒测试归纳

软件工程的白盒和黑盒测试归纳

软件工程的白盒和黑盒测试归纳一、黑盒测试和白盒测试APP测试中黑盒测试:产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,全部内部成分是否经过检查。

1.第一熟悉:黑盒测试测试特点:测试功能;测试依据:需求规格说明书方法举例:等价类划分、边界值测试优点:能站在用户的立场上进行测试缺点:不能测试程序内部特定部位,如程序有误,那么无法觉察。

白盒测试测试特点:测试程序接口与结构测试依据:软件程序方法举例:规律掩盖优点:对程序内部特定部位进行掩盖测试。

缺点:无法检验程序外部特性。

2.其次熟悉:黑盒测试把程序看作一个不能翻开的黑盒子,在完全不考虑程序内部结构和内部特性的状况下,针对“软件界面”和“软件功能“进行测试,只检查功能是否符合需求规格说明书能正常使用。

因此黑盒测试又叫功能测试或数据驱动测试。

白盒测试是对软件的过程性细节做细致的检查。

这种方法是把测试对象看作一个翻开的盒子,他允许测试人员采用程序内部的规律结构及有关信息,设计或选择测试用例,对程序全部规律路径进行测试。

通过在不同点检查程序状态,确定实际状态是否与预期的状态全都。

因此白盒测试又称为”结构测试“或”规律驱动测试白盒测试是根据程序内部的结构来测试程序,通过测试检验产品内部动作是否根据设计规格说明书的要求正常进行,检验程序中的每条通道是否都根据规定正常工作。

3•第三熟悉:黑盒测试主要是为了觉察以下错误:(1)是否有不正确或者遗漏了的功能;(2)在接口上,输入能否正确的接受?能否输出正确的结果?(3)是否有数据结构错误或外部信息(例如数据库文件)访问错误?(4)性能上是否能够满意要求?(5)是否有初始化或终止性错误?黑盒的测试用例技术设计有三种:边界值分析、等价类划分、错误推想法。

白盒测试主要是想对程序模块进行以下检查:(1)对程序模块的全部独立的执行路径至少测试一遍;(2)对全部的规律判定,取“真“与”假”的两种状况都能至少测一遍;(3)在循环的边界和运行的界限内执行循环体;(4)测试内部数据结构的有效性,等等;(5)静态白盒测试:即代码审查,正式审查和检验设计和程序代码;(6)动态白盒测试采用查看代码功能和实现方式得到的信息来设计和执行测试,也叫结构测试;白盒的测试用例技术包括:规律掩盖和基本路径测试。

软件测试_白盒测试

软件测试_白盒测试

12
控制流图中节点合并
有的时候,我 们可以把几个 节点合并成一 个, 合并的原则: 若在一个节点 序列中没有分 支,则我们可 以把这个序列 的节点都合并 成一个节点。
4 5 6 9
10 12 13 21 15 17 19 20 22 23
22 23 20
7
8
4
9
11
10 12 13
11
14 16 18
Dim a,b As Integer Dim c As Double If (a>0 And b>0) Then c=c/a End if If (a>1 or c>1) Then c=c+1 End if c=b+c
a>0 and b>0 N a>1 or c>1 N c=b+c
Y
c=c/a
Y
c=c+1
21 15
14 16 17 19 18
13
逻辑覆盖法
覆盖测试,是利用程序的逻辑结构设计相应 的测试用例。测试人员要深入了解被测程序 的逻辑结构特点,完全掌握源代码的流程, 才能设计出恰当的用例。 白盒测试中的逻辑覆盖方法有以下6种:

语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖
28
4.判定-条件覆盖
基本思想是:设计足够的测试用例,使得 判断条件中的所有条件可能至少执行一次 取值,同时,所有判断的可能结果至少执 行一次。
29
1
4.判定-条件覆盖……续1
按照判定-条件覆盖 的要求,我们设计的 测试用例要满足如下 条件: 1. 所有条件可能至少执 行一次取值; 2. 所有判断的可能结果 至少执行一次。

白盒测试的6种方法

白盒测试的6种方法

⽩盒测试的6种⽅法程序图:1. 语句覆盖定义:选择⾜够的测试⽤例,使得运⾏这些测试⽤例时,被测试程序的每个语句⾄少执⾏⼀次测试数据: x=4,y=2,z=02. 判定覆盖定义:选择⾜够的测试⽤例,使得运⾏这些测试⽤例时,每个判定的所有可能结果⾄少出现⼀次测试数据:1. x=3, y=3, z=0 (sacbd a为真,b为假)2. x=1, y=2, z=0 (sabed a为假,b为真)3. 条件覆盖定义:选择⾜够的测试⽤例,使得选择这些测试⽤例时,判定中的每个条件的所有可能结果⾄少出现⼀次测试数据:1. x=1,y=2,z=0 (sacbed)2. x=2,y=1,z=1 (sabed)问题:满⾜了条件覆盖标准,但判定B为假的结果并未发现4. 条件/判定覆盖定义:选择⾜够的⽤例,使得运⾏这些⽤例时,判定中每个条件的所有可能结果⾄少出现⼀次,并且每个判定结果也出现⼀次测试数据:1. x=4,y=2,z=0 (sacbed, a为真,b为真)2. x=1,y=1,z=1 (sabd, a为假,b为假)5. 条件给合覆盖定义:每个判定中条件结果的所有可能组合⾄少出现⼀次测试数据:判断a的条件组合:1. y>1,z=02.y>1,z!=03. y<=1,z=04.y<=1,z!=0判断b的条件组合:可以选择4个测试⽤例来覆盖:x=4,y=2,z=0 (sacbed)x=1,y=2,z=1 (sabed)x=2,y=1,z=0 (sabed)x=1,y=1,z=1 (sabd)有些路还是覆盖不到 sacbd6. 路径覆盖定义:程序的每条可能执⾏到的路径⾄少经过⼀次数据:1. x=4,y=2,z=0 (sacbed)2. x=3,y=3,z=0 (sacbd)3. x=2,y=1,z=0 (sabed)4. x=1,y=1,z=1 (sabd)问题:不能代替条件覆盖和条件组合覆盖。

软件工程习题(1)

软件工程习题(1)

3.输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。

使用流程图、PAD图4、什么是判定/条件覆盖?为以下程序流程图设计判定/条件覆盖测试用例并标明程序执行路径。

判定/条件覆盖——它是指设计足够的测试用例,即满足条件覆盖又满足判定覆盖。

测试用例:x=2,y=0,z=3(覆盖x>1,y=0,x=2,z>1,通过路径abcde);x=1,y=1,z=1(覆盖x≤1,y≠0,x≠2,z≤1,通过路径ace)。

5、根据下列条件使用等价类划分法设计测试用例。

(书P118 例)某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065(1)划分等价类并编号,如下表示:(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子(3)为不合理等价类测试用例,至少设计一个测试用例6、将下面给出的伪码转换为N-S 图。

(8分)void root ( float root1, float root2 ) { i = 1; j = 0; while ( i <= 10 ) {输入一元二次方程的系数a, b, c; p = b*b – 4*a*c;if ( p < 0 ) 输出“方程i 无实数根”; else if ( p > 0 ) 求出根并输出; if ( p == 0 ) {求出重根并输出; j = j + 1; }i = i +1; }输出重根的方程的个数j; }7、某航空公司规定,乘客可以免费托运重量不超过30kg 的行李。

当行李重量超过30kg 时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。

用判定树表示与上述每种条件组合相对应的计算行李费的算法。

i = 1; j = 0; while ( i <= 10 ) 输入a, b, c; 计算 p = b 2 - 4ac ; p < 0 ? 输出“方程i ”无求出根并输出 ↓p > 0 ? p == 0 ? 求出重根并输出; j = j + 1; ↓i = i + 1; 输出重根的方程个数i T T T F FF8、使用PAD图描述在数组A(1)~A(10)中找最大数的算法9、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.完成软件白盒测试技术中的逻辑覆盖测试应用设计实验。

(理论考试重点内容实践)
一元二次方程白盒测试要求
1)自备C语言程序(可从C语言程序设计的教科书上摘录若干典型程序,其他C++、C#、Java 程序均可);
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float a,b,c,mid,x1,x2,real,image;
cout << "请输入三个实数:";
cin >>a>>b>>c;
cout <<"\n方程";
if(fabs(a)<= 0)
cout << "不是二次方程,解为:"<< -c/b<<endl;
else {
mid= b*b-4*a*c;
if(fabs(mid)<= 0)
cout <<"有两个相等的实数根:"<<-b/(2*a)<<endl;
else if (mid>0)
{
x1=(-b+sqrt(mid))/(2*a);
x2=(-b-sqrt(mid))/(2*a);
cout << "有两个不相等的实数根:"<<x1<<"和"<< x2 <<endl;
}
else
{
x1 = -b/(2*a);
x2 = sqrt(-mid)/(2*a);
cout <<"有两个复数根:"<<endl;
cout << real <<"+" <<image <<"i"<<endl;
cout << real <<"-" <<image <<"i"<<endl;
}
}
}
2)根据该程序绘制对应的程序流程图;
3)分别根据程序流程图给出符合语句覆盖、判定覆盖、条件覆盖、路径覆盖以及判定/条件覆盖和条件组合覆盖的的测试用例以及预期的运行结果;
判定覆盖、条件覆盖、路径覆盖以及判定/条件覆盖和条件组合覆盖
4)根据程序流程图画出流图,并确定线性独立路径的基本集合,然后给出符合各集合的测试用例;
路径1:1-2-12
路径2:1-2-3-4-5-10-11
路径3:1-2-3-4-6-7-9-10-11
路径4:1-2-3-4-6-8-9-10-11
5)根据上述测试用例执行程序,对比实际运行结果和预期运行结果,结果比对最好采用表格的形式。

6)对以上实验结果进行适当地分析与总结。

本次实验主要是运用白盒测试的方法,设计测试用例。

白盒测试主要包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。

白盒测试试图穷举路径测试,一般来说,穷举路径测试是不可能的,即使每条路径都测试了,也还是有可能出错。

通过本次实验,还了解了各种覆盖的区别与联系。

相关文档
最新文档