软件工程实践_第1页
软件工程实践_第2页
软件工程实践_第3页
软件工程实践_第4页
软件工程实践_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

软件工程实践有人帮你是幸运,学会心怀欢喜与感恩。无人帮你是命运,学会坦然面对与承担。人生的必修课是接受无常,人生的选修课是放下执着。当生命陷落的时候请记得,你必须跌到你从未经历过的谷底,才能站上你从未到达过的高峰。辛勤的蜜蜂永没有时间的悲哀。——布莱克黑天鹅颈部的羽毛是纯黑的还油亮油亮的;背部的每一片羽毛中间是纯黑,周围颜色变浅,片片油亮的羽毛像鱼鳞似的覆盖着,尾部的羽毛翻着小波浪像礼服的裙边,向出席晚宴的女明星。因为这件黑色礼服让黑天鹅显得既高贵又神秘。以澹泊明志,以担当办事,以智能除惑,以无求交友,以勤奋学习,以慎言防口,以勤俭生活,以宏愿立志,以热心做人!

发生问题不要埋怨客观,还要多从主观上找原因。埋怨别人不了解自己的人,首先自己就不了解别人。埋怨组织领导不相信自己的人,首先是自己不相信组织领导。

看财物应象流水,取之有道,用之有度,不做金钱奴隶;做人应象称杆,追求正直,超越平庸,凭良心处世!

做人切记三不要:一不要拿自己的错误来惩罚自己;二不要拿别人的错误来惩罚自己;三不要拿自己的错误来惩罚别人!

做人牢记三点:一、拿望远镜看别人,拿放大镜看自己;二、接受表扬要低下头来,接受批评要抬起头来;三、不要把善良看成愚蠢,不要把谦虚看成懦弱!帅气不轻浮,平常不霸气,善辩不纠缠,能言不多事,谨慎不畏缩,勇敢不粗鲁,细致不小器,精明不计较,重情不自扰,失恋不失志!

做事失败可以重来,做人失败难以挽回。做事忌随心所欲,做人须严谨慎重。一个人的智慧是他的朋友,一个人的谬误是他的敌人。

活泼不放荡,热情不冲动,开放不疯狂,好学不嫉妒,好强不逞强,聪明不傲慢,出色不张扬!

骨宜刚,气宜柔,志宜大,胆宜小,心宜虚,言宜实,慧宜增,福宜惜。做人要以礼义交际,以廉耻律己!

做事先做人,这是处事原则;立业先立德,这是做人原则。做事不做人,永远做不成事;做人不立德,永远做不成人!

自尊、自知、自制是做人最高境界。尊重自己、尊重别人、保持尊严,对自己的行为负责是做人的基本素养!软件工程实践软件工程实践有人帮你是幸运,学会心怀欢喜与感恩。无人帮你是命运,学会坦然面对与承担。人生的必修课是接受无常,人生的选修课是放下执着。当生命陷落的时候请记得,你必须跌到你从未经历过的谷底,才能站上你从未到达过的高峰。辛勤的蜜蜂永没有时间的悲哀。——布莱克黑天鹅颈部的羽毛是纯黑的还油亮油亮的;背部的每一片羽毛中间是纯黑,周围颜色变浅,片片油亮的羽毛像鱼鳞似的覆盖着,尾部的羽毛翻着小波浪像礼服的裙边,向出席晚宴的女明星。因为这件黑色礼服让黑天鹅显得既高贵又神秘。以澹泊明志,以担当办事,以智能除惑,以无求交友,以勤奋学习,以慎言防口,以勤俭生活,以宏愿立志,以热心做人!

发生问题不要埋怨客观,还要多从主观上找原因。埋怨别人不了解自己的人,首先自己就不了解别人。埋怨组织领导不相信自己的人,首先是自己不相信组织领导。

看财物应象流水,取之有道,用之有度,不做金钱奴隶;做人应象称杆,追求正直,超越平庸,凭良心处世!

做人切记三不要:一不要拿自己的错误来惩罚自己;二不要拿别人的错误来惩罚自己;三不要拿自己的错误来惩罚别人!

做人牢记三点:一、拿望远镜看别人,拿放大镜看自己;二、接受表扬要低下头来,接受批评要抬起头来;三、不要把善良看成愚蠢,不要把谦虚看成懦弱!帅气不轻浮,平常不霸气,善辩不纠缠,能言不多事,谨慎不畏缩,勇敢不粗鲁,细致不小器,精明不计较,重情不自扰,失恋不失志!

