章软件编码与测试_第1页
章软件编码与测试_第2页
章软件编码与测试_第3页
章软件编码与测试_第4页
章软件编码与测试_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程导论项目五软件的编码与测试本项目主要讲述程序设计语言的分类、特点和选择;程序编码风格;软件测试的概念、目的、原则和方法;软件测试的步骤、软件测试用例的设计;软件程序调试的步骤。在本项目中,通过6个工作任务,向读者展示程序设计语言与测试策略。目录任务一选择程序设计语言任务二编码风格任务三软件测试任务四实用综合测试策略任务五系统测试步任务六解读调试技术原则选择程序设计语言准备知识选择程序设计语言编码设计的目的程序设计语言的分类任务实施文杰是某科技公司的软件开发人员,在编写某个任务项目时,他需要确定选择程序设计语言的种类,并选择一种程序语言编写。选择程序设计语言任务一:选择程序设计语言任务分析:理解牢记!由于一个软件产品完成开发工作以后,如果发生了问题,很难依靠原开发人员来解决。因此,在程序编写时应考虑到,所写的程序将被别人阅读,一定要尽量使程序写得容易被人读懂。任务一:选择程序设计语言任务实施

选择程序设计语言一般情况下,程序设计语言的选择常从以下几个方面考虑。

(1)项目的应用领域每种语言都有自己适用的领域。在工程与科学计算领域,FORTRAN语言占主要优势,此外,BASIC、PASCAL语言也常常使用。在事务处理方面,COBOL和BASIC语言是合适的选择。在实时处理领域,Ada和汇编语言更为合适。在系统开发领域,C语言和汇编语言是优先考虑。如果软件中含有大量的数据操作,SQL、dBase、FoxPro等语言等更为适合。而LISP和PROLOG语言则适合于人工智能与专家系统。(2)算法与计算的复杂性

FORTRAN、TrueBASIC及各种块结构语言支持较复杂的计算与算法,COBOL与大多数数据库语言只支持简单的运算。

(3)数据结构的复杂性

PASCAL和C语言支持数组、记录与带指针的动态数据结构,适用于系统程序和数据结构复杂的应用程序。FORTRAN和BASIC只提供简单的数据结构——数组。

(4)效率有些实时系统要求具有极快的响应速度,此时可酌情选用汇编语言或Ada语言。一个程序的执行时间,常常有一大部分是耗费在一小部分程序代码上的。此时可将这一小部分代码用汇编语言来编写,其余仍用高级语言这样既可以提高系统的响应速度,又可以减少编程、测试与维护的难度。

(5)可移植性如果目标系统将在几台不同的计算机上运行,或者预期的使用寿命很长,应选择一种标准化程度高、程序可移植性好的语言,以使所开发的软件将来能够移植到不同的硬件环境下运行。(6)程序设计人员的水平在选择语言的同时,还要考虑程序设计人员的知识水平,即他们对语言掌握的熟练程度及实践经验。“新语言有发展前途,旧语言有成功经验”,程序员从学习一种新语言到熟练掌握它,要经过一段实践时间,若与其他主要标准不发生矛盾,应该选用程序设计人员都熟悉,并在以前的开发项目中获得成功的语言。(7)构造系统的模式对于以客观对象为研究目标,着重从组成客观对象的集合与关系的角度考虑建立系统的软件工程项目,应采用C++这一类的面向对象语言。事实上,一个对象系统既包括了组成系统的所有对象的集合与关系的研究,也包括了对对象状态及状态改变规律性的过程的研究。面向对象的语言综合了功能抽象与数据抽象的机制,因此,它既适用于对象系统,也适用于过程系统。

编码风格规则准备知识编码风格规则使用好程序内部的文档数据说明原则任务实施文杰是某科技公司的软件开发人员,接到研发某管理系统的任务。要求在编写程序代码时,使用简短、易懂的程序来完成。任务二:编码风格规则编码风格规则任务分析:理解牢记!由于随着软件规模的增大和复杂性提高,在软件开发和维护过程中,程序代码的可读性是程序可维护性的前提。因此,编程人员要了解编码风格。任务二:编码风格规则任务实施

详细编写“教材购销系统”部分模块说明书1.语句结构的规则语句结构应遵从如下规则:

(1)在一行内只写一条语句,并且采用适当的缩进格式,使程序的逻辑和功能变得更加明确;

(2)程序编写首先应当考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑;

(3)程序编写要简单、清楚,能直截了当地说明程序员的用意;

(4)除非对效率有特殊的要求,程序编写要做到清晰第一,效率第二;

(5)首先保证程序正确,然后才要求提高速度;

(6)让编译程序作简单的优化;

(7)尽可能使用库函数;

(8)避免使用临时变量而使可读性下降;(9)尽量用公共过程或子程序去代替重复的功能代码段;

(10)使用括号清晰地表达算术表达式和逻辑表达式的运算顺序;(11)避免不必要的转移;(12)用逻辑表达式代替分支嵌套;

(13)避免使用空的ELSE语句和IF…THENIF…的语句;

(14)避免使用ELSEGOTO和ELSERETURN结构;

