版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试工作指文件状态:[]草稿
文件标识:当前版本:
软件测试工作指南-V4.04.0[√]正发布[]正在修改
作
者:软件测试工作指南本版本
状态
作者
日期
审批人
审批日期
备注V1.0V2.0V3.0V4.0
正式发布正式发布正式发布正式发布
将“产品”字样去掉,按实际文档内容改为了“系统”或“工作成果”按照文件编写指南调整格式删除首页的完成日期XX技,2018Pageof
软件测试工作指南目文介1.11.2
文目4术与写释4
软测理概2.1
软测的本念2.1.1
软件测试的定义42.22.3
软测阶测类5
软测过63.1
软测生周6
软测用设的法技
84.14.2
软测用设技软测用设方4.2.14.2.1.14.2.1.24.2.1.34.2.24.2.2.14.2.2.24.2.2.34.2.2.44.2.2.54.2.2.6
黑盒测试方法如何设计等价类划分测试用例9如何设计边界值分析法测试用例10如何设计因果图测试用例白盒测试方法12语句覆盖12判定覆盖13条件覆盖13判定/条件盖组合覆盖14路径覆盖14
缺管5.15.25.35.4
缺类缺严级16缺状缺管流17XX技,2018Pageof软件测试工作指南1文档介绍1.1文目本文详细阐述了测试的一般理论、软件测试过程、以及系统测试的类型以及各个类型的基本测试方法,指导项目开发、测试人员进行软件测试。1.2术与写释1术语表缩写、术
解释QMUTITSTATDefect
质量管理,单元测试,Unit集成测试,Testing系统测试,System验收测试,缺陷:缺陷是对软件系统预期属性的偏离现象。覆盖率,Coverage语句覆盖率、测试用例执行覆盖率,测试需求覆盖率等的总称。2软件测试理概述2.1软测的本念软测的义
软件测试是为了发现错误而执行程序的过程软件测试是根据程序开发阶段的规格说明及程序内部结构而精心设计的一批测试用例(输入数据及其预期结果的集合),并用这些测试用例去运行程序,以发现错误的过程。2.2软测阶软件测试一般按软件开发的生命周期,分为单元测试、集成测试、系统测试、验收测试。测试阶段与开发生命周期的对应关系见如下图
—V模图:安图科技,20084of18软件测试工作指南
1V型图单元测试(Unit)单元测试是对最小的可测试软件元素(单元)实施的测试。它所测试的内容包括单元的内部结构(如逻辑和数据流)以及单元的功能和可观测的行为。集成测试(Testing)集成测试是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。系统测试()系统测试是通过与系统的需求定义作比较,发现软件与系统需求定义不相符合或与之矛盾的地方。它将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合起来,在实际运行(使用)环境下,对计算机系统所进行的一系列集成测试和确认测试。验收测试(验收测试2.3测类在每个测试阶段,可根据需确定所需要进行的测试类型。测类型一般划分为:静态分析、接口-路测试、功能测试、图形用户界面测试、性能测试、配置测试、压测试、安装/反装测试、信息安全性测试、可靠性测试、健壮性测试等
静态分析——常用于单元测试阶段对源代码的静态分析:主要分析代码中的类型、引用、参数传递,以及表达式等不用运行就能够发现的错误;另外还有一些容易出错的地方,如空指针赋值、下标越界等。还可以检查诸如命名规则等编程规范。接口-路测试——常用于单元试、集成测试阶段安图科技,20085of18
软件测试工作指南测试软件模块间的调用接口及内部路径问题,如数据类型、变量值、逻辑判断、循环、内存、文件、错误处理问题。功能测试——常用于集成、系统测试阶段验证软件是否提供了所期待的服务。包括:“主”方--所有的输入是合法的。辅助”案--一些或所有的输入是不合法的。图形用户界面测试——常用于集成测试、系统测试、验收测试阶段验证软件界面是否符合用户需求及友好性、易操作性。包括布局美观、颜色协调、跳转正确、图标一致、切换时间等因素。性能测试——常用于系统、验收测试阶段性能测试考虑软件系统的如下指标:
响应时间并发性吞吐量处理精度
配置测试——常用于系统、验收测试阶段验证软件系统的配置环境,包括软件配置、硬件配置。压力测试——常用于系统、验收测试阶段使软件经受大数据量的考验,以确定达到限制时是否引发软件失败。安装/反装测试——常用于验测试阶段验证是否能正确安装/卸载包初次安装、升级安装、完全安装、定制安装;安装后,操作是否正确;卸载是否正确等。信息安全性测试——常用于系统测试、验收测试阶段验证系统的信息安全方面的能力。包括是否有系统安全漏洞、抵御非法入侵能力、病毒、加密、权限等。可靠性测试——常用于系统、验收测试阶段验证系统连续无故障运行的能力。包无故障运行的平均时间间隔、最时间间隔、最大时间间隔等。健壮性测试——常用于系统、验收测试阶段验证软件系统的容错/恢复力包括错误操作顺序、异常中断、异常关闭、负荷超出极限等问题。3软件测试过3.1软测生周软件测试生命周期包括测试计划、测试设计、测试实施、测试评估、缺陷跟踪与管理,具体的见如下图所。安图科技,20086of18软件测试工作指南
软件测试生命周期测试计划编写测试计划,策划整体的测试活动及方法、工具、资源等。包括如下步骤:
确定测试需求评估风险制定测试策略确定测试资源创建时间表生成测试计划
测试设计设计测试用例及测试过程的阶段,它是验证测试需求被测试到的最有效的方法。具体步骤如下:
理解软件和测试目标,准备工作量并分析需求文档设计并说明测试用例设计测试过程,如运行测试用例并处理测试结果评估测试用例和测试策略
测试执行根据测试计划、测试用例,搭建测试环境,执行测试并报告测试结果。具体步骤如下:
选择已设计好的测试用例并运行选择新设计的测试用例并运行记录中间步骤和结果发现的缺陷记录到缺陷管理工具中,缺陷描述要清晰完整,保证每个够被重现
缺陷都能
详细填写测试报告并提供尽可能多的信息,尽可能提供错误分析和修改建议对已修改完的缺陷进行回归测试,验证原缺陷已被修改,同时验证是否引入新的缺陷
测试评估对测试工作及结果进行评估,对测试进行评估,评估指标如下:
评估需求覆盖安图科技,20087of18
软件测试工作指南评估测试用例覆盖评估代码覆盖分析缺陷,评估质量确定是否达到了测试完成标准与成功标准
缺陷跟踪与管理在软件测试的整个生命周期内,都涉及到缺陷的跟踪与管理。一般用缺陷管理工具对测试过程发现的缺陷进行跟踪、管理。具体的见第4软件测试用设计的方法技术4.1软测用设技
章缺陷管理”部分。
软件测试用例设计技术一般有两种:黑盒测试、白盒测试。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
是否有不正确或遗漏的功能?在接口上,输入是否能正确的接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?
白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
对程序模块的所有独立的执行路径至少测试一遍。对所有的逻辑判定,取“真”与取假”的种情况都能至少测一遍。在循环的边界和运行的界限内执行循环体。测试内部数据结构的有效性,等等。4.2软测用设方
黑盒测方法黑盒测试用例的设计方法常见的有七种,分别为等价类划分法、边界值分析法、错误推测法、因果图方法、判定表驱动分析方法、正交实验设计方法、功能图分析方法。安图科技,20088of18软件测试工作指南一般比较常用的为等价类划分法、边界值分析法、错误推测法、因果图方法四种方法,下面针对这四种常用黑盒测试用例的设计方法进行介绍。
等价类划分法等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例,该方法是一种重要的、常用的黑盒测试用例设计方法。
边界值分析法边界值分析方法是对等价类划分方法的补充。包括等价类
+划的边界值,边界值通常是等价类的界限,以正好小于、等于和大于界限的值作为边界值。
错误推测法错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况根他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误、以前系统测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的况、输入表格为空格或输入表格只有一行,这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例。
因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况,但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。4.2.1.1何设等价类分测用例
等价类划分基于功能项的输入和输出,将其划分成等价类,通常包括以下几种组合:合非的输入和输出对数值型的值分为正数、负数和对于字符串型的分为空串和非空串…例如,学生成绩等级评定(总分()考试分0-75)+上分(0-25)总分>=70Grade=”A”总分and<70,Grade=”B”总分and<50,Grade=”C总分>=0and<30,Grade=”针对这个例子,将考试分数可以划分为如下
3个价类:安图科技,20089of18软件测试工作指南0考试分数<考试分数<=75等价类划分实例
75考试分数>
一般将等价类划分为两种:
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。以上例子中的有效等价类为“考试分数<=75
无效等价类:与效等价类的定义恰巧相反。以上例子中的“考试分数“考试分数>75”都属于无效等价类。
”和
设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。如何设计界值分法测试用例
长期的测试工作经验告诉我们:大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。边界值的例子如下所示:
对16-bit的数而言32767和-是边界屏幕上光标在最左上、最右下位置报表的第一和最后一行数组元素的第一个和最后一个循环的第次第1和数第2次最后一次再如本文3.2.1.1中的例子,考试分数的两组边界值(,,1,,)如何设计果图测用例如果在测试时必须考虑输入条件的各种组合,可能又会产生一些新的情况,此时我们可以通过因果图来描述条件之间的组合情况,从而推导出测试用例设计。在进行因果图测试用例设计时,有如下
个骤:.分析软件规格说明描述中,哪些是原因(即入条件或输入条件的等价类),哪些是结果(即出条件),给每个原因和结果赋予一个标识符。.分析软件规格说明描述中的语义,找出原因与结果之间、原因与原因之间对应的关系。根据这些关系,画出因果图。安图科技,2008Page1018软件测试工作指南.由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。.把因果图转换为判定表。判定表(Decision是分析和表达多逻辑条件下执行不同操作的情况下的工具。在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了。它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。具体的判定表的用法可参考专门的理论书籍。.把判定表的每一列拿出来作为依据,设测试用例。从因果图生成的测试用例(局部、组合关系下的)包括了所有输入数据的取
TRUE与取FALSE的况,构成的测试用例数目达到最少,且试用例数目随输入数据数目的增加而线性地增加。例如我们有如下功能描述:
年薪制员工:严重过失,扣年终风险金的非年薪制员工:严重过失,扣当月薪资的根据此例使用因果图方法的步骤如下:a)首先,列出原因和结果,如下表:
;过失,扣年终风险金的;过失,扣当月薪资的4%原因结果对应表b)然后,绘出因果图,如下图4所:4因果图最后,转换为判定表,如下所示安图科技,200811of软件测试工作指南3判定表2
11121516C1C2C3C4
TCYYY
Y
Y
Yd)判定表中TC标记为Y每列是测试用例
白盒测方法白盒测试用例的设计方法常见的有六种:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。逻辑覆盖法、基本路径测试法。下面针对这六种常用白盒测试用例的设计方法进行介绍。
/首先为了下文的举例描述方便,这里先给出一张程序流程图,见如下图
文以年件设计师考试的一道考试题目为例,图中红色字母代表程序执行路径)。程序流程图语句覆盖主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。安图科技,2008Page1218软件测试工作指南针对以上图4的序流程图,语句盖用例设计如下(如果此时将句1〉T去掉,那么用例如下):
A路径上的语
X
Y
路径OBDEOBCE
优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。在本例中去掉了语句
〉去,那么就少了一条测试路径。在if结中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。但我们不能排除这种以外的分支不会被执行,而往往这种错误会经常出现。再如,在
Do-While结构中,语覆盖执行其中某一个条件分支。那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。判定覆盖
主要特点:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。用例设计如下:
X
Y
路径OAEOBDEOBCE
优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。缺点:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、CASE仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。条件覆盖
主要特点:条件覆盖要求设计足够多的测试用例,使得
判定中的每个条件获得种
可能的结果,即每个条件至少有一次为真值,有一次为假值。用例设计如下:
X
Y
路径OBCOBD
优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。安图科技,2008Page1318
软件测试工作指南缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。判定/条件覆盖
主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。用例设计如下:
X
Y
路径OAEOBDEOBCEOBCE
优点:判定/条覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。缺点:判定/条覆盖准则的缺点是未考虑条件的组合情况。组合覆盖
主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。用例设计如下:
X
Y
路径OAEOBCEOBDEOBCEOBDEOBDEOBDE
优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定
/件覆盖准则。更改的判
定/条覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响判定结果。缺点:线性地增加了测试用例的数量。路径覆盖
主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。用例设计如下:安图科技,2008Page1418
X
软件测试工作指南Y
路径OAEOBDEOBCEOBCE
优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等那需要设计大量、杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的,如:();();这两个语句实际只包括了2条行路径,即A为或假时候对BD的理真或假不可能都存在,而路径覆盖测试则认为是包含了真与假的
条行路径。这样不仅降低了测试效率,而且大量的测试结果的累积,也为排错带来麻烦。白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用合的覆盖方法。任何一个高效的测试用例,都针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径5缺陷管理缺陷既指程序中存在的错误,例如语法错误、拼写错误或者是一个不正确的程序语句,缺陷也指可能出现在设计中,甚至在需求、规格说明或其他的文档中的种种错误。在开发、测试整个过程中,在对某一程序模块
/系进行测试时,会出现发现缺陷、缺陷修复完成、修复后缺陷又再次出现、修改某一缺陷可能会带进来新的缺陷等等的一系列问题,所以需要对缺陷进行统一的跟踪管理。缺陷管理主要是确保每一个缺陷都记录在案,并按照流程进行了正确的处理。缺陷管理中把缺陷的生命周期分为不同的状态,并且标识每种状态之间的合法活动(类似状态机陷理工具确保状态状态间必须按照合法的流程进行变更(如测试人员提出了一个缺陷,是允许相应开发人员自己关闭的,必须要返回验证;且通过结合一套邮件工具,自动的在某人处理完毕后向下一处理人发出通知。缺陷管理工具是保证开发人员、测试人员共同协同工作的一种有效管理工具,其可以将测试人员发现的缺陷的所有信息按照处理顺序及处理过程详细保留,同时还可以提安图科技,2008Page1518软件测试工作指南供管理者对缺陷的查询、分类统计的功能,方便管理者对所开发的软件工作成果进行质量度量与评价。对缺陷进行管理,目前有许多商业、开源的缺陷管理工具软件,目前我们公司采用开源工具“Bugfree”进行缺陷的踪与管理。首先,为了管理缺陷,需要了解缺陷的常用属性,见如下的缺陷属性表。4属性表属性名称缺陷标识缺陷类型缺陷严重程度缺陷状态
描述缺陷标识是标记某个缺陷的一组符号。每个缺陷必须有一个唯一的标识。缺陷类型是根据缺陷的自然属性划分的缺陷种类。缺陷严重程度是指缺陷因缺陷引起的故障对软件系统的影响程度缺陷状态指缺陷通过一个跟踪修复过程的进展情况5.1缺类“”的缺陷型定义了七种,分别为:代码错误、界面优化、设计变更、新增功能、数据校对、事务跟踪、其他。5.2缺严级“”的缺陷严重级别分为了四级,具体见下表:5等级表#1
严重等级严重缺陷()
描述不能执行正常功能或重要功能。此级别
必须修改。
较大缺陷(Major)较小缺陷(Minor)轻微缺陷(Cosmetic)
严重影响系统要求或基本功能的实现,且没有办法更正(重新安装和重新启动该软件不属于更正办法)。此级别必须修改。严重影响系统要求或基本功能的实现,但存在合理的更正办法(重新安装和重新启动该软件不属于更正办法)。此级别必须修改。使操作者不方便或遇到麻烦,但不影响执行工作功能或重要功能。
此级别可以视情况酌情进行修改。5.3缺状“”的缺陷状态分为了四种,具体见下表:安图科技,2008Page1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学五年级数学整数小数四则混合运算和应用题教案示例
- 《新工伤保险》课件
- 2025年中考语文文言文总复习-教师版-专题02:文言文阅读之虚词意义和用法(讲义)
- 《放射治疗的护理》课件
- 石油工程师在油田开采中的作用
- 土木工程师工作总结
- 医疗行业技术工作总结
- 点心店服务员工作总结
- 高一班主任期中工作总结呵护成长点滴培育之心
- 婴幼儿科护理工作总结
- 数据中心电力设备调试方案
- 2024年度国际物流运输合同3篇
- 新入职员工年终工作总结课件
- 广西南宁市第三十七中学2024-2025学年七年级上学期11月第一次月考语文试题(含答案)
- 2024-2025学年高二上学期期末数学试卷(基础篇)(含答案)
- 2024年人力资源个人年终工作总结(6篇)
- 2024年中考物理真题及分类汇编-考点25:磁现象-电生磁
- 研究生攻读(硕)博士学位期间拟开展的研究计划范文
- 西安交通大学《计算物理与程序设计》2022-2023学年第一学期期末试卷
- 《寒假安全教育》课件
- 【MOOC】有机化学-华中农业大学 中国大学慕课MOOC答案
评论
0/150
提交评论