做事失败可以重来,做人失败难以挽回。做事忌随心所欲,做人须严谨慎重。一个人的智慧是他的朋友,一个人的谬误是他的敌人。

活泼不放荡,热情不冲动,开放不疯狂,好学不嫉妒,好强不逞强,聪明不傲慢,出色不张扬!

骨宜刚,气宜柔,志宜大,胆宜小,心宜虚,言宜实,慧宜增,福宜惜。做人要以礼义交际,以廉耻律己!

做事先做人,这是处事原则;立业先立德,这是做人原则。做事不做人,永远做不成事;做人不立德,永远做不成人!

自尊、自知、自制是做人最高境界。尊重自己、尊重别人、保持尊严,对自己的行为负责是做人的基本素养!第八讲软件测试内容和目的测试的目的和策略测试的活动测试的产品测试的方法和度量要求测试用例构造技术测试的目标Myers测试是一个为了寻找错误而运行的过程一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例一个成功的测试是指揭示了迄今为止尚未发现的错误的测试IEEE由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求;或识别出期望的结果和实际结果之间有无差别。Myers软件测试十原则程序员应避免测试自己编制的程序测试用例的设计必须包括预期的输出结果测试用例应包括有效的和期望的输入情况,也要包括无效的和不期望的输入情况彻底检查每个测试结果只检查程序是否做了它应该做的事仅仅完成了测试工作的一半,另一半则是要检查程序是否做了它不该做的事避免不可重复的即兴测试,保留全部测试用例一段程序中存在错误的概率与在这段程序中已发现的错误数成正比测试是一项非常复杂、创造性的和需要高度智慧的挑战性任务不要为了便于测试擅自修改程序测试工作必须有明确的目标测试的原则(DAVIE)所有的测试都应追溯到需求应该在测试工作真正开始前的较长时间就进行测试计划Pareto(20-80)原则应用于软件测试测试应从“小规模”开始,逐步转向“大规模”穷举测试是不可能的为了达到最佳效果,应该由独立的第三方来构造测试测试策略途径测试开始于模块层,然后延伸到整个基于计算机的系统集合中不同的测试技术适用于不同的时间点测试是由软件的开发人员和(对大型系统来说)独立的测试组来管理的测试和调试是不同的活动,但是调试必须能够适应任何的测试策略测试完成准则资源耗尽采用的测试方法满足某种测试充分性要求满足覆盖率等可度量的测试要求一段时期没有发现问题且所有发现问题均已解决通过测试评估出软件达到要求的可靠度测试发现频率和趋势达到预先计划的限度之下(限度根据要求、经验和历史数据得到)在一段时期没有出现等级高的问题测试概图阶段活动单元集成合格性系统技术方法静态测试静态分析代码审查动态测试白盒测试白盒测试用例技术黑盒测试黑盒测试用例技术V模型系统需求软件需求概要设计详细设计单元测试集成测试编码合格性测试系统测试详细设计概要设计软件需求系统需求软件任务编译后的单元测试后的单元集成的软件测试后的软件交付软件验证验证验证验证验证验证验证与确认验证与确认J.McDermid于1994年在“软件工程师参考手册”中提出测试活动单元测试(UNIT)集成测试(INTERGRATION)合格性测试(QUALIFICATION)系统测试(SYSTEM)单元测试对软件单元进行测试,确实保证它作为一个单元能正常地工作单元测试的目的是验证单元满足功能、性能和接口等的要求单元测试采用的技术:静态分析、代码审查、白盒动态测试测试的充分性由各种测试覆盖率来度量单元动态测试的内容主要针对下列模块的五个基本特性进行:模块接口局部数据结构重要的执行路径出错处理路径影响以上各点的边界条件单元测试用例的要求1)用指定值、异常值和极限值验证全部计算;2)验证全部输入数据的各种选择;3)验证全部输出数据的各种选择和格式;4)每个单元的全部可执行语句至少执行一次;5)在每个分支点进行选择的测试。单元测试用例的内容1)指明被验证的需求或功能;2)解释测试如何进行,说明验证代码与单元设计一致的准则和技术,以验证接口满足需求;3)指明测试使用的支持软件,如测试工具、驱动模块、桩模块、动态路径分析工具等;4)说明全部输入数据和(或)驱动程序等;5)说明预期的输出,包括数据值或其它可以验证的结果;6)通过准则。