(15)使与判定相联系的动作尽可能地紧跟着判定;

(16)避免采用过于复杂的条件测试;

(17)尽量减少使用“否定”条件的条件语句;

(18)避免过多使用循环嵌套和条件嵌套;

(19)不要使

GOTO语句相互交叉;

(20)对递归定义的数据结构尽量使用递归过程。

2.输入/输出规则输入/输出的实现方法,决定了用户对系统性质的可接受程度。输入/输出的方式和格式应当尽可能方便用户的使用,一定要避免因设计不当给用户带来的麻烦。输入/输出的风格随着人工干预程度的不同而有所不同。不管软件的性质是批处理,还是交互式的,在设计和程序编码时都应考虑下列原则:

(1)对所有的输入数据进行检验,从而识别错误的输入,以保证每个数据的有效性;

(2)检查输入项的各种重要组合的合理性,必要时报告输入状态信息;

(3)使得输入的步骤和操作尽可能简单,并保持简单的输入报告;

(4)输入数据时,允许使用自由格式输入;

(5)应允许缺省值;

(6)输入一批数据时,最好使用输入结束标志,而不要由用户指定的输入数据数目;

(7)在以交叉式输入/输出方式进行输入时,要在屏幕上使用提示符,明确提示交互输入的请求,指明可使用选择项的种类和取值范围;

(8)当程序设计语言对输入/输出格式有严格要求时,应保持输入格式与输入语句要求的一致性;

(9)给所有的输出加注释,并设计输出报表格式。

3.高效率的原则运行效率主要指程序系统运行占用的处理机时间和存储时间。下面从3个方面进一步讨论效率问题。(1)提高程序运行效率提高运行效率遵循的原则是:简化算术/逻辑表达式;尽量减少循环嵌套层数;少使用多维数组;少使用指针和链表;同一表达式中不要使用混合数据类型的运算;尽量使用整数运算和布尔表达式;利用编译系统优化程序;使用执行时间缩短的算术运算。(2)提高存储器效率提高存储器效率主要是需要存储量大,占用存储单元小,要求存取的时间短。

(3)提高输入/输出效率从编程的角度看,要提高输入/输出效率遵循的原则是:所有I/O操作应该采用缓冲方式,以减少用于通信的额外开销;对于磁盘/磁带设备应该考虑最简单的访问方式;与外存相关的操作应该采用块传递方式;与低速终端或者打印机相联系的操作应该考虑设备的特性。

软件测试准备知识软件测试软件测试目标软件测试的原则任务实施文杰是某科技公司的软件开发人员,接到研发某管理系统的任务。他在完成初步设计之后,需要进行软件测试,检验程序开发。任务三:软件测试软件测试任务分析:理解牢记!由于在软件开发过程中,如果没有发现并纠正软件中的大部分错误,会造成很恶劣的后果。因此,文杰需要进行软件测试。任务三:软件测试任务实施

软件测试1.软件测试的方法软件测试的种类大致可以分为人工测试和基于计算机的测试。基于计算机的测试有两种方法。

(1)黑盒测试黑盒测试方法是把程序看成一个黑盒子,完全不考虑其内部结构和处理过程,只检查程序的功能是否符合它的需求规格说明。可见,黑盒测试是在软件的接口处进行的,一方面看其是否能对合法的数据得出正确的结果,另一方面看它是否能对非法的数据进行正确的处理。显然要列举出所有合法的或非法的数据是不可能的。例如,一个程序需要3个整型输入数据,如果计算机的字长为16位,则每个整数的可能取值有216个,3个输入数据的各种可能值的排列组合共有:

216×216×216=248

也就是说需要把这个程序执行248,假定执行一次程序需要1ms,则大约需要1万年。若将无效的和错误的输入数据也算在内,则程序执行时间还要长,而且输出数据更是多得让人无法分析。因此,墨盒测试法不能测试所有可能情况。拓展提高:黑盒测试是一种宏观功能上的测试,该方法适合测试部门的测试人员或用户。随着软件生产的组装技术的发展,黑盒测试方法会越来越普及。

