第5结构化实现.pptx
《第5结构化实现.pptx》由会员分享,可在线阅读,更多相关《第5结构化实现.pptx(113页珍藏版)》请在咨信网上搜索。
1、 所谓软件实现通常指的是编码和测试这两个阶段。所谓软件实现通常指的是编码和测试这两个阶段。编编码码就就是是把把软软件件设设计计的的结结果果翻翻译译成成用用某某种种程程序序设设计计语语言言书书写写的的程程序序。作作为为软软件件工工程程过过程程的的一一个个阶阶段段,编编码码是是软软件件设设计计的的自自然然结结果果,因因此此,程程序序的的质质量量主主要要取取决决于于软软件件设设计计的的质质量量。但但是是,所所选选用用的的程程序序设设计计语语言言的的特特点点和和编编程程时时的的风风格格,也也会会对对程程序序的的可可靠靠性性、可可读读性性、可可测测试试性性和和可可维维护性产生深远的影响。护性产生深远的影
2、响。正正如如任任何何产产品品在在交交付付使使用用之之前前都都必必须须经经过过严严格格的的检检验验过过程程一一样样,由由于于软软件件开开发发的的复复杂杂性性和和困困难难性性,软软件件产产品品在在交交付付使使用用之之前前尤尤其其应应该该经经过过严严格格的的质质量量检检验验过过程程。通通常常把把对对软软件件的的质质量量检检验验过过程程称称为为测测试试。目目前前,软软件件测测试试仍仍然然是是保保证证软软件件质质量量的的主主要要途途径径,它它是是对对软软件件需需求求规规格格说说明明、软软件设计和编码的最后复审。件设计和编码的最后复审。仅就测试而言,它的目标是发现软件中的错误,仅就测试而言,它的目标是发现
3、软件中的错误,但是,发现错误并不是我们的最终目的。软件工程的但是,发现错误并不是我们的最终目的。软件工程的根本目标,是开发出高质量的完全符合用户需要的软根本目标,是开发出高质量的完全符合用户需要的软件产品,因此,通过测试发现软件错误之后还必须诊件产品,因此,通过测试发现软件错误之后还必须诊断并改正错误,这就是调试(也称为纠错)的任务。断并改正错误,这就是调试(也称为纠错)的任务。调试是测试阶段最困难的工作。调试是测试阶段最困难的工作。在对测试结果进行收集和评价的时候,软件产品在对测试结果进行收集和评价的时候,软件产品所达到的可靠性也逐渐明朗了。软件可靠性模型使用所达到的可靠性也逐渐明朗了。软件
4、可靠性模型使用故障率数据,预测软件的可靠性。故障率数据,预测软件的可靠性。4.1 编编 码码4.2 软件测试概述软件测试概述4.3 白盒测试技术白盒测试技术4.4 黑盒测试技术黑盒测试技术4.5 测测 试试 策策 略略4.6 调调 试试4.7 软件可靠性软件可靠性4.8 小小 结结4.1 编编 码码4.1.1 选择适当的程序设计语言选择适当的程序设计语言 程程序序设设计计语语言言是是人人和和计计算算机机通通信信的的基基本本工工具具,它它的的特特点点不不可可避避免免地地会会影影响响人人思思维维和和解解决决问问题题的的方方式式,会会影影响响人人和和计计算算机机通通信信的的方方式式和和质质量量,也也
5、会会影影响响其其他他人人阅阅读读和和理理解解程程序序的的难难易易程程度度。因因此此,编编码码之之前前的的一一项项重重要要工工作作就就是是选选择择一一种种适适当的程序设计语言。当的程序设计语言。适适当当的的程程序序设设计计语语言言能能使使程程序序员员在在根根据据设设计计编编码码时时遇遇到到的的困困难难最最少少,可可以以减减少少需需要要的的程程序序测测试试量量,并并且且可可以以写写出出更更容容易易阅阅读读和和更更容容易易维维护护的的程程序序。由由于于软软件件系系统统的的绝绝大大部部分分成成本本用用在在生生命命周周期期的的测测试试和和维维护护阶阶段段,因因此此容容易易测测试试和和容容易易维维护是极端
6、重要的。护是极端重要的。总总的的说说来来。高高级级语语言言明明显显优优于于汇汇编编语语言言,因因此此,除除了了在在很很特特殊殊的的应应用用领领域域(例例如如,对对程程度度执执行行时时间间和和使使用用的的空空间间都都有有很很严严格格限限制制的的情情况况;需需要要产产生生任任意意的的甚甚至至非非法法的的指指令令序序列列;体体系系结结构构特特殊殊的的微微处处理理机机,以以致致在在这这类类机机器器上上通通常常不不能能实实现现高高级级语语言言编编译译程程序序),或或者者大大型型系系统统中中执执行行时时间间非非常常关关键键的的(或或直直接接依依赖赖于于硬硬件件的的)一一小小部部分分代代码码需需要要用用汇汇
7、编编语语言言书书写写之之外外,其其他他程程序序应应该该一一律律用高级语言书写。用高级语言书写。为了使程序容易测试和维护以减少生命周期的总成本,选用为了使程序容易测试和维护以减少生命周期的总成本,选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构;为了便于调试和提高软件可靠性,语言特点应该使和数据结构;为了便于调试和提高软件可靠性,语言特点应该使编译程序能够尽可能多地发现程序中的错误;为了降低软件开发编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的成本,选用的语言应该有良好的独立编译机制。上述这和维护的成
8、本,选用的语言应该有良好的独立编译机制。上述这些要求是选择语言的理想标准,但是在实际选用语言时不能仅仅些要求是选择语言的理想标准,但是在实际选用语言时不能仅仅考虑理论上的标准,还必须同时考虑实用方面的各种限制。考虑理论上的标准,还必须同时考虑实用方面的各种限制。4.1.2 正确的编码风格正确的编码风格 虽虽然然选选取取了了好好的的程程序序设设计计语语言言有有助助于于写写出出既既可可靠靠又又容容易易阅阅读读、容容易易维维护护的的程程序序,但但是是,工工具具再再好好使使用用不不当当也也不不会会达达到到预预期期的的效效果果。按按照照软软件件工工程程方方法法学学开开发发软软件件,程程序序是是表表达达软
9、软件件设设计计结结果果的的一一种种更更具具体体的的形形式式,程程序序的的质质量量基基本本上上由由设设计计的的质质量量决决定定,但但是是,编编码码风风格格也也在在很很大大程程度度上上决定着程序的质量。决定着程序的质量。所所谓谓编编码码风风格格就就是是程程序序员员在在编编写写程程序序时时遵遵循循的的具具体体准准则则和和习习惯惯做做法法。源源程程序序代代码码的的逻逻辑辑简简明明清清晰晰、易易读读易易懂懂是是好好程程序序的的一一个个重重要要标标准准,为为了了写写出出好好程程序序应应该该遵遵循循下下述述规规则。则。1.程序内部必须有正确的文档程序内部必须有正确的文档 所所谓谓程程序序内内部部的的文文档档
10、包包括括恰恰当当的的标标识识符符、适适当当的的注注解解和程序的视觉组织等等。和程序的视觉组织等等。选选取取含含义义鲜鲜明明的的名名字字,使使它它能能正正确确地地提提示示程程序序对对象象所所代代表表的的实实体体,这这对对于于帮帮助助阅阅读读者者理理解解程程序序是是很很重重要要的的。如如果果使使用用缩缩写写,那那么么缩缩写写规规则则应应该该一一致致,并并且且应应该该给给每每个个名名字加注解。字加注解。注解是程序员和程序读者通信的重要手段,正确的注注解是程序员和程序读者通信的重要手段,正确的注解非常有助于对程序的理解。通常在每个模块开始处有一解非常有助于对程序的理解。通常在每个模块开始处有一段序言性
11、的注解,简要描述模块的功能、主要算法、接口段序言性的注解,简要描述模块的功能、主要算法、接口特点、重要数据以及开发简史。插在程序中间与一段程序特点、重要数据以及开发简史。插在程序中间与一段程序代码有关的注解,主要解释包含这段代码的必要性。对于代码有关的注解,主要解释包含这段代码的必要性。对于用高级语言书写的源程序,不需要用注解的形式把每个语用高级语言书写的源程序,不需要用注解的形式把每个语句翻译成自然语言,应该利用注解提供一些额外的信息。句翻译成自然语言,应该利用注解提供一些额外的信息。应该用空格或空行清楚地区分注解和程序。注解的内容一应该用空格或空行清楚地区分注解和程序。注解的内容一定要正确
12、,错误的注解不仅对理解程序毫无帮助,反而会定要正确,错误的注解不仅对理解程序毫无帮助,反而会妨碍对程序的理解。妨碍对程序的理解。程序清单的布局对于程序的可读性也有很大影响,应程序清单的布局对于程序的可读性也有很大影响,应该利用适当的阶梯形式使程序的层次结构清晰明显。该利用适当的阶梯形式使程序的层次结构清晰明显。2.数据说明应便于查阅易于理解数据说明应便于查阅易于理解 虽虽然然在在设设计计期期间间已已经经确确定定了了数数据据结结构构的的组组织织和和复复杂杂程程度度,然然而而数数据据说说明明的的风风格格却却是是在在写写程程序序时时确确定定的的。为为了了使使数数据据更更容容易易理理解解和和维维护护,
13、有有一一些些比比较较简简单单的的原原则则应应该遵循。该遵循。数数据据说说明明的的次次序序应应该该标标准准化化(例例如如,按按照照数数据据结结构构或或数数据据类类型型确确定定说说明明的的次次序序)。有有次次序序就就容容易易查查阅阅,因因此能够加速测试、调试和维护的过程。此能够加速测试、调试和维护的过程。当当多多个个变变量量名名在在一一个个语语句句中中说说明明时时,应应该该按按字字母母顺顺序排列这些变量。序排列这些变量。如如果果设设计计时时使使用用了了一一个个复复杂杂的的数数据据结结构构,则则应应该该用用注注解解说说明明用用程程序序设设计计语语言言实实现现这这个个数数据据结结构构的的方方法法和和特
14、特点。点。3.语句应该尽量简单清晰语句应该尽量简单清晰 设设计计期期间间确确定定了了软软件件的的逻逻辑辑结结构构,然然而而个个别别语语句句的的构构造造却却是是编编写写程程序序的的一一个个主主要要任任务务。构构造造语语句句时时应应该该遵遵循循的的原原则则是是,每每个个语语句句都都应应该该简简单单而而直直接接,不不能能为为了了提提高高效效率率而而使使程程序序变变得得过过分分复复杂杂。下下述述规规则则有有助助于于使使语语句句简单明了:简单明了:不要为了节省空间而把多个语句写在同一行;不要为了节省空间而把多个语句写在同一行;尽量避免复杂的条件测试;尽量避免复杂的条件测试;尽量减少对尽量减少对“非非”条
15、件的测试;条件的测试;避免大量使用循环嵌套和条件嵌套;避免大量使用循环嵌套和条件嵌套;利用括号使逻辑表达式或算术表达式的运算次序清晰直观。利用括号使逻辑表达式或算术表达式的运算次序清晰直观。4.正确的输入正确的输入/输出风格输出风格 在在设设计计和和编编写写程程序序时时应应该该考考虑虑下下述述有有关关输输入入/输输出出风风格格的的规则:规则:对所有输入数据都进行检验;检查输入项重要组合的合法性;检查输入项重要组合的合法性;保持输入格式简单;使用数据结束标记,不要求用户指定数据的数目;使用数据结束标记,不要求用户指定数据的数目;明确提示交互式输入的请求,详细说明可用的选择或边界数值;当程序设计语
16、言对格式有严格要求时,应保持输入格式一致;设计良好的输出报表;设计良好的输出报表;给所有输出数据加标志。给所有输出数据加标志。5.不要盲目追求高效率不要盲目追求高效率 效率主要指处理机时间和存储器容量两个方面。虽效率主要指处理机时间和存储器容量两个方面。虽然值得提出提高效率的要求,但是在进一步讨论这个问然值得提出提高效率的要求,但是在进一步讨论这个问题之前应该记住三条原则:首先,效率是性能要求,因题之前应该记住三条原则:首先,效率是性能要求,因此应该在需求分析阶段确定效率方面的要求。软件应该此应该在需求分析阶段确定效率方面的要求。软件应该像对它要求的那样有效,而不应该如同人类可能做到的像对它要
17、求的那样有效,而不应该如同人类可能做到的那样有效。其次,效率是靠好设计来提高的。第三,程那样有效。其次,效率是靠好设计来提高的。第三,程序的效率和程序的简单程度是一致的。不要牺牲程序的序的效率和程序的简单程度是一致的。不要牺牲程序的清晰性和可读性来不必要地提高效率。清晰性和可读性来不必要地提高效率。4.2 软件测试概述软件测试概述测试阶段的目标测试阶段的目标测试的基本原则测试的基本原则测试的基本步骤测试的基本步骤静态分析与动态测试静态分析与动态测试软件测试的目标软件测试的目标 什么是测试?它的目标是什么?什么是测试?它的目标是什么?G.Myers给出了关于测试给出了关于测试的一些规则,这些规则
18、也可以看作是测试的目标或定义:的一些规则,这些规则也可以看作是测试的目标或定义:(1)测试是为了发现程序中的错误而执行程序的过程;)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。)成功的测试是发现了至今为止尚未发现的错误的测试。完全测试是不可能的完全测试是不可能的软件测试时有风险的活动软件测试时有风险的活动测试无法显示潜伏的软件缺陷和故障测试无法显示潜伏的软件缺陷和故障充分注意测试中的群集现象充分注意测试中的群集现象杀虫
19、剂现象杀虫剂现象并非所有的软件缺陷都要修复并非所有的软件缺陷都要修复软件测试必须有预期结果软件测试必须有预期结果尽早地、不断地进行软件测试尽早地、不断地进行软件测试程序员应该避免检查自己的程序程序员应该避免检查自己的程序测试的基本原则测试的基本原则软件测试的基本步骤单元测试集成测试确认测试系统测试验收测试静态分析与动态测试静态方法l桌前检查l代码会审l步行检查调用图数据流分析图4.2.3 两类测试方法两类测试方法 怎样对程序进行测试呢?测试任何产品都有两种方怎样对程序进行测试呢?测试任何产品都有两种方法:如果已经知道了产品应该具有的功能,可以通过测法:如果已经知道了产品应该具有的功能,可以通过
20、测试来检验是否每个功能都能正常使用;如果知道产品内试来检验是否每个功能都能正常使用;如果知道产品内部预定的工作过程,可以通过测试来检验产品内部动作部预定的工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。前一个方法称为是否按照规格说明书的规定正常进行。前一个方法称为黑盒测试,后一个方法称为白盒测试。黑盒测试,后一个方法称为白盒测试。对于软件测试而言,黑盒测试法把程序看成一个黑对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序说,黑盒测
21、试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。黑盒测试又外部信息(如,数据库或文件)的完整性。黑盒测试又称为功能测试。与黑盒测试法相反,白盒测试法的前提称为功能测试。与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部全了解程序的结构和处理过程。这种方
22、法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。定要求正确工作。白盒测试又称为结构测试。粗看起来,不论采用上述哪种测试方法,只要对粗看起来,不论采用上述哪种测试方法,只要对每一种可能的情况都进行测试,就可以得到完全正确每一种可能的情况都进行测试,就可以得到完全正确的程序。包含所有可能情况的测试称为穷尽测试,对的程序。包含所有可能情况的测试称为穷尽测试,对于实际程序而言,穷尽测试通常是不可能做到的。于实际程序而言,穷尽测试通常是不可能做到的。因为不可能进行穷尽测试,所以软件测试不可能因为不可能进
23、行穷尽测试,所以软件测试不可能发现程序中的所有错误,也就是说,通过测试并不能发现程序中的所有错误,也就是说,通过测试并不能证明程序是正确的。但是,我们的目的是要通过测试证明程序是正确的。但是,我们的目的是要通过测试保证软件的可靠性,因此,必须仔细设计测试方案,保证软件的可靠性,因此,必须仔细设计测试方案,力争用尽可能少的测试发现尽可能多的错误。力争用尽可能少的测试发现尽可能多的错误。4.2.4 软件测试准则软件测试准则 为为了了能能够够设设计计出出有有效效的的测测试试方方案案,软软件件工工程程师师必必须须充充分分理理解解并并正正确确运运用用指指导导软软件件测测试试工工作作的的基基本本准准则则。
24、下下面面叙叙述述主主要的测试准则:要的测试准则:所所有有测测试试都都应应该该能能够够追追溯溯到到用用户户需需求求。正正如如前前面面讲讲过过的的,软软件件测测试试的的目目标标是是发发现现程程序序中中的的错错误误。从从用用户户角角度度看看,最最严严重重的的错错误误是是程程序序不不能能满满足足用用户户需需求求的的那那些些错错误误,因因此此应应该围绕用户的需求来测试程序。该围绕用户的需求来测试程序。应应该该在在开开始始测测试试之之前前预预先先制制定定出出测测试试计计划划。一一旦旦完完成成了了需需求求分分析析就就可可以以着着手手制制定定测测试试计计划划,在在确确定定了了设设计计模模型型之之后后就就可可以
25、以立立即即开开始始设设计计详详细细的的测测试试方方案案。因因此此,在在编编码码之之前前就可以对所有测试工作进行计划和设计。就可以对所有测试工作进行计划和设计。在软件测试过程中应该应用在软件测试过程中应该应用Pareto原理。原理。Pareto原理告诉原理告诉我们,测试所发现的错误中的我们,测试所发现的错误中的80%很可能是由程序中很可能是由程序中20%的模块造成的。因此,应该尽量找出这些可疑的模块并彻的模块造成的。因此,应该尽量找出这些可疑的模块并彻底地测试它们。底地测试它们。应该从应该从“小规模小规模”测试开始,逐步过渡到测试开始,逐步过渡到“大规模大规模”测试。测试。通常,首先测试单个程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。