软件测试规程

上传人:daj****de2 文档编号:182638883 上传时间:2023-01-26 格式:DOCX 页数:14 大小:25.33KB
返回 下载 相关 举报
软件测试规程_第1页
第1页 / 共14页
软件测试规程_第2页
第2页 / 共14页
软件测试规程_第3页
第3页 / 共14页
点击查看更多>>
资源描述
受控状态(章):受控号:*有限公司文件版本:软件测试规程文件编号:&/TE82402-2013编制%审核批准#发布日期2013/12/01实施日期2013/12/01*有限公司对本文件资料享受着作权及其他专属权利,未经书面 许可,不得将该等文件资料(其全部或任何部分)披露予任何第三方,或进行修改 后使用。修订履历软件测试是软件工程的重要组成部分,测试工作的质量直接影响软件产品的生 命力。测试工作的标准化是软件质量保证重要而且必须的环节。制定本标准的 目的在于使测试流程更标准,测试过程更规范。从而使整个软件产生纳入更系 统化、更专业化的轨道。2.范围 本标准适用于软件测试流程的管理和测试的具体操作过程。本标准的使用者可 以是企业内部的测试人员和开发人员。3. 职责 测试负责人:根据测试任务优先级制定测试计划。根据测试计划负责监控软件 测试过程,及时调整测试策略和方法,进行测试任务安排。?测试人员:配置测试环境及准备测试数据,参与测试分析报告的编写 评价软件功能的性能及正确性,确保所负责模块的测试质量。4. 术语定义 软件测试?软件测试是指通过一定的制度、方法、技术、流程和工具对软件测试对象 进行检查、验证和分析,根本目的是验证和确认软件测试对象与需求的一致 性,最终保证软件系统的质量。测试执行?在测试环境中按照测试用例完成测试,主要工作包括执行测试用 例;记录、分析、解决测试过程中发现的错误,并执行回归测试;评估测试结 果,提交测试总结报告。?测试环境?是指满足软件系统测试要求的硬件、网络和系统软件环境,包括主 机、存储、网络、外围设备、操作系统软件、数据库、中间件、系统配置参数 和测试用业务数据等。5. 测试规程软件测试流程软件测试流程图软件测试流程细则需求阶段:测试人员了解项目需求收集结果包括项目需求规格说明、功能结构及模块 划分等。测试人员了解项目需求变更。测试人员会同项目主管根据软件需求制定并确认测试计划(附录五)设计编码阶段: 各项目部对完成的功能模块进行单元测试,测试人员参与单元测试过程;单 元测试完成,产生单元测试报告。所有单元测试及相应的修改完成后,各项目部组织进行集成测试,测试人员 参与集成测试过程;集成测试完成后,产生集成测试报告。测试阶段: 各项目部完成集成测试后,提交测试所要求的待测软件及各种文档、手册。 测试组安排和协调测试设备、环境等准备工作。测试组按测试计划、测试大纲的要求对待测软件进行有效性测试、集成测 试。填写程序错误报告。 对修改后的情况进行复合。 测试结束后,测试人员对测试结果进行汇总;测试主管审核测试结果,得 出测试结论;测试组进行测试分析和评估,编写测试分析报告。提交测试分析报告。将所有文件存档。 对测试未通过的待测软件,测试人员汇总并向各项目部提交测试错误报 告。各项目部对测试错误报告进行确认,对有争议的问题可由上一级技术负责 人确认和仲裁;各项目部针对测试错误报告进行逐项修改,修改完成后再将待 测软件及错误修改情况提交及测试组进行回归测试。待测软件测试通过后,项目测评结束。 制作用户操作手册。用户测试阶段: 各项目部与用户方商定测试计划、测试内容、测试环境等。 测试组向用户方提供项目内部测试汇总报告。 由各项目部或测试组配合用户进行用户方测试。由用户方编制用户方软件测试报告(程序错误报告和测试分析报告)若用户 方不愿或无法编制测试报告,则经与用户方协商由我方测试人员编制用户方测 试报告,经用户方签字后即可生效。项目经理与用户方对用户方测试进行确认。软件测试注意事项根据软件开发工艺流程规程仔细检查软件的界面是否合乎要求。(每一 个子界面也应如此)其中,应注意提示信息和软件开发商信息是否正确。小的图 标是否合乎要求。检查菜单当中的各项功能和功能按钮是否能正确使用。根据软件开发工艺流程规程及软件概要设计说明书设计测试用例。 (以边界值法、等价类划分法为主)对功能界面要求注意与功能相关的信息显示 及显示位置是否正确。数据输入界面应注意文字格式及数字和文字的区别。 是否能够正确保存信息。数据查询(显示)界面应注意显示信息是否正确和完 整。是否能正确查询。对打印功能要求注意打印出的报表是否正确。(包括报表 各项信息、数据信息和报表字体等)。这一项测试主要是对软件的错误处理功能进行测试。就是进行错误的操作 或输入错误的数据,检查软件对这些情况是否能做出判断并予以提示。特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等 情况。一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有 很大的关系。对测试错误结果一定要有一个确认的过程。一般有 A 测试出来的错误,一 定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。制定严格 的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一 个高水平的测试。回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误 出现的现象并不少见。妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠 测试文档。软件测试类型除非是测试一个小程序,否则一开始就把整个系统作为一个单独的实体来测试 是不现实的。与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑 上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统 又由许多模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成: 模块测试 在设计得好的软件系统中,每个模块完成一个清晰定义的子功能,而且这 个子功能和同级其他模块的功能之间没有相互依赖关系。因此,有可能把每个 模块作为一个单独的实体来测试,而且通常比较容易设计检验模块正确性的测 试方案。模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块 测试通常又称为单元测试。在这个测试步骤中所发现的往往是编码和详细设计 的错误。子系统测试 子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。模 块相互间的协调和通信是这个测试过程中的主要问题,因此这个步骤着重测试 模块的接口。系统测试 系统测试是把经过测试的于系统装配成一个完整的系统来测试。在这个过 程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书 中指定的功能,而且系统的动态特性也符合预定要求。在这个测试步骤中发现 的往往是软件设计中的错误,也可能发现需求说明中的错误。不论是子系统测 试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。验收测试 验收测试把软件系统作为单一的实体进行测试,测试内容与系统测试基本 类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据(系统将 来要处理的信息)进行测试。验收测试的目的是验证系统确实能够满足用户的需 要,在这个测试步骤中发现的往往是系统需求说明书中的错误。黑盒测试方法黑盒测试(black一box tes ting)又称功能测试、数据驱动测试或基于规范的 测试(即ec颠cationbasedtesting)。用这种方法进行测试时,被测程序被当 作看不见内部的黑盒。在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何情况下都做的对。完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限 的测试用例而覆盖足够多的“任何情况”。由于黑盒测试不需要了解程序内部 结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测 试。黑盒测试首先是程序通常的功能性测试。要求: 每个软件特性必须被一个测试用例或一个被认可的异常所覆盖。 用数据类型和数据值的最小集测试。用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情 况”的结果; 用假想的数据类型和数据值运行,测试排斥不规则输入的能力; 对影响性能的关键模块,如基本算法、应测试单元性能(包括精度、时间、容量 等)。不仅要考核“程序应该做什么?”还要考察“程序是否做了不该做的 2”同时还 要考察程序在其他一些情况下是否正常。这些情况包括数据类型和数据值的异 常等等。下述几种方法:(a)等价类划分,(b)因果图方法,(c)边值分析法,(d) 猜错法,(e)随机数法,就是从更广泛的角度来进行黑盒测试。每一个方法都力 图能涵盖更多的“任何情况”,但又各有长处,综合使用这些方法,会得到一 个较好的测试用例集。等价类划分 等价类划分是一种典型的黑盒测试方法。等价类是指某个输入域的集合。它表示对揭露程序中的错误来说,集合中的每个输入条件是等效的。因此我们只要在一个集合中选取一个测试数据即可。等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当作测试用例。 这样就可使用少数测试用例检验程序在一大类情况下的反映。在考虑等价类时,应该注意区别以下两种不同的情况:有效等价类:有效等价类指的是对程序的规范是有意义的、合理的输入数据所构 成的集合。在具体问题中,有效等价类可以是一个,也可以是多个。无效等价类:无效等价类指对程序的规范是不合理的或无意义的输入数据 所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。 确定等价类有以下几条原则:如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两 个无效等价类。例如,程序的规范中提到的输入条包括“项数可以从1到 999”,则可取有效等价类为“l考项数V999”,无效等价类为“项数V 1,及“项数999”。输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确 定一个有效等价类和一个无效等价类。如某程序涉及标识符,其输入条件规定 “标识符应以字母开头”则“以字母开头者”作为有效等价类,“以非字 母开头”作为无效等价类。如果我们确知,已划分的等价类中各元素在程序中的处理方式是不同的, 则应将此等价类进一步划分成更小等价类。输入条件有效等价类无效等价类OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO根据已列出的等价类表,按以下步骤确定测试用例:为每个等价类规定一个唯一的编号;设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这 一步,最后使得所有有效等价类均被测试用例所覆盖;设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步,使所 有无效等价类均被覆盖。这里强调每次只覆盖一个无效等价类。这是因为一个测试用例中如果含有 多个缺陷,有可能在测试中只发现其中的一个,另一些被忽视。等价类划分法 能够全面、系统地考虑黑盒测试的测试用例设计问题,但是没有注意选用一些 “高效的”“有针对性的”测试用例。后面介绍的边值分析法可以弥补这一缺 点。因果图等价类划分法并没有考虑到输入情况的各种组合。这样虽然各个输入条件 单独可能出错的情况已经看到了,但多个输入情况组合起来可能出错的情况却 被忽略。采用因果图方法能帮助我们按一定步骤选择一组高效的测试用例,同 时,还能为我们指出程序规范的描述中存在什么问题。利用因果图导出测试用 例需要经过以下几个步骤:分析程序规范的描述中哪些是原因,哪些是结果。原因常常是输入条件或 是输入条件的等价类。结果是输出条件。分析程序规范的描述中语义的内容,并将其表示成连接各个原因与各个结 果的“因果图”。由于语法或环境的限制,有些原因和结果的组合情况是不可 能出现的。为表明这些特定的情况,在因果图上使用持殊的符号标明约束条 件。把因果图转换成判定表。把判定表的每一列写成一个测试用例。边值分析法 边值分析法是列出单元功能、输入、状态及控制的合法边界值和非法边界 值,设计测试用例,包含全部边界值的方法。典型地包括IF语句中的判别值, 定义域、值域边界,空或畸形输入,末受控状态等。边值分析法不是一类找一 个例子的方法,而是以边界情况的处理作为主要目标专门设计测试用例的方 法。另外,边值分析不仅考查输入的边值,也要考虑输出的边值。这是从人们 的经验得出的一种有效方法。人们发现许多软件错误只是在下标、数据结构和 标量值的边界值及其上、下出现,运行这个区域的测试用例发现错误的概率很 高。用边值分析法设计测试用例时,有以下几条原则: 如果输入条件规定了取值范围,或是规定了值的个数,则应以该范围的边 界内及刚刚超出范围的边界外的值,或是分别对最大、最小及稍小于最小、稍 大于最大个数作为测试用例。如有规范“某文件可包含l至255个记录则测 试用例可选1和255及0和256等。针对规范的每个输出条件使用原则a。如果程序规范中提到的输入或输出域是个有序的集合(如顺序文件、表格等) 就应注意选取有序集的第一个和最后一个元素作为测试用例。分析规范,尽可能找出可能的边界条件。一个典型的边值分析例子是三角形分类程序。选取 a,b,c 构成三角形三边,“任意两边之和大于第三边”为 边界条件。边值分析相等价类划分侧重不同,对等价类划分是一个补充。如上 述三角形问题,选取a=3, b = 4, c = 5, a=2, b = 4, c = 7则覆盖有效和无效 等价类。如果能在等价类划分中注入边值分析的思想。在每个等价类中不只选 取一个覆盖用例,而是进而选取该等价类的边界值等价类划分法将更有效,最 后可以用边值分析法再补充一些测试用例。猜错法 猜错法在很大程度上是凭经验进行的,是凭人们对过去所作的测试工作结 果的分析,对所揭示的缺陷的规律性作直觉的推测来发现缺陷的。一个采用两分法的检索程序,典型地可以列出下面几种测试情况: 被检索的表只有一项或为空表;表的项数恰好是2的幂次; 表的项数比2的幂次多1等。 猜错法充分发挥人的经验,在一个测试小组中集思广益,方便实用,特别 在软件测试基础较差的情况下,很好地组织测试小组(也可以有外来人员)进行 错误猜测,是有效的测试方法。随机数法 即测试用例的参数是随机数。它可以自动生成,因此自动化程度高。使用 大量随机测试用例测试通过的程序会提高用户对程序的信心。但其关键在于随 机数的规律是否符合使用实际。白盒测试方法 白盒法测试,是以程序的内部逻辑为基础,有选择地执行程序中最有代表 性的通路。因此,白盒法也叫逻辑覆盖法(bgicMM阴e)。最彻底的逻辑覆盖 法,是覆盖程序巾的诲一条通路。但当程序中含有大量循环时,要执行每一条 通路是44可能的。因此,我们只能寄希望于程序的覆盖度尽可能高一些。目前 常用的一些覆盖标准有:语句覆盖、判定覆盖、条件澄盖、判定涤件覆盖、条 件组合覆盖、路径覆盖等。白盒法考虑的是测试用例对程序内部逻辑的覆盖程度,所以又称为逻辑覆 盖法。最彻底的白盒法是覆盖程序中的每一条路径,但这不可能,我们希望覆 盖的路径尽可能多一些。为了衡量测试的覆盖程度,需要建立一些标准,目前 常用的一些覆盖标准是:(1) 语句覆盖;(2) 判定覆盖;(3) 条件覆盖;(4) 判定条件覆盖;(5) 条件组合覆盖。语句覆盖 程序的某次运行一般并不能执行到其中的每一个语句,因此,如果某语句 含有一个错误,而它在测试中没执行,这个错误就不可能被发现。为了提高发 现错误的可能性,应该在测试时至少要执行程序中的每一个语句。所谓“语句覆盖”测试标准,它的含义是:选择足够的测试用例,使得程 序中每个语句至少都能执行一次。例子:ProcedureExample(VarA,B,C:real)beginif(A1)and(B=0)thenx:=x/A;if(A=2)or(x1)thenx:=x+lend;为了使程序中每个语句至少执行一次,只需设计一个能通过路径 ace 的例 子就可以了。例如选择输入数据为:A=2,B=0,x=3 就可达到“语句覆盖”标准。 显然,语句覆盖是一个比较弱的覆盖标准。如果第一个条件语句中的 and 错误地写成or,上面的测试用例是不能发现这个错误的,或者是第二个条件语 句中xl误写成x0,这个测试用例也不能暴露它。我们还可以举出许多错误情 况是上述测试数据不能发现的。所以,一般认为“语句覆盖”是很不充分的最 低的一种覆盖标准。判定覆盖比“语句覆盖”稍强的覆盖标准是“判定覆盖”(或称分支覆盖)。这个标 准是:执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和 “假”值,即使得程序中的每一个分文至少都通过一次。对上面那个例子,如果设计两个测试用例,就可以达到“判定覆盖”的标 难。为此,我们可以选择输人数据为:(1) A=3,B=0,x=l(2) A=2,B=1,x=3“判定覆盖”比“语句覆盖”严格,因为如果每个分支都执行过了,自然 每个语句也就执行了。条件覆盖它的含义是:执行足够的测试用例,使得判定中每个条件获得各种可能的 结果。对于例子程序,我们只需设计以下两个测试用例就可满足这标准:(1) A = 2, B = o, x = 4(沿路径 ace 执行)(2) A=1, B = l, x = l(沿路径 aN 执行)虽然同样只要两个测试用例,但它比判定覆盖中两个测试用例更有效。一 般来说,“条件覆盖”比“判定覆盖”强,但是,并不总是如此,满足“条件 覆盖”不一定满足“判定覆盖”。例如对语句。IF(AANDB)THENS设计两个测试用例:A “真” B “假”和A “假” B “真”。对于上例我们设 计两个测试用例为:(1) A=1, B = o, x = 3(2) A = 2, B = l, x = l亦是如此,它们能满足“条件覆盖”但不满足“判定覆盖”。判定条件覆盖针对上面的问题引出了另一种覆盖标准,这就是“判定条件覆盖”,它 的含义是:执行足够的测试用例,同时满足判定覆盖和条件覆盖的要求。显 然,它比“判定覆盖”和“条件覆盖”都强。对于例子程序,我们选取测试用例:(1)A=2,B=0,x=4(2)A=1,B=l,x=l它满足判定条件覆盖标准。值得指出,看起来“判定条件覆盖”似乎是比较合理的,应成为我们的 目标,但是事实并非如此,因为大多数计算机不能用一条指令对多个条件作出 判定,而必须将源程序中对多个条件的判定分解成几个简单判定。这个讨论说 明了,尽管“判定条件覆盖”看起来能使各种条件取到所有可能的值,但实 际上并不一定能检查到这样的程度。针对这种情况,有下面的条件组合覆盖标 准。条件组合覆盖“条件组合覆盖”的含义是:执行足够的测试用例,使得每个判定中条件 的各种可能组合都至少执行一次。这是一个最强的逻辑覆盖标准。再看例子程序,必须使测试用例覆盖八种组合结果(1)A1,B=0(5)A=2,x1(2)A1,B0(6)A=2,x1(3) Al,B=0(7)A2,x1(4) A1,B0(8)A2,x1必须注意到,(5)、(6)、(7)、(8)四种情况是第二个条件语句的条件组 合,而X的值在该语句之前是要经过计算的,所以我们还必须根据程序的逻辑 推算出在程序的人口点 x 的输入值应是什么。要测试八个组合结果并不是意味着需要八种测试用例,事实上,我们能用 四种测试用例来覆盖它们:(1) A = 2, B = o, x = 4;(2) A = 2, B=l, x = l;(3) A=l, B = o, x = 2;(4) A=1, B=l, x = l。上面四个例子虽然满足条件组合覆盖,但并不能覆盖程序中的每一条路 径,可以看出条件组合覆盖仍然是不彻底的,在白盒测试时,要设法弥补这个 缺陷。测试错误类型本规范定义以下五类测试错误类型。A 类严重错误,包括以下各种错误:由于程序所引起的死机,非法退出死循环数据库发生死锁因错误操作导致的程序中断功能错误与数据库连接错误数据通讯错误B 类较严重错误,包括以下各种错误:程序错误程序接口错误 数据库的表、业务规则、缺省值未加完整性等约束条件C 类一般性错误,包括以下各种错误: 操作界面错误(包括数据窗口内列名定义、含义是否一致) 打印内容、格式错误简单的输入限制未放在前台进行控制 删除操作未给出提示数据库表中有过多的空字段D 类较小错误,包括以下各种错误:界面不规范 辅助说明描述不清楚 输入输出不规范 长操作未给用户提示提示窗口文字未采用行业术语 可输入区域和只读区域没有明显的区分标志E 类测试建议测试标准黑盒测试的通过准则一般有: 单元功能同设计需求一致; 规定的路径覆盖率及覆盖类达到要求,且单元执行正确; 所规定的黑盒测试手段被使用,且单元执行正确; 对残留错误有合法解释或被认可暂留; 虽然路径覆盖率不能达到,但其他各测试的错误查出率趋产 0 或稳定(时间的长短视情况而定)。各类软件测试合格须符合以下标准A类错误B类错误C类错误D类错误E类错误无无1%5%暂不作要求以上比例为错误占总测试模块的比例。软件产品未经测试合格,不允许出公司。6.记录程序错误报告测试记录表测试分析报告
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!