版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、总总 纲纲n传统软件开发流程传统软件开发流程n单元测试及单元测试及JUnitn极限测试极限测试n测试驱动开发测试驱动开发传统软件开发流程传统软件开发流程 软件开发生命周期软件开发生命周期(Software Development Life Cycle)需求分析需求分析 什么是需求分析(Requirements Analysis) ? u 需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险(Risk)和评估项目代价(Cost),最终形成开发计划的一个复杂过程u需求分析包括需求的获取、分析、规格说明、验证、管理的一系列需求工程 u需求分析阶段结束后,产生软件规格说明书(SRS, So
2、ftware Requiements Specification)需求分析需求分析 需求分析的作用u需求分析就是分析软件用户的需求是什么u任务就是解决”做什么”的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求 u需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,在一个大型软件系统的开发中,他的作用要远远大于程序设计 需求分析需求分析 需求分析的过程 u问题识别 从系统角度理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,及需求应该达到的标准u分析与综合 逐步细化所有软件功能,找出系统各元素间的联系, 分析是否满足需求,最终综合成系统的解决方案u编写
3、规格说明书 编制文档,描述需求的文档称为软件需求规格说明书 u评审 对功能的正确性,完整性和清晰性,以及其它需求给予评价,评审通过才可进行下一阶段的工作 软件设计软件设计 软件设计分为概要设计与详细设计两个阶段 u需求明确之后,编码之前需进行软件设计u概要设计是结构设计,其主要目标就是给出软件的模块结构 u详细设计的首要任务就是设计模块的程序流程、算法和数据结构,以伪代码实现设计程序逻辑,根据实际情况,很多公司将其与编码结合完成概要设计概要设计 概要设计目的 u将软件系统需求转换为未来系统的设计u逐步开发强壮的系统构架u使设计适合于实施环境,为提高性能而进行设计u 将系统结构分解为模块和库 概
4、要设计概要设计 概要设计的任务 u制定规范 代码体系、接口规约、命名规则 u总体结构设计 功能模块:每个需求点都有相应的模块来实现 模块层次结构:某个角度的软件框架视图 模块间的调用关系:模块间的接口的总体描述 模块间的接口:传递的信息及其结构 处理方式设计:满足功能和性能的算法 用户界面设计u数据库设计 u性能设计概要设计概要设计 概要设计的内容u概述u术语表u系统界面原型u约束和假定u对象模型及描述 UML类图u动态模型 UML时序图u非功能性需求 概要设计的最终产物是概要设计说明书 编码编码 软件编码u将软件设计转换成计算机可接受的程序,即写成以某一程序设计语言表示的源程序清单“u充分了
5、解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量 u面向对象的开发语言和开发环境合为一体,有效提高开发的效率,如Java集成开发环境Eclipse 开发周期中的测试开发周期中的测试 基于开发周期中不同阶段对不同对象所进行的测试基于开发周期中不同阶段对不同对象所进行的测试 u单元测试 - Unit Testing由编程的开发人员自行计划与完成的,针对单个或相关联的一组程序单元的测试u集成测试 - Integration Testing计划于设计阶段,由开发人员与测试人员合作完成的,针对结合起来的不同单元以及它们的接口的测试 u系统测试 System/Opera
6、tional Testing 测试整个系统,以证实它满足要求所规定的功能、质量和性能等方面的特性 开发周期中的测试开发周期中的测试 基于开发周期中不同阶段对不同对象所进行的测试基于开发周期中不同阶段对不同对象所进行的测试u回归测试 - Regression Testing 用于验证改变了的系统或其组件仍然保持应有的特性 u验收测试 - Acceptance testing 测试整个系统,以保证其达到可以交付使用的状态 开发周期中的测试开发周期中的测试 测试用例测试用例u测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用以测试某个程序路径或核实是否满足某
7、个特定需求。 u单元测试用例依赖于详细设计说明书或代码,集成测试用例依赖于概要设计说明书,系统测试用例依赖于需求规格说明书总总 纲纲n传统软件开发流程传统软件开发流程n单元测试及单元测试及JUnitn极限测试极限测试n测试驱动开发测试驱动开发单元测试单元测试 单元测试是用以测试规模较大软件程序中独立的子单元测试是用以测试规模较大软件程序中独立的子程序,子模块或程序方法程序,子模块或程序方法u由于测试重点始于较小的程序单元,所以单元测试是管理测试大量组合元素的方法u当发现某错误,容易定位到具体模块单元,所以单元测试减轻调试(debugging)的任务负担u单元测试提供了同时测试多个模块的可能单元
8、测试单元测试 单元测试目的单元测试目的u将单元模块的实际功能与定义该模块的功能或接口规格(specification)进行对比u与所有的测试过程目标一致,单元测试的目标不是为了证明单元模块符合它的规格,而是为了显示出模块与规格之间的冲突单元测试用例设计单元测试用例设计 白盒测试白盒测试 内部结构分析内部结构分析u语句覆盖 u判定覆盖u条件覆盖 u判定/条件覆盖u条件组合覆盖u路径覆盖单元测试用例设计单元测试用例设计 黑盒测试黑盒测试 外部观察单元行为外部观察单元行为u等价类划分 u边界值分析u错误推测 u综合策略JUnit4系统需求系统需求 建议系统配置建议系统配置uSun JDK 1.5.0
9、_09以上uEclipse 3.2以上u操作系统Windows或LinuxJUnit4新功能新功能 由于由于Java 5 元注释,元注释,JUnit4更加轻量级和灵活更加轻量级和灵活u参数测试(Parametric tests)u异常测试(Exception tests)u超时测试(Timeout tests)u灵活的预定设置(Flexible fixtures)u快捷的测试忽略(ignore tests)u逻辑测试分组JUnit旧框架约束旧框架约束 Java 5 元注释之前,元注释之前,JUnit框架使用两个规则框架使用两个规则u第一,JUnit要求用于逻辑功能测试的任何方法以单词”test
10、”开头,如testUserCreateu第二,对于JUnit认为一个类包含测试,该类本身必须继承于JUnit的TestCaseu一个测试类与其中任一约束相违背则无法运行JUnit4新框架新框架 JUnit4使用使用Java 5 元注释完全消除旧框架两约束元注释完全消除旧框架两约束u测试类不再必须继承特定的父类u用于功能测试的方法不再必须以“test”起头,仅需以新定义的元注释”Test”进行修饰JUnit4元注释元注释 Test 声明声明(declaration)u在JUnit4中声明一个测试仅需要以Test元注释对一个测试方法进行修饰u无需继承任何特殊的类u使用Java 5 静态引入特性来引
11、入断言(Assert)类的断言方法JUnit4元注释元注释 异常测试异常测试(Testing for exceptions)u先前的JUnit版本对异常的测试,需编写try/catch,当异常没有被捕捉测试失败u在JUnit4中测试特定的异常,Test元注释支持expected参数,该参数表示测试运行中预计抛出的异常JUnit4元注释元注释 超时测试超时测试(Testing with timeouts)uJUnit4中,测试用例可以超时值作为参数u以Test后跟timeout值修饰测试方法即可实现自动超时测试JUnit4元注释元注释 忽略的测试忽略的测试(Ignoring tests)u先前的
12、JUnit框架忽略某些测试方法,需修改方法名使其不符合测试方法命名规则,如在方法名前缀”test”前加”_”uJUnit4引入元注释Ignore,用于强制框架忽略某些特别的测试方法JUnit4元注释元注释 测试预定设置测试预定设置(Test fixtures)u测试预定设置可以在一个测试之前或之后运行u预定设置中编写可复用的逻辑,比如,逻辑可能是初始化类,用于测试多个测试用例或者是运行依赖数据的测试之前连接数据库u当运行的许多用例使用相同的逻辑且其中部分或全部失败,预定设置为失败原因的定位及排除提供方便JUnit4元注释元注释 测试预定设置测试预定设置(Test fixtures)u先前的JU
13、nit版本使用机械的预定设置模型,必须将每个测试方法包裹于setUp()与tearDown()方法中uJUnit4使用元注释用于运行预定设置针对每一个测试或仅一次性针对整个类u四个预定设置元注释:两个类级(BeforeClass, AfterClass)和两个方法级(Before, After)JUnit4参数测试参数测试 参数测试参数测试(Parametric testing)u一个应用的商业逻辑需要大量的测试用例以确保其健壮,对于先前版本的JUnit,变化的参数组意味着需要为每一独立的参数组编写一个测试用例uJUnit4引入新特性,可用以创建通用测试用例,该用例可以多组参数值填充,即创建一
14、个单独测试用例运行多次,每一次对应一参数组JUnit4参数测试参数测试 创建参数测试步骤创建参数测试步骤u创建一个无参数的通用测试方法u创建一个静态的填充方法,返回Collection类型,并以Parameter元注释修饰u为参数类型创建类成员,该类成员是通用测试方法必需的u创建一个构造,获取参数类型并相应的将参数与类成员建立连接u指明该测试用例通过原注释RunWith结合Parameterized类运行JUnit4参数测试参数测试 创建通用测试创建通用测试Testpublic void verifyGoodZipCode() throws Exception Matcher mtcher =
15、 this.pattern.matcher(phrase); boolean isValid = mtcher.matches(); assertEquals(Pattern did not validate zip code, isValid, match);JUnit4参数测试参数测试 创建填充方法创建填充方法Parameterspublic static Collection regExValues() return Arrays.asList(new Object 22101, true , 221x1, false , 22101-5150, true , 221015150, false );JUnit4参数测试参数测试 创建类成员创建类成员private String phrase;private boolean match;JUnit4参数测试参
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江绍兴市消防救援支队政府专职消防员招聘152人笔试模拟试题及答案解析
- 严守客户信息的承诺书范文8篇
- 高中高考演讲稿励志篇
- 创维集团2026届春季校园招聘备考题库附答案详解(b卷)
- 2026甘肃省康复中心医院招聘68人备考题库及答案详解(全优)
- 2026浙江丽水市松阳县卫生健康系统引进医疗卫生专业技术人才5人(一)考试备考试题及答案解析
- 2026湖北双环科技股份有限公司社会招聘12人考试备考试题及答案解析
- 2026重庆悦来两江国际酒店会议管理有限公司希尔顿格芮酒店招聘2人备考题库附答案详解(精练)
- 2026浙江事业单位统考丽水市莲都区招聘17人备考题库含答案详解(综合卷)
- 医疗诊断流程及病例管理工具
- 社会责任培训精
- 部编版语文二年级下册第2单元核心素养教案
- 9F级立式余热锅炉模块吊装工法
- 《卢氏字辈总汇》
- 第三单元名著导读《经典常谈》课件-部编版语文八年级下册
- (完整)WORD-版本核心高考高频688词汇(高考高频词汇)
- MCS-51单片机技术项目驱动教程C语言第二版牛军课后参考答案
- 2018年河北公务员行测考试真题(含答案)
- 外科病人的代谢与营养治疗第八版
- GB/T 700-2006碳素结构钢
- 大型工业园区规划方案
评论
0/150
提交评论