软件测试教案文档格式.docx
- 文档编号:17511326
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:52
- 大小:94.04KB
软件测试教案文档格式.docx
《软件测试教案文档格式.docx》由会员分享,可在线阅读,更多相关《软件测试教案文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
第一讲软件测试背景,软件测试的基本理论
1、软件测试背景
软件的质量就是软件的生命,为了保证软件的质量,人们在长期的开发过程中积累了许多经验并形成了许多行之有效的方法。
但是借助这些方法,我们只能尽量减少软件中的错误和不足,却不能完全避免所有的错误。
软件测试是最有效的排除和防止软件缺陷与故障的手段,并由此促进了软件测试理论与技术实践的快速发展。
新的测试理论、测试方法、测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。
2、软件错误案例研究
人们常常不把软件当回事,没有真正意识到它已经深入渗透到我们的日常生活中,软件在电子信息领域里无处不在。
现在有许多人如果一天不上网查看电子邮件,简直就没法过下去。
我们已经离不开24小时包裹投递服务、长途电话服务和最先进的医疗服务了。
然而软件是由人编写开发的,是一种逻辑思维的产品,尽管现在软件开发者采取了一系列有效措施,不断地提高软件开发质量,但仍然无法完全避免软件(产品)会存在各种各样的缺陷。
3、软件缺陷的定义
对于软件缺陷的准确定义,通常有以下5条描述:
(1)软件未实现产品说明书要求的功能。
(2)软件出现了产品说明书指明不会出现的错误。
(3)软件超出实现了产品说明书提到的功能。
(4)软件实现了产品说明书虽未明确指出但应该实现的目标。
(5)软件难以理解,不易使用,运行缓慢或者终端用户认为不好。
4、软件缺陷的原因
软件缺陷的产生,首先是不可避免的。
其次我们可以从软件本身,团队工作和技术问题等多个方面分析,比较容易确定造成软件缺陷的原因,归纳如下:
(1)技术问题
●算法错误。
●语法错误。
●计算和精度问题。
●系统结构不合理,造成系统性能问题。
●接口参数不匹配出现问题。
(2)团队工作
●系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难。
●不同阶段的开发人员相互理解不一致,软件设计对需求分析结果的理解偏差,编程人员对系统设计规格说明书中某些内容重视不够,或存在着误解。
●设计或编程上的一些假定或依赖性,没有得到充分的沟通。
(3)软件本身
●文档错误、内容不正确或拼写错误。
●数据考虑不周全引起强度或负载问题。
●对边界考虑不够周全,漏掉某几个边界条件造成的错误。
●对一些实时应用系统,保证精确的时间同步,否则容易引起时间上不协调、不一致性带来的问题。
●没有考虑系统崩溃后在系统安全性、可靠性的隐患。
●硬件或系统软件上存在的错误。
●软件开发标准或过程上的错误。
第二讲软件测试的基本理论
软件测试在软件生存周期中横跨两个阶段。
通常在编写出每个模块之后就对它进行必要的测试(称为单元测试),模块的编写者和测试者是同一个人,编码和单元测试属于软件生存周期的同一个阶段。
在结束这个阶段之后,对软件系统还要进行各种综合测试,这是软件生存周期中另一个独立的阶段,通常由专门的测试人员来完成这项工作。
目前,人们越来越重视软件测试,软件测试的工作量往往占到软件开发总工作量的40%以上。
在特殊情况下,测试那些重大的软件,例如核反应堆监控软件,其测试费用可能相当于软件工程其他步骤总成本的三倍到五倍。
因此,我们必须高度重视软件测试工作,绝不能认为写出程序代码之后软件开发工作就完成了。
1.软件测试的定义
人们对于软件测试的目的可能会存在着这样的认识:
测试是为了证明程序是正确的。
实际上,这种认识是错误的。
因为如果表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试的方案,也不会主动去检测,排除程序中可能存在的一些隐患。
显然,这样的测试对于发现程序中的错误,完善和提高软件的质量作用不大。
因为程序在实际运行中会遇到各种各样的实际问题,而这些问题可能是我们在设计时没有考虑到的,所以在设计测试方案时,就应该尽量让它能发现程序中的错误,从而在软件投入运行之前就将这些错误改正,最终把一个高质量的软件系统交给用户使用。
2.软件测试的目标
软件测试工作是非常必要的,测试的目的就在于在软件投入运行之前,尽可能多地发现软件中的错误。
软件测试是对软件规格说明、设计和编码的最后复审,是软件质量保证的关键步骤。
实现这个目的关键是如何合理地设计测试用例,在设计测试用例时,要着重考虑那些易于发现程序错误的方法策略与具体数据。
综上所述,软件测试的目的包括以下三点:
(1)测试是程序的执行过程,目的在于发现错误,不能证明程序的正确性,仅限于处理有限种的情况。
(2)检查系统是否满足需求,这也是测试的期望目标。
(3)一个好的测试用例在于发现还未曾发现的错误;
成功的测试是发现了错误的测试。
3.软件测试的原则:
1.应当把尽早地和不断地进行软件测试作为软件开发者的座右铭。
坚持在软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些隐患,提高软件质量。
2.测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。
如果对测试输入数据没有给出预期的程序输出结果,那么就缺少了检验实测结果的基准,就有可能把一个似是而非的错误结果当成正确结果。
3.程序员应避免检查自己的程序。
如果由别人来测试程序员编写的程序,可能会更客观,更有效,并更容易取得成功。
4.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
5.充分注意测试中的群集现象。
测试时不要以为找到了几个错误问题就已解决,不需继续测试了。
应当对错误群集的程序段进行重点测试,以提高测试投资的效益。
6.严格执行测试计划,排除测试的随意性。
对于测试计划,要明确规定,不要随意解释。
7.应当对每一个测试结果做全面检查。
这是一条最明显的原则,但常常被忽视。
必须对预期的输出结果明确定义,对实测的结果仔细分析检查,抓住关键,暴露错误。
8.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
4.软件测试分类
从不同的角度,可以把软件测试技术分成不同种类。
1.从是否需要执行被测软件的角度分类
2.从软件测试用例设计方法的角度分类
3.从软件测试的策略和过程的角度分类。
1.3软件测试与软件开发
掌握测试与软件开发各阶段的关系
掌握测试与开发的并行性
了解测试与开发模型
第一讲、测试与软件开发各阶段的关系
软件开发过程是一个自顶向下,逐步细化的过程,首先在软件计划阶段定义了软件的作用域,然后进行软件需求分析,建立软件的数据域、功能和性能需求、约束和一些有效性准则。
接着进入软件开发,首先是软件设计,然后再把设计用某种程序设计语言转换成程序代码。
而测试过程则是依相反的顺序安排的自底向上,逐步集成的过程,低一级测试为上一级测试准备条件。
此外还有两者平行地进行测试。
如图1-2,首先对每一个程序模块进行单元测试,消除程序模块内部在逻辑上和功能上的错误和缺陷。
再对照软件设计进行集成测试,检测和排除子系统(或系统)结构上的错误。
随后再对照需求,进行确认测试。
最后从系统全体出发,运行系统,看是否满足要求。
图1-2软件测试与软件开发过程的关系
2.测试与开发的并行性
在软件的需求得到确认并通过评审后,概要设计工作和测试计划制定设计工作就要并行进行。
如果系统模块已经建立,对各个模块的详细设计、编码、单元测试等工作又可并行。
待每个模块完成后,可以进行集成测试、系统测试。
3.测试与开发模型
软件测试不仅仅是执行测试,而是一个包含很多复杂活动的过程,并且这些过程应该贯穿于整个软件开发过程。
在软件开发过程中,应该什么时候进行测试,如何更好地把软件开发和测试活动集成到一起?
其实这也是软件测试工作人员必须考虑的问题,因为只有这样,才能提高软件测试工作的效率,提高软件产品的质量,最大限度地降低软件开发与测试的成本,减少重复劳动。
第二章软件测试过程与策略
2.1软件测试的复杂性与经济性分析
2.2软件测试流程
了解软件测试的复杂性与经济性分析
掌握软件测试流程
软件测试流程
教学内容
第一讲、软件测试的复杂性与经济性分析
人们对软件工程开发的常规认识中,认为开发程序是一个复杂而困难的过程,需要花费大量的人力、物力和时间,而测试一个程序则比较容易,不需要花费太多的精力。
这其实是人们对软件工程开发过程理解上的一个误区。
在实际的软件开发过程中,作为现代软件开发工业一个非常重要的组成部分,软件测试正扮演着越来越重要的角色。
随着软件规模的不断扩大,如何在有限的条件下对被开发软件进行有效的测试正成为软件工程中一个非常关键的课题。
1.软件测试的复杂性
软件测试的经济性有两方面体现:
一是体现在测试工作在整个项目开发过程中的重要地位,二是体现在应该按照什么样的原则进行测试,以实现测试成本与测试效果的统一。
测试是软件生存期中费用消耗最大的环节。
测试费用除了测试的直接消耗外,还包括其它的相关费用。
影响测试费用的主要因素有:
(1)软件面向的目标用户
(2)可能出现的用户数量
(3)潜在缺陷造成的影响
(4)开发机构的业务能力
2.软件测试的经济性
软件测试的充分性准则有以下几点:
●对任何软件都存在有限的充分测试集合;
●当一个测试的数据集和对于一个被测的软件系统的测试是充分的,那么再多增加一些测试数据仍然是充分的。
这一特性称为软件测试的单调性;
●即使对软件所有成分都进行了充分的测试,也并不意味着整个软件的测试已经充分了。
这一特性称为软件测试的非复合性;
●即使对一个软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分地得到了测试。
这个特性称为软件测试的非分解性;
●软件测试的充分性与软件的需求、软件的实现都相关;
●软件测试的数据量正比于软件的复杂度。
这一特性称为软件测试的复杂性;
●随着测试次数的增加,检查出软件缺陷的几率随之不断减少。
软件测试具有回报递减率。
3.软件测试的误区
在实际的项目开发与管理中仍然存在很多管理上或者技术上的误区。
(1)期望用测试自动化代替大部分人工劳动
(2)忽视需求阶段的参与
(3)软件测试是技术要求不高的岗位
第二讲、软件测试流程
1.软件开发的V模型
软件开发流程的V模型是一个广为人知的模型,如图2-2所示。
图2-2V模型示意图
2.软件测试过程
软件测试过程按各测试阶段的先后顺序可分为单元测试、集成测试、确认(有效性)测试、系统测试和验收(用户)测试5个阶段,如图2-3所示。
(1)单元测试:
测试执行的开始阶段。
测试对象是每个单元。
测试目的是保证每个模块或组件能正常工作。
单元测试主要采用白盒测试方法,检测程序的内部结构。
(2)集成测试:
也称组装测试。
在单元测试基础上,对已测试过的模块进行组装,进行集成测试。
测试目的是检验与接口有关的模块之间的问题。
集成测试主要采用黑盒测试方法。
(3)确认测试:
也称有效性测试。
在完成集成测试后,验证软件的功能和性能及其他特性是否符合用户要求。
测试目的是保证系统能够按照用户预定的要求工作。
确认测试通常采用黑盒测试方法。
(4)系统测试:
在完成确认测试后,为了检验它能否与实际环境(如软硬件平台、数据和人员等)协调工作,还需要进行系统测试。
可以说,系统测试之后,软件产品基本满足开发要求。
(5)验收测试:
测试过程的最后一个阶段。
验收测试主要突出用户的作用,同时软件开发人员也应该参与进去。
2.3静态测试与动态测试
2.4黑盒测试与白盒测试
1.使学生了解静态测试与动态测试的概念
2.使学生了解黑盒测试与白盒测试的概念
软件测试中的几个测试的内容的区别与联系
静态测试与动态测试
第一讲静态测试与动态测试
1.静态测试
静态测试可以完成的工作如下:
(1)可以发现如下的程序缺陷:
●错用了局部变量和全局变量;
●不匹配的参数;
●未定义的变量;
●不适当的循环嵌套或分支嵌套;
●无终止的死循环;
●不允许的递归;
●调用不存在的子程序;
●遗漏了标号或代码。
(2)找出如下问题的根源:
●未使用过的变量;
●不会执行到的代码;
●从未引用过的标号;
●潜在的死循环。
(3)提供程序缺陷的如下间接信息:
●标识符的使用方式;
●过程的调用层次;
●所用变量和常量的交叉应用表;
●是否违背编码规则。
(4)为进一步查错做准备。
(5)选择测试用例。
(6)进行符号测试。
2.动态测试
动态方法是通过源程序运行时所体现出来的特征,来进行执行跟踪、时间分析以及测试覆盖等方面的测试。
动态测试是真正运行被测程序,在执行过程中,通过输入有效的测试用例,对其输入与输出的对应关系进行分析,以达到检测的目的。
动态测试方法的基本步骤:
●选取定义域有效值,或定义域外无效值;
●对已选取值决定预期的结果;
●用选取值执行程序;
●执行结果与预期的结果相比,不吻合程序有错。
第二讲黑盒测试与白盒测试
1.黑盒测试
黑盒测试(Black-boxTesting)又称为功能测试、数据驱动测试和基于规格说明的测试。
是一种从用户观点出发的测试。
黑盒测试的基本观点是:
任何程序都可以看作是从输入定义域映射到输出值域的函数过程,被测程序被认为是一个打不开的黑盒子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。
黑盒测试作为软件功能的测试手段,是重要的测试方法。
它主要根据规格说明设计测试用例,并不涉及程序内部结构和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。
黑盒测试的具体技术方法主要包括边界值分析法、等价类划分法、比较测试法、因果图法、决策表法等。
黑盒测试属于穷举输入测试方法,只有把所有可能的输入都作为测试情况来使用,才能以这种方法查出程序中所有的错误。
2.白盒测试(White-boxTesting)也称作结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。
按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。
白盒测试的主要方法有逻辑覆盖、基本路径测试等,主要用于软件验证。
通常的程序逻辑覆盖有:
●语句覆盖;
●判断覆盖;
●条件覆盖;
●判断/条件覆盖;
●条件组合覆盖;
●路径覆盖。
第三章黑盒测试及其实例设计
3.1黑盒测试概述
3.2等价类划分法
1.黑盒测试的概述
2.掌握等价类划分法
等价划分法的分发以及形式
等价划分法的分发以及形式。
第一讲、黑盒测试概述,等价类划分法
1.黑盒测试又称为功能测试或数据驱动测试,是从用户观点出发,主要以软件规格说明书为依据,对程序功能和程序接口进行的测试。
黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,它不涉及到程序的内部结构。
很明显,如果外部特性本身有问题或规格说明书的规定有误,用黑盒测试方法是发现不了的。
黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试,主要是为了发现以下错误:
●是否有不正确的功能,是否有遗漏的功能;
●在接口上,是否能够正确地接收输入数据并产生正确的输出结果;
●是否有数据结构错误或外部信息访问错误;
●性能上是否能够满足要求;
●是否有程序初始化和终止方面的错误。
黑盒测试的各种方法中,应用较为广泛的测试方法有以下几种:
等价类划分法、边界值分析法、决策表法和因果图法。
这些方法是比较实用的,但采用什么方法,在使用时自然要针对开发项目的特点对设计方法进行适当的选择。
2.等价类划分法
等价类划分法是黑盒测试用例设计中一种常用的设计方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。
在划分等价类的过程中,不但要考虑有效等价类划分,同时也要考虑无效等价类划分:
有效等价类是指对软件规格说明来说,合理、有意义的输入数据所构成的集合。
无效等价类则和有效等价类相反,即不满足程序输入要求或者无效的输入数据所构成的集合。
划分等价类的几个原则:
●如果规定了输入条件的取值范围或者个数,则可以确定一个有效等价类和两个无效等价类。
●如果规定了输入值的集合,则可以确定一个有效等价类和一个无效等价类。
●如果规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可为每一个值确定一个有效等价类,此外根据这组值确定一个无效等价类,即所有不允许的输入值的集合。
●如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。
●如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类。
第二讲、等价类划分法
常见等价类划分形式
1.标准等价类测试
标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值。
通常,标准等价类测试用例的数量和最大等价类中元素的数目相等。
以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1~100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形以及不构成三角形。
在多数情况下,是从输入域划分等价类,但对于三角形问题,从输出域来定义等价类是最简单的划分方法。
因此,利用这些信息可以确定下列值域等价类:
R1={〈a,b,c〉:
边为a,b,c的等边三角形}
R2={〈a,b,c〉:
边为a,b,c的等腰三角形}
R3={〈a,b,c〉:
边为a,b,c的一般三角形}
R4={〈a,b,c〉:
边为a,b,c不能构成三角形}
2.健壮等价类测试
健壮等价类测试主要的出发点是考虑了无效等价类。
对有效输入,测试用例从每个有效等价类中取一个值;
对无效输入,一
个测试用例有一个无效值,其他值均取有效值。
健壮等价类测试存在两个问题:
☐需要花费精力定义无效测试用例的期望输出;
☐对强类型的语言没有必要考虑无效的输入
。
对于上述三角形问题,取a、b、c的无效值产生了7个健壮等价类测试用
例,如表3-3所示。
3.对等区间划分
对等区间划分是测试用例设计的非常规形式化的方法。
它将被测对象的输入/输出划分成一些区间,被测软件对一个特定区间的任何值都是等价的。
形成测试区间的数据不只是函数/过程的参数,也可以是程序可以访问的全局变量、系统资源等,这些变量或资源可以是以时间形式存在的数据,或以状态形式存在的输入/输出序列。
举例说明如下:
平方根函数要求当输入值为0或大于0时,返回输入数的平方根;
当输入值小于0时,显示错误信息“平方根错误,输入值小于0”,并返回0。
考虑平方根函数的测试用例区间,可以划分出两个输入区间和两个输出区间,如表3-4所示。
2012年月日第周
第三章黑盒测试及其实例设计
3.3边界值分析法
3.4决策表法
1.掌握边界值分析法;
2.掌握决策表法。
边界值分析法,决策表法
第三章、黑盒测试及其实例设计
第一讲、边界值分析法
边界值分析法(BoundaryValueAnalysis,BVA)是一种补充等价类划分法的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。
在测试过程中,可能会忽略边界值的条件,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
在应用边界值分析法设计测试用例时,应遵循以下几条原则:
●如果输入条件规定了值的范围,则应该选取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。
●如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。
●根据规格说明的每一个输出条件,分别使用以上两个原则。
●如果程序的规格说明给出的输入域或者输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个元素和最后一个元素作为测试用例。
●如果程序中使用了一个内部数据结构,则应当选择
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 教案