(2)白盒测试白盒测试方法是把程序看成一个打开的盒子,测试人员对程序所有逻辑路径进行测试,在不同检查点输出结果,与预期的结果比较,确定程序是否有错。使用白盒测试法时,为了做到穷尽测试,程序中每条可能的通路至少都应该执行一次。即使测试很小的程序,通常也不能做到这一点。例如,一段程序对嵌套的IF语句循环执行20次,如下图所示,在这段程序中共有520条可能的执行通路,显然,即使每条通路只执行一次也是不可能的。白盒测试是一种程序级的微观上的测试,不适合于大单元、大系统的测试,只适合于很小单元的测试,以及从事软件底层工作、生产构件的测试人员进行的测试。2.软件测试的过程软件测试的过程如下图所示。测试过程需要三类输入:(1)软件配置。包括软件需求规格说明、软件设计规格说明、源程序代码等;(2)测试配置。包括测试计划、测试用例等。(3)测试工具。为了提高软件测试效率,减少测试过程中的手工劳动,可使用一些专门的测试工具,如测试数据自动生成测试结果分析程序、驱动测试的测试数据库等。测试后进行结果分析,即将实测结果与预期的结果比较,如发现错误就需要排错。排错也就是调试,即对发现的错误进行错误定位,确定出错性质,改正这些错误,并修正相关的文档。修正的文档一般要经过再次测试,直到通过测试为止。知识点链接通过收集和分析测试结果中出错率数据可建立可靠性模型,进行可靠性预报。如果经常出现修改设计的严重错误,那么软件质量和可靠性就不能保证,应对软件进一步测试。如果经过测试,软件功能完善,错误率数据很少,并易于修改,那么则有两种可能:要么是软件的质量和可靠性可以接受,要么是所做的测试不充分。3.软件测试与开发各阶段的关系软件开发过程是一个自顶向下、逐步细化的过程,首先在软件计划阶段定义了软件的作用域,然后进行软件需求分析,建立软件的数据域、功能和性能需求、约束和一些有效性准则;接着进行软件设计;最后根据软件设计说明书进行编码。而软件测试过程则是按相反的顺序自底向上、逐步集成的过程(如下图所示)。从上图可以看到,首先对每一个程序模块进行单元测试,消除程序模块内部在逻辑上和功能上的错误和缺陷。再对照软件设计进行集成测试,检测和排除子系统(或系统)结构上的错误。接着再对照需求进行验收测试。最后从系统全体出发运行系统,看是否满足要求。另外,在测试过程中,一般要对一些软件文档加以修改。例如,单元测试主要是基于详细设计说明书对源程序代码进行测试,总发现问题就要对它们加以更正。上图虚框中的内容表示了与测试各阶段相关的文档。

实用综合测试策略准备知识实用综合测试策略逻辑覆盖等价分类法

边界值分析法错误猜测法任务实施李佳佳负责教材购销系统的建设与维护,接到项目主管任务,在编完成系统总设计之后,还需要对部分模块做详细的功能设计说明。任务四:实用综合测试策略实用综合测试策略任务分析:理解牢记!由于任务四:实用综合测试策略任务实施

实用综合测试策略白盒测试和黑盒测试是软件测试的两类不同方法,这两种方法各有所长,相互补充,在测试过程中应该联合使用这两类方法。通常,在测试过程的早期阶段主要使用白盒测试方法,而在测试的后期主要使用黑盒测试方法。于是,提出以下的实用综合测试策略:

(1)在任何情况下都必须使用边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序的能力最强;

(2)必要时用等价类划分方法补充一些测试用例;

(3)用错误猜测法再追加一些测试用例;

(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例;

(5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。因果图法请参考其他书籍。系统测试准备知识系统测试单元测试2.集成测试3.验收测试任务实施文杰是某科技公司的软件开发人员,接到研发某管理系统的任务。在完成系统研发之后,还需要进行测试步骤。任务五:系统测试系统测试任务分析:理解牢记!与开发过程类似,测试过程也必须分步骤进行,后一个步骤在逻辑上是前一个步骤的继续。任务五:系统测试任务实施

系统测试系统测试是将通过验收测试的软件,作为基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起进行的综合测试。一般包括以下几个方面。

(1)恢复测试:通过系统的修复能力,检测重新初始化、数据恢复、重新启动、检验点设置是否正确,以及人工干预的平均恢复时间是否在允许范围内。

(2)安全测试:设计测试用例,安全保密措施,检验系统是否有安全保密的漏洞。

(3)强度测试:设计测试用例,检验系统的能力最高能达到什么实际限度,让系统处于资源的异常数量、异常频率、异常批量的条件下运行测试系统的承受能力。一般取比平常限度高5~10倍的限度做测试用例。(4)性能测试:设计测试用例测试并记录软件运行性能,与性能要求相比较,检查是否达到性能要求规格。这项测试常常与强度测试相结合进行。

解读调试技术原则准备知识解读调试技术原则调试过程调试技术任务实施文杰是某科技公司的软件开发人员,接到研发某管理系统的任务。在完成系统研发之后,还需要进行调试技术。任务六:解读调试技术原则解读调试技术原则任务分析:理解牢记!软件调试是在测试发现错误之后诊断并排除错误的过程。测试是为了尽可能地发现错误,但这并不是最终目的,软件工程的根本目标是开发出高质量的完全符合用户需要的软件产品。因此,在进行成功的测试后必须进行软件调试。调试的主要任务有两项:一是确定程序中错误的确切性质和位置,二是对程序进行修改、排除错误。任务六:解读调试技术原则任务实施

解读调试技术原则在调试过程中,心理因素的影响常常高于技术手段而占主导地位,许多调试原则主要是基于心理学方面的问题。由于调试工作有查错和排错两项任务,所以调试原则也分成相应的两组。

(1)查错的原则

1)注重头脑的分析思考,不要过分依赖计算机最有效的调试方法是用头脑分析与错误征兆有关的信息。一个能干的程序调试员能做到不使用计算机就能够确定大部分错误的性质和位置。

2)把调试工具仅当作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论