测试概图阶段活动单元集成合格性系统技术方法静态测试静态分析代码审查动态测试白盒测试白盒测试用例技术黑盒测试黑盒测试用例技术V模型系统需求软件需求概要设计详细设计单元测试集成测试编码合格性测试系统测试详细设计概要设计软件需求系统需求软件任务编译后的单元测试后的单元集成的软件测试后的软件交付软件验证验证验证验证验证验证验证与确认验证与确认

J.McDermid于1994年在“软件工程师参考手册”中提出测试活动单元测试(UNIT)集成测试(INTERGRATION)合格性测试(QUALIFICATION)系统测试(SYSTEM)单元测试对软件单元进行测试,确实保证它作为一个单元能正常地工作单元测试的目的是验证单元满足功能、性能和接口等的要求单元测试采用的技术:静态分析、代码审查、白盒动态测试测试的充分性由各种测试覆盖率来度量单元动态测试的内容主要针对下列模块的五个基本特性进行:模块接口局部数据结构重要的执行路径出错处理路径影响以上各点的边界条件单元测试用例的要求1)用指定值、异常值和极限值验证全部计算;2)验证全部输入数据的各种选择;3)验证全部输出数据的各种选择和格式;4)每个单元的全部可执行语句至少执行一次;5)在每个分支点进行选择的测试。单元测试用例的内容1)指明被验证的需求或功能;2)解释测试如何进行,说明验证代码与单元设计一致的准则和技术,以验证接口满足需求;3)指明测试使用的支持软件,如测试工具、驱动模块、桩模块、动态路径分析工具等;4)说明全部输入数据和(或)驱动程序等;5)说明预期的输出,包括数据值或其它可以验证的结果;6)通过准则。

单元测试执行环境驱动模块被测单元桩模块B桩模块C桩模块A集成测试依据软件设计确定的软件结构,按照软件集成“工序”,把各个软件单元逐步集成为完整的软件系统,并不断发现和排除错误,以保证联接、集成的正确性。

集成测试的内容1)软件单元的接口测试;2)软件部件的功能、性能测试;3)全面数据结构测试;4)必要的运行时间、存贮空间、计算精度测试;5)边界条件和非法输入的测试。

集成测试的要求1)必须对有调用关系的软件单元之间的所有调用进行测试,验证每个调用接口的完整性和一致性;2)应对软件进行正确处理的能力的经受错误影响的能力进行测试;3)应测试在各种外部输入下,从外部接口采集和(或)发送数据的能力,包括对正确数据及状态的处理,对接口错误、数据错误、协议错误的识别及处理。

集成测试的通过准则1)软件单元无错误地连接;2)满足各项功能、性能要求;3)对错误的输入有正确处理的能力;4)对测试中的异常有合理解释;5)人机界面、对外接口正确无误;软件集成策略1)非增量方式先测试好每一个软件单元,然后一次组装在一起再测试整个程序。2)增量方式逐步把下一个要被组装的软件单元或部件,同已测好的软件部件结合起来测试。增量方式主要包括自顶向下、自底向上、自顶向下与自底向上相结合等方法。集成方式非增量方式

BigBang增量方式自顶向下方法自底向上方法“三明治”方法增量和非增量方式的优缺点增量方式的优点:a.增量方式占用人工较少。b.增量方式可以较早地发现模块接口错误。c.增量方式容易排错。d.增量方式测试效果好,比较彻底。非增量方式的优点:a.非增量方式占用机器时间较少。b.非增量方式有利于并行开发。非增量方式有一种很直接、原始的组装方式,它把所有通过单元测试的模块一古脑儿地全部集成在一起,直接组装成软件系统,并对它进行测试。这种被贬义地称作大爆炸(BigBang)的组装方式,目前仍在许多场合使用。

人们期望它可以带来方便、快捷的组装效果。这种方法遭到广大测试专家的批评,普遍认为它会引起混乱,且难以确定错误源的位置。自顶向下方法自顶向下集成法是一个模块一个模块地组装软件的方法。按照控制的结构,从主控模块(主程序)开始,向下地逐个把模块连接起来。集成的方式有两种:深度优先组装法及宽度优先组装法。深度优先法是先把结构中的一条主要的控制路经上的全部模块逐步组装起来。然后再连接其它的控制路径。宽度优先法是从结构的顶层开始逐层往下组装。自顶向下集成的过程步骤1)主控模块用作为测试驱动器。直接附属于主控模块的各模块全都用桩模块代替。2)按照所选的组装法(即深度优先或宽度优先)每次用一个真模块取代一个附属的桩模块。3)当装入每个真模块时都要进行测试。4)作完每一组测试后又再用一个真模块代替另一个桩模块。5)可以进行回复测试(即重新再作过去作过的全部或部分测试),以便肯定没有新的错误发生。自底向上方法自底向上集成测试方法是从软件结构中最底层的、最基本的软件单元开始进行集成和测试。由于在逐步向上组装过程中下层模块总是存在的,也就是说不再需要桩模块了,但却需要调用这些模块开展工作的驱动模块。自底向上集成的过程步骤1)低层的模块组成簇,以执行某个特定的软件子功能。2)编写一个驱动模块作为测试的控制程序,和被测试的簇连在一起,负责安排测试用例的输入及输出。3)对簇进行测试。4)拆去各个小簇的驱动模块,把几个小簇合并成大簇,再重复做2、3及4步。

