《测试用例软件工程基础》由会员分享,可在线阅读,更多相关《测试用例软件工程基础(39页珍藏版)》请在金锄头文库上搜索。
1、第第5 5章章 软件开发技术基础软件开发技术基础 程序设计基础程序设计基础 软件工程基础软件工程基础 结构化程序设计结构化程序设计 面向对象程序设计面向对象程序设计1 1程序设计基础程序设计基础程序设计程序设计 程序设计程序设计( (ProgramingPrograming) )是指利用计算机解决问是指利用计算机解决问题的全过程,它包含多方面的内容,而编写程题的全过程,它包含多方面的内容,而编写程序只是其中的一部分。序只是其中的一部分。 分分析析问问题题确定确定处理处理方案方案确定确定操作操作步骤步骤编编写写程程序序上机上机运行运行程序程序整整理理结结果果 程序设计的一般步骤:2 2程序设计方
2、法与风格程序设计方法与风格程程程程程程序序序序序序设设设设设设计计计计计计方方方方方方法法法法法法是是是是是是指指指指指指关关关关关关于于于于于于以以以以以以什什什什什什么么么么么么观观观观观观点点点点点点来来来来来来研研研研研研究究究究究究问问问问问问题题题题题题并并并并并并进进进进进进行行行行行行求求求求求求解解解解解解,以以以以以以及及及及及及如如如如如如何何何何何何进进进进进进行行行行行行系系系系系系统统统统统统设设设设设设计计计计计计的的的的的的软软软软软软件件件件件件方方方方方方法学。法学。法学。法学。法学。法学。程程程程程程序序序序序序设设设设设设计计计计计计方方方方方方法法法法
3、法法主主主主主主要要要要要要经经经经经经过过过过过过了了了了了了结结结结结结构构构构构构化化化化化化程程程程程程序序序序序序设设设设设设计计计计计计和和和和和和面面面面面面向对象程序设计向对象程序设计向对象程序设计向对象程序设计向对象程序设计向对象程序设计两个阶段两个阶段两个阶段两个阶段两个阶段两个阶段 。 程序设计基础程序设计基础3 3程序设计方法与风格程序设计方法与风格程程序序设设计计风风格格是是指指编编写写程程序序时时所所表表现现出出的的特特点点、习惯和逻辑思路。习惯和逻辑思路。程程序序设设计计风风格格强强调调简简单单和和清清晰晰。“清清晰晰第第一一,效率第二效率第二”的观点是当今主导的
4、程序设计风格的观点是当今主导的程序设计风格程序设计基础程序设计基础4 4结构化程序设计采用自顶向下、逐步求精的方法采用自顶向下、逐步求精的方法程程序序结结构构模模块块化化,每每个个模模块块只只有有一一个个入入口口和一个出口和一个出口使用三种基本控制结构描述程序流程使用三种基本控制结构描述程序流程原则:原则:结构化程序设计是指:为使程序具有一个合结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。何进行程序设计的原则。 所谓模块化就是把所谓模块化就是把所谓模块化就是把所谓模块化就是把一个大型的程序按一个大型的程序
5、按一个大型的程序按一个大型的程序按照功能分解为若干照功能分解为若干照功能分解为若干照功能分解为若干相对独立的、较小相对独立的、较小相对独立的、较小相对独立的、较小的子程序的子程序的子程序的子程序( (即模块即模块即模块即模块) ),并把这些模块按,并把这些模块按,并把这些模块按,并把这些模块按层次关系进行组织层次关系进行组织层次关系进行组织层次关系进行组织。 5 5顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构结构化程序设计基本结构:基本结构:AB假真PAB真假AP真假AP
6、6 6q 数据与对数据的操作数据与对数据的操作( (函数函数) )相分离相分离q 可重用性差可重用性差 结构化程序设计q 程序结构良好程序结构良好程序结构良好程序结构良好q 程序清晰易读、易于使用和维护程序清晰易读、易于使用和维护程序清晰易读、易于使用和维护程序清晰易读、易于使用和维护q 提高编程的效率,降低开发成本提高编程的效率,降低开发成本提高编程的效率,降低开发成本提高编程的效率,降低开发成本优点优点缺点缺点7 7面向对象程序设计对象对象在现实生活中,所有东西都是对象。在现实生活中,所有东西都是对象。任何对象都有两个共同的特点:任何对象都有两个共同的特点:对象的属性对象的属性和和对象的对
7、象的操作。操作。一个对象通常由对象名、属性和操作组成一个对象通常由对象名、属性和操作组成。概念概念8 8面向对象程序设计属属性性是是用用来来描描述述对对象象的的状状态态,对对象象的的状状态态又又称为对象的静态属性称为对象的静态属性。概念概念属性属性9 9面向对象程序设计对对象象的的操操作作又又称称为为对对象象的的行行为为,主主要表述对象的动态属性。要表述对象的动态属性。概念概念操作操作1010面向对象程序设计封封装装就就是是把把对对象象的的属属性性和和操操作作结结合合成成一一个个不不可可分分割割的整体。的整体。封封装装就就是是使使一一个个对对象象形形成成接接口口和和实实现现两两个个部部分分。对
8、对于用户来说,接口是可见的,实现是不可见的于用户来说,接口是可见的,实现是不可见的。概念概念封装封装1111面向对象程序设计是一组具有相同属性和相同操作的对象是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个的集合。一个类中的每个对象都是这个类的一个实例。类的一个实例。概念概念 类类 1212面向对象程序设计继继承承是是表表达达类类之之间间相相似似性性的的一一种种机机制制,即即在在已已有有的的类类的的基基础础之之上上增增加加构构造造新新的的类类,前前者者称称为为父父类类( (或或超类超类) ),后者称为子类。,后者称为子类。子子类类除除自自动动拥拥有有父父类类的的全全部部属属
9、性性和和操操作作外外,还还可可以以进一步定义新的属性和操作。进一步定义新的属性和操作。如果子类只从一个父类继承,则称为单一继承;如果子类只从一个父类继承,则称为单一继承;如果子类从一个以上父类继承,则称为多重继承。如果子类从一个以上父类继承,则称为多重继承。 优优点点:能能清清晰晰地地体体现现相相关关类类之之间间的的层层次次结结构构关关系系;可以减少代码和数据的冗余,增加程序的复用能力。可以减少代码和数据的冗余,增加程序的复用能力。概念概念继承继承1313面向对象程序设计对对象象在在收收到到消消息息时时要要予予以以响响应应,不不同同的的对对象象收收到到同同一一消消息息可可产产生生完完全全不不同
10、同的的结结果果,这这一一现象叫做多态性现象叫做多态性。多态性增强了软件的灵活性和重用性。多态性增强了软件的灵活性和重用性。多多态态性性与与继继承承性性相相结结合合使使软软件件具具有有更更广广的的重重用性和可扩充性。用性和可扩充性。概念概念多态性多态性1414面向对象程序设计面向对象程序设计的基本思想面向对象程序设计的基本思想面向对象程序设计的基本思想面向对象程序设计的基本思想 特性:特性:基基本本思思想想: : 将将人人们们在在日日常常生生活活中中习习惯惯的的思思维维方方式式和和表表达达方方式式应应用用在在程程序序设设计计中中,以以客客观观世世界界中中的的对对象象为为中中心心,以以类类和和继继
11、承承为为构构造造机机制制来来进进行软件开发活动。行软件开发活动。 优优点点: : 符符合合人人们们通通常常解解决决问问题题的的思思维维方方式式;对对象象结结构构稳稳定定;软软件件具具有有易易于于扩扩充充、修修改改和和维维护护的特性。的特性。封装性、继承性、多态性封装性、继承性、多态性 1515软件工程软件工程基础基础 软软件件危危机机是是指指在在软软件件的的开开发发和和维维护护过过程程中中所所遇遇到到的的一一系列严重问题。软件危机主要体现在以下几个方面:系列严重问题。软件危机主要体现在以下几个方面: 软件开发的实际成本和进度估计不准确软件开发的实际成本和进度估计不准确 开发出来的软件常常不能使
12、用户满意开发出来的软件常常不能使用户满意 软件产品的质量不高,存在漏洞,需要经常打补丁软件产品的质量不高,存在漏洞,需要经常打补丁 大量已有的软件难以维护大量已有的软件难以维护 软软件件的的开开发发和和维维护护成成本本不不断断提提高高,直直接接威威胁胁计计算算机机应应用的扩大用的扩大 软软件件生生产产技技术术进进步步缓缓慢慢,跟跟不不上上硬硬件件的的发发展展和和人人们们需需求的增长求的增长1616v看一个看一个实际例子:例子:vWindows 7的的诞生生过程程n2007年年12月月20日:日:新技术预览版新技术预览版 正式上正式上线;n2008年年12月月12日:日:软件评测版(有软件评测版
13、(有“发送反馈信息发送反馈信息”链接)链接)正式上正式上线; n微软微软2009年年10月月22日于美国、日于美国、2009年年10月月23日日于中国正式发布于中国正式发布 Windows 7 n2011年年2月月22日:日:RTM SP1(补丁)正式上丁)正式上线。 1717软件工程软件工程基础基础软件工程软件工程是指应用计算机科学、数学及管是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来理科学等原理,以工程化的原则和方法来开发与维护软件的学科。研究软件工程的开发与维护软件的学科。研究软件工程的主要主要目的目的就是在规定的时间、规定的开发就是在规定的时间、规定的开发费用内开发
14、出满足用户需求的高质量的软费用内开发出满足用户需求的高质量的软件系统件系统( (高质量是指错误率低、好用、易用、高质量是指错误率低、好用、易用、可移植、易维护等可移植、易维护等) )。1818软件工程的原则:软件工程的原则: 制定阶段计划制定阶段计划 阶段评审阶段评审 制定规范,实行严格的产品控制制定规范,实行严格的产品控制软件工程软件工程基础基础1919将将软软件件产产品品从从开开始始计计划划起起,到到废废弃弃不不用用止止,称为称为软件生命周期软件生命周期。软软件件生生命命周周期期一一般般划划分分为为计计划划、开开发发和和运运行行3 3个时期,每一时期又区分为若干个阶段。个时期,每一时期又区
15、分为若干个阶段。计划时期有问题定义和可行性研究两个阶段;计划时期有问题定义和可行性研究两个阶段;开开发发时时期期有有需需求求分分析析、设设计计、编编码码和和测测试试4 4个个阶段;阶段;运行时期主要是系统维护阶段运行时期主要是系统维护阶段。 软件工程软件工程基础基础2020目目的的:弄弄清清“用用户户需需要要计计算算机机解解决决什什么么问问题题”,以以及及项项目目所所需需的的资资源源和和经费经费任任务务:编编写写出出“系系统统目目标标与与范范围围说说明明书书”软件工程软件工程基础基础问题定义问题定义2121目目的的:弄弄清清“用用户户要要解解决决的的问问题题是是否否能能够够解解决和值得解决决和
16、值得解决”任务:任务:写出写出“可行性论证报告可行性论证报告”。应应制制订订出出“项项目目实实施施计计划划”,或或提提出出终止该项目的建议终止该项目的建议软件工程软件工程基础基础可行性研究可行性研究2222目目的的:要要解解决决的的问问题题是是“做做什什么么”。具具体体而而言言,就就是是通通过过对对问问题题及及其其环环境境的的理理解解、分分析析和和综综合合,以以确确定定最终的目标系统必须做哪些工作最终的目标系统必须做哪些工作任任务务:编编写写“需需求求规规格格说说明明书书”,这这份份文文档档应应包包括括对对软软件件的的性性能能需需求求、功功能能需需求求、环环境境约约束束和和外外部部接接口口等描
17、述等描述 软件工程软件工程基础基础需求分析需求分析2323目目的的:确确定定软软件件的的总总体体结结构构、数数据据结结构、用户界面和算法细节构、用户界面和算法细节 任务:任务:软件设计文档软件设计文档软件设计分为软件设计分为总体设计和详细设计总体设计和详细设计 软件工程软件工程基础基础软件设计软件设计2424总体设计总体设计 目目的的:要要解解决决的的问问题题是是“怎怎样样实实现现目目标标系系统统” ” 任任务务:确确定定软软件件的的总总体体结结构构,进进行行模模块块划划分分,确确定定每每个个模模块块的的功功能能、接接口口及及模模块块之之间间的的调调用用关关系系,并并对对全全局局数数据据结结构
18、构进进行行设设计计,同同时时产产生生概概要要设设计说明书计说明书 软件工程软件工程基础基础软件设计软件设计2525详细设计详细设计 目目的的:要要解解决决的的问问题题是是“应应该该怎怎样样具具体体实实现目标系统现目标系统” ” 任任务务:在在概概要要设设计计的的基基础础上上,设设计计每每个个模模块块实实现现的的细细节节及及对对局局部部数数据据进进行行设设计计( (包包括括模模块块的的数数据据结结构构和和所所需需的的算法算法) ),同时产生详细设计说明书,同时产生详细设计说明书软件工程软件工程基础基础软件设计软件设计2626目目的的:产产生生能能在在计计算算机机上上执执行行的的程程序序任任务务:
19、把把详详细细设设计计的的结结果果翻翻译译成成用用该该程程序序设设计计语语言言编编写写的的程程序序代码代码( (源程序源程序) )软件工程软件工程基础基础软件编码软件编码2727软软件件测测试试是是为为了了发发现现程程序序中中的的错错误误而而执执行行程序的过程程序的过程目目的的和和任任务务:通通过过在在计计算算机机上上执执行行程程序序来来尽尽可可能能多多地地发发现现软软件件产产品品中中的的错错误误和和缺缺陷陷,并并改改正正程程序序中中的的错错误误,以以保保证证程程序序的的可可靠靠运行运行 软件测试分为软件测试分为静态分析和动态测试静态分析和动态测试动态测试又分为动态测试又分为白盒测试和黑盒测试白
20、盒测试和黑盒测试 软件工程软件工程基础基础软件测试软件测试2828白盒测试白盒测试 是是测测试试者者完完全全了了解解被被测测程程序序的的内内部部逻逻辑辑结结构构和和处处理理过过程程,因因此此,可可以以对对其其内内部部结结构构和和处处理理过过程程进进行行测测试试,检检验验内内部部控控制制结结构构和和数数据据结结构构是是否否有有错错,实实际际的的运运行行结结果果与与期期望望的的结结果是否一致果是否一致 软件工程软件工程基础基础软件测试软件测试2929黑盒测试黑盒测试 是是测测试试者者已已经经知知道道被被测测程程序序的的功功能能,而而对对程程序序内内部部的的逻逻辑辑结结构构和和处处理理过过程程完完全
21、全不不用用考考虑虑,只只是是对对它它的的每每一一个个功功能能进进行行测测试试,将将测测试试后后的的结结果果与与期期望望的的结结果果进进行行分分析析比比较较,检检查查程程序序的的功功能能是是否否符符合合规规格格说说明明书书的要求。的要求。软件工程软件工程基础基础软件测试软件测试3030软软件件测测试试的的每每一一次次测测试试都都需需要要准准备备好好一一些些测测试试数数据据,与与被被测测程程序序一一起起输输入入到到计计算算机机中中执执行行;一一般般把把程程序序执执行行一一次次需需要要的的一一组组测测试试数数据据和和该该组组测测试试数数据据可可以以得得出出怎怎样样的的输输出出结结果果( (期望结果期
22、望结果) )称为一个称为一个“测试用例测试用例”软件工程软件工程基础基础软件测试软件测试3131测试用例设计测试用例设计 测测试试用用例例是是由由测测试试数数据据和和期期望望结结果果组组成成。设设计计测测试试用用例例的的目目的的就就是是用用尽尽可可能能少少的的测测试试数数据据,达达到到尽尽可可能能大大的的程程序序覆覆盖盖面面,发发现现尽尽可可能能多多的的软件错误和问题软件错误和问题 软件工程软件工程基础基础软件测试软件测试3232软件测试的原则软件测试的原则 确定期望输出结果确定期望输出结果 测试者应避免测试自己的程序测试者应避免测试自己的程序 对对非非法法和和非非期期望望的的输输入入数数据据
23、也也要要像像合合法法的的和和期期望望的的输入数据一样编写测试用例输入数据一样编写测试用例 程程序序模模块块经经测测试试后后,残残存存的的错错误误数数目目与与已已发发现现的的错错误数目成正比误数目成正比 严格按测试计划执行,避免测试的随意性严格按测试计划执行,避免测试的随意性 对每一个测试结果应当做全面检查对每一个测试结果应当做全面检查 妥妥善善保保存存测测试试计计划划、测测试试用用例例、出出错错统统计计和和最最终终分分析报告,为软件维护提供方便析报告,为软件维护提供方便软件工程软件工程基础基础软件测试软件测试3333软件测试的实施软件测试的实施 单单元元测测试试:是是对对每每一一个个编编制制好
24、好的的模模块块进进行行测测试试,其其目目的的在在于于发发现现和和排排除除各各模模块块内内部部可可能能存存在在的的差差错错及及详详细细设设计计中中产产生生的的错错误误。进进行行单单元元测测试试时时,根根据据程程序序的的内内部部结结构构设设计计测测试试用用例例,主主要要采采用用白白盒盒测试法测试法软件工程软件工程基础基础软件测试软件测试3434软件测试的实施软件测试的实施 集集成成测测试试。是是在在单单元元测测试试的的基基础础上上,将将所所有有模模块块按按照照设设计计要要求求组组装装成成为为系系统统而而进进行行的的测测试试,它它的的任任务务是是检检查查模模块块间间的的接接口口和和通通信信、各各子子
25、功功能能的的组组合合能能否否达达到到预预期期要要求求的的功功能能、全全程程数数据据结结构构是是否否有有问问题题等等。集集成成测测试试主主要要发发现现设设计计阶阶段段产产生生的的错错误误,通通常采用黑盒测试法常采用黑盒测试法 软件工程软件工程基础基础软件测试软件测试3535软件测试的实施软件测试的实施 集成测试时,将各个模块组装成系统的方法有:集成测试时,将各个模块组装成系统的方法有:非非增增量量组组装装方方式式是是先先分分别别对对每每个个模模块块进进行行单单元元测测试试,再再把把所所有有模模块块按按设设计计要要求求组组装装在在一一起起进进行测试,最终得到所要求的软件行测试,最终得到所要求的软件
26、增增量量组组装装方方式式是是把把下下一一个个要要测测试试的的模模块块同同已已经经测测试试好好的的那那些些模模块块结结合合起起来来进进行行测测试试,测测试试完完以后再把下一个应该测试的模块结合进来测试以后再把下一个应该测试的模块结合进来测试软件工程软件工程基础基础软件测试软件测试3636软件测试的实施软件测试的实施 确确认认测测试试。确确认认测测试试是是在在集集成成测测试试通通过过后后,在在用用户户的的参参与与下下进进行行确确认认测测试试。这这时时通通常常使使用用实实际际数数据据进进行行测测试试,以以验验证证系系统统是是否否能能满满足足用用户户的的实实际际需需要要。它它的的任任务务就就是是以以需
27、需求求规规格格说说明明书书作作为为依依据据来来验验证证软软件件的的性性能能、功功能能及及其其他他特特征征是是否否与与用用户户的的要要求求一一致,通常采用黑盒测试致,通常采用黑盒测试 软件工程软件工程基础基础软件测试软件测试3737软件测试的实施软件测试的实施 系系统统测测试试。系系统统测测试试是是在在更更大大范范围围内内进进行行的的测测试试。系系统统测测试试是是把把通通过过确确认认测测试试后后的的软软件件与与计计算算机机硬硬件件、外外设设、某某些些支支持持软软件件、数数据据和和人人员员等等结结合合在在一一起起,在在实实际际运运行行环环境境下下,对对计计算算机机系系统统进进行行的的一一系系列列集
28、集成成测测试和确认测试试和确认测试软件工程软件工程基础基础软件测试软件测试3838软软件件维维护护阶阶段段是是长长期期的的过过程程,因因为为,经经过过测测试试的的软软件件还还可可能能有有错错,用用户户的的要要求求还还会会发发生生变变化化,软软件件运运行行的的环环境境也也可可能能变变化化等等等等。因因此此,交交付付使使用用的的软软件件仍仍然然需需要要继继续续排排错错、修修改改和和扩扩充充,这这就就是是软软件件维维护护。软软件件维维护护的的目目的的是是满满足足用用户户对对已已开开发发产产品品的的性性能能与与运运行行环环境境不不断断提提高高的的需需要要,进进而而达达到延长软件的寿命到延长软件的寿命 软件工程软件工程基础基础软件维护软件维护3939