软件工程基础第6章_第1页
软件工程基础第6章_第2页
软件工程基础第6章_第3页
软件工程基础第6章_第4页
软件工程基础第6章_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

《软件工程基础》陆惠恩主编1本章内容:结构化程序设计选择程序设计语言程序设计风格程序设计质量的评价程序设计文档软件测试目标和原则软件测试方法软件测试步骤设计测试方案软件调试、验证与确认软件测试计划和分析报告本章重点:结构化程序设计程序设计质量的评价软件测试方法设计测试方案《软件工程基础》陆惠恩主编26.1结构化程序设计方法

1.什么是结构化程序设计结构化程序(StructuredProgram)是由基本的控制结构,构造而成的程序。每个控制结构只有一个入口点和一个出口点。结构化程序设计(StructuredProgramming,SP)结构化程序设计强调对模块采用自上而下、逐步细化的设计方法;不主张用GOTO语句来随意转移程序的控制;主张仅采用顺序、选择、重复三种基本控制结构;每种基本控制结构只有一个入口、一个出口、完成一个操作;将这三种基本控制结构根据程序的逻辑,嵌套或组合成结构化程序,完成预定的功能。2.结构化程序设计的特点源程序有清晰性,并能较好地适合自顶向下或自底向上的程序设计技术。在详细设计阶段,使系统结构具有模块化和清晰性的特性。在软件编码阶段,使软件易于理解、修改,便于重复使用。《软件工程基础》陆惠恩主编36.2选择程序设计语言1.程序设计语言的分类(1)面向机器语言:包括机器语言和汇编语言。(2)高级程序设计语言2.高级语言选用的实用标准(1)项目的应用领域(2)软件开发环境(3)根据系统用户的要求来选择(4)软件开发人员的知识

如果和其他标准不矛盾,则应选择一种软件开发人员熟悉的语言,使开发速度更快,质量更易保证。但是开发人员应仔细分析软件项目的类型,敢于学习新知识、掌握新技术。《软件工程基础》陆惠恩主编46.3程序设计风格源程序文档编写规则1.源程序文档编写时,其标识符名称、注解和程序布局等要合理。2.数据说明3.语句构造要简单直接4.输入输出语句5.程序效率程序设计主要应考虑的是程序的正确性、可理解性、可测试性和可维护性。《软件工程基础》陆惠恩主编56.4程序设计质量的评价正确性清晰的结构易使用性易维护性简单性易移植性《软件工程基础》陆惠恩主编66.5程序设计文档软件编码阶段的主要文档是源程序。程序设计文档在保存时要记载:开发时间、开发者、测试记录、用户手册等。每次程序修改要及时更改程序所对应的各项软件配置。《软件工程基础》陆惠恩主编76.6软件测试目标和原则6.6.1软件测试目标(1)软件测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案能够发现尚未发现的错误;(3)成功的测试是发现了尚未发现的错误的测试。软件测试的目的是,通过人工或计算机执行程序来有意识地发现程序中的设计错误和编码错误。6.6.2测试原则《软件工程基础》陆惠恩主编86.7软件测试方法

6.7.1静态分析与动态测试1.静态分析2.动态测试:以执行程序并分析程序来查错。为了进行软件测试,需要预先准备好两种数据:①输入数据;②预期的输出结果。我们把以发现错误为目标的用于软件测试的输入数据及与之对应的预期输出结果叫测试用例。6.7.2黑盒法与白盒法1.黑盒法黑盒法(Black.BoxTesting)又称功能测试,其测试用例完全是根据程序的功能说明来设计的。2.白盒法白盒法(WhiteBoxTesting)又称结构测试,其测试用例是根据程序内部的逻辑结构和执行路径来设计的。常把黑盒法和白盒法联合起来进行,这也称为灰盒法。《软件工程基础》陆惠恩主编96.8软件测试步骤