这样在软件结构上逐步向上组装。“三明治”方法自顶向下测试的主要优点是能较早显示出整个程序的轮廓。主要缺点是,当测试上层模块时使用桩模块较多,很难模拟出真实模块的全部功能,使部分测试内容被迫推迟,直至换上真实模块后再补充测试。自底向上测试从下层模块开始,设计测试用例比较容易,但是在测试的早期不能显示出程序的轮廓。针对自顶向下、自底向上方法各自的优点和不足,人们提出了自顶向下和自底向上相结合,从两头向中间逼近的混合式组装方法,被形象称之为“三明治”方法。“三明治”方法的步骤步骤:1)对上层模块采取自顶向下测试;2)对关键模块或子系统采取自底向上测试。混合式的“三明治”方法,综合了自顶向下、自底向上两种方法的长处,扬了长避了短。例如,对关键模块采取自底向上测试,就可能把输入输出模块提前组装进程序,使设计测试用例变得较为容易;或者使具有重要功能的模块早点与有关的模块相连,以便及早暴露可能存在的问题。除关键模块及少数与之相关的模块外,对其余模块尤其是上层模块仍采取自顶向下的测试方法,以便收到较早显示程序总体轮廓的效果。合格性测试根据软件需求规格说明中定义的全部功能、性能、可靠性等需求,测试整个软件是否达到要求。合格性测试内容功能测试性能测试资源和余量测试边界测试操作测试外部接口测试强度测试可靠性测试安全性测试恢复性测试安装性测试移植性测试保密性测试回归测试功能测试根据功能需求进行测试,以确认软件与软件功能需求的一致功能测试应达到以下要求:a.每一个软件功能都必须被测试用例或被认可的异常所覆盖(或由于异常情况的出现而未达到期望的覆盖,但该异常已被测试者认识到,并进行了处理);b.用一系列合理的数据类型和数据值运行,测试软件在正常、超负荷、饱和和其它“最坏”情况下的结果;c.用假想的数据类型和数据值运行,以测试软件排斥不规则(非法)输入的能力。性能测试对软件是否与所需定量的性能需求一致进行确认。包括:a.软件在获得定量结果时计算的精确性;b.有时间要求的软件,其实际的运行时间;c.软件完成功能所能处理的数据量;d.软件各部分的协调性;e.其它性能指标。

资源和余量测试测试是否符合软件需求规格说明中提出的处理时间、储存空间和内存、输入/输出通道等资源使用的要求,并在设计中为这些资源留出了余量。通常情况下,应保证在储存空间和内存,输入/输出通道,以及处理时间的占用上至少有20%的余量。边界测试测试软件在输入域和(或)输出域、数据结构、状态转换、过程参数、功能界限等边界点或端点情况下的运行状态。

操作测试操作测试包括对用户接口、人机接口和人机交互要求的所有测试。应以常规操作、非常规操作、误操作、快速操作等情况来检验界面的可靠性。操作测试工作还包括对照软件使用说明,逐条进行相应的操作,以检测软件使用说明的完整性、正确性、与软件程序的一致性。外部接口测试确认软件与其外部接口要求的一致性。测试内容:a.测试所有外部接口,检测接口信息的格式和内容。b.对每一个外部输入/输出接口应进行正常和异常情况测试。如果软件不能在运行环境中测试,则有必要使用模拟程序或其它测试工具。

强度测试强度测试是在预先规定的一段时间内,在软件设计的极限状态下,进而在超设计能力的状态下,运行软件以测试软件的所有功能。可以允许在饱和点上性能降级,但必须保证仍能顺利运行。可靠性测试软件可靠性测试是以能获得可用来评估软件可靠性的数据为目的的一种软件测试。例如,基于软件运行剖面设计软件测试用例,并用这些测试用例按出现概率进行随机输入以模拟软件真实运行状态,运行软件以获得失效数据,进而给出软件的可靠性度量,这就是一种软件可靠性测试。软件运行剖面是指:1)软件运行期间执行各个任务的事件和各事件相应概率的集合。2)系统使用条件的一种定义,系统输入值用其按时间或在可能输入范围中以概率分布来定义。

