版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章,结构化实现,通常将编码和测试称为实现。编码是一种程序,它将软件设计翻译成计算机可以理解的形式,并用某种编程语言编写。作为软件工程的一个阶段,编码是设计的自然结果,所以程序的质量主要取决于软件设计的质量。然而,所选编程语言的特性和编码风格也将对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。5.1编码5.2软件测试基础5.3逻辑覆盖5.4控制结构测试5.5黑盒测试技术5.6测试策略5.7调试5.8软件可靠性5.9总结5.1编码5.1选择一般编程语言。高级语言明显优于汇编语言,因此,除了在非常特殊的应用领域(例如,对使用的执行时间和空间有严格的限制;必须生成任意甚至非法的指令序列;
2、具有特殊结构的微处理器使得在这样的机器上不可能实现高级语言编译器),或者在大型系统中执行时间很关键(或者直接依赖于硬件)的一小部分代码需要用汇编语言编写,其他程序应该总是用高级语言编写。为了使程序易于测试和维护,降低生命周期的总成本,所选择的高级语言应该具有理想的模块化机制和可读的控制结构和数据结构;为了便于调试和提高软件可靠性,语言特性应该使编译器能够尽可能多地发现程序中的错误。为了降低软件开发和维护的成本,所选择的语言应该具有良好的独立编译机制。这些要求是语言选择的理想标准,但在实际的语言选择中,我们不仅要考虑理论标准,还要考虑各种实际限制。5.1.2编码风格源代码的逻辑简洁明了,易于阅读
3、和理解,这是一个好程序的重要标准。为了实现这一点,应遵循以下规则。1.程序中的文档包括适当的标识符、适当的注释、程序的可视化组织等等。2.数据描述虽然数据结构的组织和复杂性已经在设计过程中确定,但是数据描述的风格是在编写程序时确定的。为了使数据更容易理解和维护,有一些简单的原则可以遵循。3.构建构造语句时应该遵循的原则是,每个语句都应该简单直接,并且为了提高效率,程序不应该变得太复杂。在设计和编写程序时,应考虑以下关于输入/输出风格的规则:检查所有输入数据;检查输入项重要组合的合法性;保持输入格式简单;使用数据结束标记,不要要求用户指定数据的数量;清楚地提示交互输入的请求,并指定可用的选择或边
4、界值;当编程语言对格式有严格要求时,输入格式应该一致;设计良好的输出报告;标记所有输出数据。效率效率主要指处理器时间和内存容量。虽然提出提高效率的要求是值得的,但是在进一步讨论这个问题之前,应该记住三个原则:第一,效率是性能要求,所以效率的要求应该在需求分析阶段确定。软件应该像要求的那样有效,而不是像人类那样有效。其次,良好的设计可以提高效率。第三,程序的效率与程序的简单性是一致的。不要为了不必要地提高效率而牺牲程序的清晰度和可读性。5.2软件测试的基础,5.2.1测试目标迈尔斯给出了一些关于测试的规则,也可以看作是测试的目标或定义:测试是执行程序以发现程序中错误的过程;一个好的测试方案是一个
5、很有可能发现到目前为止还没有发现的错误的测试方案;一个成功的测试是发现到目前为止还没有发现的错误的测试。因为测试的目的是暴露程序中的错误,从心理学的角度来看,程序作者测试自己是不合适的。因此,在综合测试阶段,其他人通常会组成一个测试团队来完成测试工作。5.2.2黑盒测试和白盒测试对于软件测试,黑盒测试方法将程序视为黑盒,根本不考虑程序的内部结构和处理。也就是说,黑盒测试是在程序接口上进行的测试,它只检查程序功能是否能够按照规范正常使用,程序是否能够正确接收输入数据以生成正确的输出信息,并保持外部信息(如数据库或文件)的完整性。黑盒测试也被称为功能测试。与黑盒测试方法相反,白盒测试方法的前提是可
6、以将程序视为封装在一个透明的白盒中,即可以充分理解程序的结构和处理过程。根据程序中的逻辑测试程序,该方法检查程序中的每个通道是否能够按照预定的要求正确工作。白盒测试也被称为结构测试。5.2.3测试标准为了设计有效的测试方案,软件工程师必须充分理解并正确应用指导软件测试的基本标准。主要测试标准如下。所有测试都应该可以追溯到用户需求。测试计划应该在测试开始前很久就制定出来。帕累托原理在软件测试中的应用。帕累托原理告诉我们,测试中发现的80%的错误可能是由程序中20%的模块造成的。试验应从“小规模”开始,逐步进行“大规模”试验。彻底的测试是不可能的。为了达到最好的测试结果,应该有一个独立的第三方从事
7、测试工作。5.2.4流程图设计测试方案时,通常需要仔细分析程序的控制流程。为了突出程序的控制流,可以使用流程图(也称为程序图)。流程图只描述了程序的控制流程,根本没有显示数据的具体操作和分支或循环的具体情况。在流程图中,节点用圆圈表示,一个圆圈代表一个或多个语句。程序流程图中的一系列处理块和菱形决策块可以映射到流程图中的一个节点。流程图中的箭头线称为边,它类似于程序流程图中的箭头线,代表控制流程。在流程图中,一条边必须在一个节点处结束,即使该节点不代表任何语句(实际上相当于一个空语句)。被边和节点包围的区域称为区域。计算区域数量时,应包括图外未被包围的区域。图5.1说明了将程序流程图映射到流程
8、图的方法。图5.1将程序流程图映射到流程图(a)程序流程图;(b)流程图,PDL程序:分类1:在记录保持读取记录时执行;2:如果记录字段1=0 3:则处理记录;存储在缓冲区中;增量计数器;4:elseifrecardfield2=0 5:然后重置计数器;6:否则过程记录;存储在文件中;7a: end if endif 7b: enddo 8: end,图5.2是PDL翻译的流程图,图5.3是PDL绘制的包含复合条件的流程图,图5.3是逻辑覆盖,这是一种设计白盒测试方案的技术。设计测试方案是测试阶段的关键技术问题。所谓的测试方案包括特定的测试目的(例如,要测试的特定功能)、要输入的测试数据和预期
9、的输出结果。测试数据和预期的输出结果通常被称为测试用例。不同的测试数据有不同的发现程序错误的能力。为了提高测试效率和降低测试成本,需要选择高效的测试数据。因为不可能进行详尽的测试,所以选择少量“最有效”的测试数据并尽可能地完成测试就更重要了。选择性地执行程序中一些最有代表性的路径是彻底测试的唯一可行的替代方案。所谓的逻辑覆盖是一系列测试过程的总称,这些测试过程逐步进行越来越完整的路径测试。测试数据可以分成不同的级别来执行(或覆盖)程序逻辑。从覆盖源程序语句的详细分析来看,大致有以下不同的覆盖标准。1.语句覆盖为了暴露程序中的错误,每个语句应该至少执行一次。语句覆盖的含义是选择足够的测试数据,以
10、便被测试程序中的每个语句至少执行一次。图5.4被测模块的流程图,2。决策覆盖,也称为分支覆盖,意味着不仅每个语句必须至少执行一次,而且每个决策的每个可能结果都应该至少执行一次,即每个决策的每个分支都应该至少执行一次。3.条件覆盖的含义是,不仅每个语句至少执行一次,而且判断表达式中的每个条件都可以得到各种可能的结果。4。决策/条件覆盖由于决策覆盖不一定包括条件覆盖,而条件覆盖也不一定包括决策覆盖,因此自然要提出一个同时满足这两个覆盖标准的逻辑覆盖,即决策/条件覆盖。其含义是选择足够的测试数据,以便判断表达式中的每个条件都能得到各种可能的值,并且每个判断表达式也能得到各种可能的结果。5.条件组合覆
11、盖条件组合覆盖是一种更强的逻辑覆盖标准,它要求选择足够的测试数据,使所有可能的条件组合在每个判断表达式中至少出现一次。基本路径测试基本路径测试是汤姆麦凯布提出的白盒测试技术。当使用这种技术设计测试用例时,我们首先计算过程设计结果的逻辑复杂度,并以此复杂度为指导定义基本的执行路径集。从这个基本集合中导出的测试用例可以保证程序中的每个语句至少被执行一次,并且在执行时每个条件将分别取真和假的值。使用基本路径测试技术设计测试用例的步骤如下。图5.5平均过程的流程图,1。根据工艺设计结果绘制相应的流程图;/*此过程计算指定值范围内不超过100个有效数字的平均值;同时,计算有效数字的总和和数量。*/INT
12、ERVAL RETURNS average,totalinput,totalvalid接口接受值,最小值,最大值;类型值1.100是标量阵列;类型平均、总计、输入、总计有效;最小、最大和是标量;类型I为整数;1:i1;总计,inputtotalvalid0sum02:执行同时值i-999 3:与总计输出100 4:将总计输出增加1;5:如果值最小值为6:且值最大值为7:则总有效增量为1;sumsum valuei8:ENDIF增量1;9:ENDDO 10:IF total valid 0 11:THEN average sum/total valid;12:ELSE平均值-999;13: en
13、dif结束平均值,2。计算流程图的循环复杂度,定量度量程序的逻辑复杂度。在获得描述程序控制流程的流程图后,可以使用以下三种方法之一来计算环复杂度。流程图中的区域数等于环的复杂度。流图G的环复杂度为V(G)E-N 2,其中E是流图中的边数,N是流图中的节点数。流图G的环复杂度V(G)P 1,其中P是流图中决策节点的数目。使用上述任何一种方法,图55所示流程图的循环复杂度可以计算为6。3.确定线性独立路径的基本集合所谓独立路径是指至少引入一组新的处理语句或程序的一个新条件的路径,用流程图来描述。独立路径至少包含一条在定义路径之前从未使用过的边。当使用基本路径测试方法设计测试用例时,程序的循环复杂度
14、决定了程序中独立路径的数量,这个数量是确保程序中所有语句至少执行一次所需的测试数量的上限。对于图5.5中描述的平均过程,有6条独立的路径,因为环的复杂度是6。例如,下面列出了六条独立的路径:路径1: 1-2-10-11-13路径2: 1-2-10-12-13路径3: 1-2-3-10-11-13路径4: 1-2-3-4-5-8-9通常,在导出测试用例时有必要确定决策节点。在本例中,节点2、3、5、6和10是决策节点。4、设计能够执行基本集合中每条路径的测试用例。应该选择数据,以便在测试每条路径时正确设置每个决策节点的条件。可以测试上述基本集合的测试用例如下:路径1的测试用例:valuek的有效
15、输入值,其中ki(i定义如下)valuei-999,其中2i100预期结果:基于k的正确平均值和总数,注意路径1不能独立测试,必须作为路径4、5和6的一部分进行测试。路径2的测试用例:值1-999期望结果:平均值-999,其他保留初始值,路径5的测试用例:值I的有效输入值,其中i100值最大,其中ki期望结果:路径6的k个测试用例的正确平均值和总数:值i=有效输入值,其中i100期望结果:正确的平均值和总数,5.4.2条件测试虽然基本的路径测试技术简单有效,但还不够,还需要进一步改进其他的控制结构测试技术通过条件测试技术设计的测试用例可以检查程序模块中包含的逻辑条件。简单条件是布尔变量或关系表达式,其前面可以有一个非()运算符。关系表达式的形式如下:E1关系运算符E2,其中E1和E2是算术表达式,关系运算符是下列运算符之一:“”、“”、“”、“”、“或”。复合条件由两个或多个简单条件、布尔运算符和括号组成。布尔运算符包括或()、与()和非( )。不包含关系表达式的条件称为布尔表达式。在上述条件测试技术的基础上,戴克勤提出了一种条件测试策略分支相关操作测试。如果所有布尔变量和关系运算符在条件中只出现一次,并且没有公共变量,BRO测试可以保证找到条件中的分支错误和关系运算符错误。BRO测试使用条件C的约束来设计测试用例。具有n个简单条件的条件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2024学年广东广州实验外语学校高一(下)期中数学试题及答案
- 2023-2024学年广东深圳高级中学高一(下)期中物理试题及答案
- 高中地理教学中地理信息技术与区域可持续发展决策研究课题报告教学研究课题报告
- 城市公园绿地可达性出行方式课题申报书
- 学校自主办学评价体系构建课题申报书
- 城市公园绿地空间公平性评价方法课题申报书
- 高中生物实验操作虚拟仿真教学效果评估课题报告教学研究课题报告
- 2026年传统文化与民俗旅游考试及答案
- 重症血栓患者的抗凝治疗护理
- 肺结核用药指导与护理
- GB/T 5195.4-2025萤石化学分析方法第4部分:总硫、硫化物含量的测定
- 新能源汽车充电站项目委托代建及运营协议
- 2025年事业编纪委监委面试题及答案
- 广东省汕头市龙湖区龙湖实验中学2024-2025学年七年级下学期5月期中考试生物试题(含答案)
- 脾胃中医养生课件
- 高尔夫tpi教学课件
- 《二氧化碳捕集原理与技术》 课件 第四章 二氧化碳吸附技术
- DB31/T 599-2012非承重蒸压灰砂多孔砖技术要求
- 三年级数学绘本阅读教学设计
- 电费水费代缴合同协议
- (广东二模)2025年广东省高三高考模拟测试(二)英语试卷(含标准答案)
评论
0/150
提交评论