- 1、本文档共64页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第5章单元测试
软件测试 第5章 单元测试 目录 本次课授课方式 牵引式启发教学法 将采用“4W1H”为主线的教学方法 那么,什么是“4W1H”? What + Why + When + Who + HOW 教学目录 知识回顾 What——单元测试的定义 Why——为什么要进行烦人的单元测试 When——单元测试在什么时候进行 Who——单元测试都由谁来做 How——一个典型的单元测试是如何进行的 一、知识回顾 1、软件开发的基本阶段有哪些?? 需求→分析→设计→编码→测试→维护 作为一个未来的软测从业者,你认为其中的问题在哪? 2、软件开发的模型有哪些?说说你知道的 边做边改模型 瀑布模型 快速原型模型 增量模型 螺旋模型 1970年温斯顿?罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。 规定了它们自上而下、相互衔接的固定顺序,如同瀑布流水,倾泻而下,因此得名。 主要缺点:①在项目各个阶段之间极少有反馈。 ②只有在项目生命周期的后期才能看到结果。 V模型:对应于瀑布模型。 W模型:各开发阶段同步进行测试 一、知识回顾 H模型:测试是独立的流程,贯穿整个生命周期 二、WHAT——单元测试的定义 又称模块测试,是开发过程中进行的最低级别的活动。 是一种细粒度的测试。 其依据是详细设计规格说明书,对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。 3、软件测试模型有哪些?简要介绍一下。 V模型 W模型 H模型 二、WHAT——单元测试的定义 二、WHAT 单元测试的对象: 三、WHY——为什么要进行单元 测试? 单元测试是烦人的 ①它浪费了太多的时间? 一旦编码完成,开发人员总是迫不及待的进行集成工作,这样他们就能看到实际的系统开始启动工作了。 在这种开发步骤中,真实意义上的进步被外表的进步取代了。大量时间将被花费在跟踪那些包涵在独立单元里简单的BUG上面。 二、WHAT 单元测试的对象: ①结构化程序,单元测试所说的单元是指函数, ②面向对象程序,单元测试的单元一般是指类。但从实践来看,以类作为测试单位,复杂度高,可操作性较差,仍然主张以函数作为单元测试的测试单位,但可以用一个测试类来组织某个类的所有测试函数。 简单实用高效才是硬道理。 三、WHY 实际中,进行了完整计划的单元测试和编写代码花费的精力大致是相同的。 在确保手头拥有足够可靠的部件的情况下,开发人员能够进行更有效的系统集成工作。 所以说,完整计划下的单元测试,是对时间的更高效 的利用。 三、WHY ②我是个很棒的程序员,我是不是可以不进行单元测试? 人非圣贤,孰能无过?编码不是一个可以一次性通过的过程。 真实世界中,软件产品必须进行维护,以对操作需求的改变做出反应。修改后,进行可重复的单元测试,可以减少不必要的副作用。 回归测试? 三、WHY ③不管怎样,集成测试都会抓住所有的BUG? 规模越大的代码复杂性越高,查找BUG的代价也越为昂贵。 该图表列出了以一个功能点为基准,各测试阶段的效率。 单元测试的效率大约是集成测试的两倍,系统测试的三倍。 三、WHY 经验表明,一个尽责的单元测试方法将会在软件开发的这个阶段发现很多的BUG,并且修改它们的成本也很低。开发人员可以将精力集中在单元之间的交互作用和全局的功能实现上,而不是充满很多BUG的单元之中不能自拔。 四、WHEN——单元测试在什么时候进行 越早越好,通常在编码阶段进行。 在实际的工作中,不必过分强调开发和测试的顺序,重要的是效果。 1. 编码完成后? 2. 系统测试前? 3. 测试用例编写完成后? 4. 集成测试后? 五、WHO——由谁来做? 白盒测试,又叫程序员测试。 同样,绝大部分情况下,单元测试由开发人员来设计和执行。 六、HOW——内容与方法 一个单元测试的例子 执行单元测试的一般步骤为编译运行程序(查看能否正确运行)→静态测试(检查代码是否符合规范)→动态测试(深入检查代码的正确性,容错性和边界值等),其中静态测试时我们需要提前准备一份“编码规范检查单”,进行动态测试时我们需要提前设计一些测试步骤、测试数据,即测试用例。 #includestdio.h void iszero(int m) { if(m!=0) printf(%d,m); else printf(%d,1); } void main() { int a[5]; int i=0; printf(请输入五个整数\n); for(i=0;i=4;i++) { scanf(%d,a[i]); iszero(a[i]); } } 测试步骤: ①编译运行程序 首先编译程序,没有语法上的错误,编译通过。 然后运行程序
文档评论(0)