安全性测试针对程序中危险防止和危险处理设施进行的测试,以验证其是否有效。安全性测试应包括下面的工作:a.全面检验软件在软件需求规格说明中规定的防止危险状态措施的有效性和在每一个危险状态下的反应;b.对软件设计中用于提高安全性的结构、算法、容错、冗余、中断处理等方案,进行针对性测试;c.在异常条件下测试软件,以表明不会因可能的单个或多个输入错误而导致不安全状态。d.用错误的安全性关键操作进行测试,以验证系统对这些操作错误的反应;e.对安全性关键的软件单元和软件部件,要单独进行加强的测试,以确认其满足安全性需求。恢复性测试对有恢复或重置(RESET)功能的软件,应专门对每一类导致恢复或重置的情况进行测试,以确认恢复或重置功能。安装性测试按规程进行安装正确性测试,包括参数装订、程序加载等。移植性测试在所有要求的移植环境中运行软件以验证软件的移植性。保密性测试验证软件是否提供了软件需求规格说明中规定的保密机制,使软件的机密性、完整性和有效性不被破坏。回归测试回归测试是一种选择性重新测试,目的是检测系统或系统组成部分在修改期间产生的缺陷,用于验证已进行的修改并未引起不希望的有害效果,或确认修改后的系统或系统组成部分仍满足规定的要求。Alpha测试和Beta测试开发者想预见用户的使用过程是不可能的对于通用软件产品,让每个用户都进行接收(验收)测试是不切实际的采用Alpha测试和Beta测试来发现只有最终用户才能发现的问题Alpha测试:由一个用户在开发者的场所、在开发者指导下进行测试Beta测试:由最终用户在一个或多个用户场所单独地进行测试系统测试软件与与系统中其它的软、硬件对接并测试其接口的过程系统测试的目的,是在真实的系统工作环境下检验软件是否能与系统正确连接,,并确认软件是否与用户需求(系统需求)一致系统测试内容安装性测试功能测试性能测试操作测试外部接口测试安全性测试:注意进行硬件和软件在各种故障模式下的测试;最坏配置情况下的测试;错误操作情况下的测试;多机系统出现故障切换时,系统的功能、性能连续平稳性测试性能强度测试降级能力强度测试独立(第三方)测试第三方指的是与软件项目甲方、乙方相对独立的其它机构。进行独立测试的目的是进一步加强软件质量保证工作,提高软件的质量,并对软件产品进行客观评价。进行第三方独立测试通常有以下优点:1)发挥专业技术优势;2)发挥独立性优势;3)进一步促进承办方的工作。测试方法静态测试静态分析代码审查代码走查技术评审桌面检查动态测试白盒测试控制流覆盖数据流覆盖黑盒测试功能分解等价类划分边值分析因果图随机测试猜错法静态测试代码审查:小组集体阅读讨论检查代码代码走查:小组集体用“脑”执行并检查代码桌面检查:由程序员阅读自己编写的程序技术评审:会议形式讨论检查代码静态分析:对代码的机械性、程式化的特性分析方法,包括控制流分析、数据流分析、接口分析、表达式分析白盒测试与黑盒测试对比黑盒测试白盒测试优点适用于各测试阶段从产品功能角度测试容易入手生成测试数据可以构成测试数据使特定程序部分得到测试有一定的充分性度量手段可获得较多工具支持缺点某些代码段得不到测试如果规格说明有误则无法发现不易进行充分性度量不易生成测试数据无法对未实现规格说明得部分测试工作量大,通常只用于单元测试,有引用局限性质是一种确认技术,回答“我们在构造一个正确得系统吗?”是一种验证技术,回答“我们在正确地构造一个系统吗?”白盒测试控制流测试语句覆盖分支覆盖条件覆盖条件组合覆盖路径覆盖数据流测试全定义使用路径全使用路径全定义路径数据流异常状态图测试覆盖率采用白盒法进行测试时,考虑的是测试用例对程序内部逻辑的覆盖程度。最彻底的白盒法是覆盖程序中的每一条路径,但这往往大到无法实现。因此采用其它一些标准来量度覆盖的程度,并希望覆盖程度尽可能高些。例子func(intA,B,X){if((A>1)&&(B=0)){X:=X/A};if((A=2)||(X>1)){X:=X+1};}A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced流图符号语句覆盖语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。语句覆盖率:已执行的可执行语句占程序中可执行语句总数的百分比。语句覆盖例取A=2,B=0,X=3A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced分支覆盖分支覆盖又称判定覆盖。分支覆盖:执行足够的测试用例,使得程序中每个判定都获得一次“真”值和“假”值,或者说使得程序中的每一个分支至少都通过一次。分支覆盖率:已取过“真”和“假”两个值的判定占程序中所有条件判定个数的百分比。分支覆盖例A=3,B=0,X=1沿路径acd执行A=2,B=1,X=3沿路径abe执行A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced条件覆盖条件覆盖:执行足够的测试用例,使得判定中的每个子条件都获得所有可能的结果。条件覆盖例共有四个条件:A>1,B=0,A=2,X>1A=2,B=0,X=4沿路径ace执行A=1,B=1,X=1沿路径abd执行A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced分支/条件覆盖分支/条件覆盖:执行足够的测试用例,