6.8.1模块测试模块测试也称单元测试,其目的是检查每个模块是否能独立、正确地运行。模块测试通常在程序设计时进行。驱动程序代替主程序,用来测试子程序。存根程序也称“虚拟子程序”,测试主模块。6.8.2集成测试子系统的组装称为集成化。集成测试分为子系统测试和系统测试两种。渐增式测试、非渐增式测试1、自顶向下集成2、自底向上集成6.8.3程序审查会和人工运行1.程序审查会2.人工运行6.8.4确认测试1.确认测试必须有用户积极参与,或以用户为主进行。2.软件配置复审3.Alpha测试和Beta测试6.8.5平行运行《软件工程基础》陆惠恩主编106.9设计测试方案测试方案包括三个内容:要测试的功能输入的数据对应的预期输出结果《软件工程基础》陆惠恩主编116.9.1等价类划分法1、方法2、等价类划分的规则3、等价类划分法步骤4、等价类测试步骤6.9.2边界值分析法6.9.3错误推测法6.9.4逻辑覆盖法1.语句覆盖2.判定覆盖3.条件覆盖4.判定/条件覆盖5.条件组合覆盖6.点覆盖7.边覆盖8.路径覆盖《软件工程基础》陆惠恩主编12【例6.1】按不同逻辑覆盖法设计测试数据

例6.1测试数据的条件组合及对应的执行路径《软件工程基础》陆惠恩主编136.9.5因果图法1.因果图法测试用例设计步骤2.因果图基本符号图6.3因果图基本符号《软件工程基础》陆惠恩主编143.因果图约束符号

《软件工程基础》陆惠恩主编15【例6.2】用因果图法设计测试用例某规格说明规定:输入的第一列字符必须是A或B,第二列字符必须是一个数字。第一、二列都满足条件时执行操作H;如果第一列字符不正确,则给出信息L;如果第二列字符不正确,则给出信息R。根据上述要求画出因果图,并设计测试用例。《软件工程基础》陆惠恩主编16图6.5例6.2因果图

表6.2例6.2判定表《软件工程基础》陆惠恩主编176.9.6实用测试策略

用等价类划分法设计测试方案。

使用边界值分析方法,既测试输入数据的边界情况又包括输出数据的边界情况。(3)如果含有输入条件的组合情况,一开始就用因果图法。(4)必要时用错误推断法补充测试方案。(5)用逻辑覆盖法检查现有测试方案,若没有达到逻辑覆盖标准,再补充一些测试用例。【例6.3】对学生成绩管理系统“输入学生成绩”子模块设计测试用例。《软件工程基础》陆惠恩主编186.10软件调试、验证与确认

6.10.1软件调试软件调试也称纠错。首先进行软件测试,第二步是纠错6.10.2程序正确性验证(软件验证)是确定软件开发周期中的一个给定阶段的产品是否达到需求的过程。6.10.3软件确认软件确认的方法:1.系统功能和性能满足需求说明书中的全部要求,得到用户认可。2.完成测试计划中的所有要求,并书写测试分析报告和开发总结。3.按用户手册和操作手册进行软件实际运行。本阶段结束时应完成的文档有:1.测试分析报告;2.经确认的用户手册和操作手册;3.软件开发总结。《软件工程基础》陆惠恩主编196.11软件测试计划和分析报告1.软件测试计划2.测试说明文件测试设计说明测试用例说明测试规程说明3.软件测试分析报告《软件工程基础》陆惠恩主编20第6章小结

程序设计也称软件编码,通过软件编码得到软件设计的结果。在设计应用软件时,应当优先选用高级程序设计语言,只有三种情况选用汇编语言。结构化程序设计是将顺序、选择、重复三种基本控制结构进行组合和嵌套,以容易理解的形式和避免使用GOTO语句等原则,进行的程序设计方法。软件设计风格直接影响软件的质量,影响软件的可维护性和可移植性。软件编码阶段应对源程序进行静态分析和模块测试,以保证程序的正确性。软件测试(testing)是由人工或计算机来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求或识别期望的结果和实际结果之间有无差别。测试的根本任务是发现并改正软件中的错误。测试过程的早期使用白盒法,后期使用黑盒法。设计测试方案的基本目标是,选用尽可能少的高效测试数据,做到尽可能完善的测试,从而尽可能多地发现软件中的错误。《软件工程基础》陆惠恩主编21第6章小结(2)

1.使用边界值分析方法。既包括

温馨提示

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

最新文档

评论

0/150

提交评论