使得判定中每个子条件取到各种可能的值,并使每个判定取到各种可能的结果。分支/条件覆盖例做练习A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced条件组合覆盖条件组合覆盖:执行足够的测试用例,使得每个判定中各条件的所有可能的组合都出现一次。条件组合覆盖例共有8种条件:①A>1,B=0②A>1,B≠0③A≤1,B=0④A≤1,B≠0⑤A=2,X>1⑥A=2,X≤1⑦A≠2,X>1⑧A≠2,X≤1A=2,B=0,X=4(①⑤)A=2,B=1,X=1(②⑥)A=1,B=0,X=2(③⑦)A=1,B=1,X=1(④⑧)A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced路径覆盖路径覆盖:执行足够的测试用例,使程序所有可能的路径都获得通过。路径覆盖例四条路径:ace,abd,abe,acdA=2,B=0,X=3(ace)A=1,B=0,X=1(abd)A=2,B=1,X=1(abe)A=3,B=0,X=1(acd)A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced覆盖率要求对单元测试来说,语句覆盖和分支覆盖是最基本的要求。由于程序中错误(异常)处理工作的重要性以及其结构相对简单,要求错误处理要做到路径覆盖。对质量要求高的软件单元,可根据情况提出条件覆盖、分支/条件覆盖、条件组合覆盖以及其它更高的覆盖要求。控制流测试的测试用例生成经验测试法通过研究程序选择初始测试用例通过测试执行和覆盖率统计增加测试用例不断运行直至达到要求的测试覆盖率与黑盒测试结合纯粹白盒测试方法列出为实现覆盖所需的全部路径根据每个路径设计测试用例注意测试零次循环、一次循环和最大次数循环黑盒测试功能分解等价类划分边值分析因果图猜错法功能分解使用功能抽象的方法把程序分解为功能单元使用数据抽象的方法产生测试每个功能单元的数据注意测试功能序列组合和输入数据组合等价类划分将输入数据域划分各自具有典型代表意义的有限个等价类,从每个等价类中产生一些代表性测试用例输入范围的左、中、右各个离散类别不同的处理方式注意划分有效等价类和无效等价类设计一些仅覆盖一个等价类的测试用例边值分析经验表明,程序在边界处的处理常常是关键的,也是容易发生错误的使用正好等于、小于、大于边界值的数据进行测试,发现错误的概率较大,这就是边值分析技术使用原则:如果输入条件规定了取值范围或数据个数,则可选择正好等于边界值、刚刚在边界范围内和刚刚超越边界外的值进行测试针对规格说明的每个输入条件,使用上述原则对于有序数列,选择第一个和最后一个因果图通过画因果图,把用自然语言描述的功能说明转换为判断表,然后为判断表的每一列设计一个测试用例:分析规格说明,引出原因(输入条件)和结果(输出条件),并进行标识建立连接各个原因和各个结果的因果图标注不可能出现的原因和结果组合情况将因果图转换为决策表对每一列建立一个测试用例随机测试从所有可能的输入值中随机选取测试输入数据的方法使数据在规定的取值范围内并服从预期的概率分布基于运行剖面的测试方法是可靠性测试的主要方法预期结果可以由人工或定性的方法确定是强度测试的有效手段猜错法列出所有可能有的错误和易错情况表,基于该表设计测试用例有力的补充充分发挥敏锐、经验等能力直

温馨提示

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

评论

0/150

提交评论