




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章软件测试文档编写指南9.1软件测试文档的编写规范9.2软件测试文件的内容及书写格式9.3软件测试报告9.4软件测试模型文档编写 9.5测试用例设计和文档编写9.6使用用例场景设计测试用例及其文档编写第九章软件测试文档编写指南9.7需求分析和软件登记测试文档编写9.8测试文档表格格式9.9几种测试用例编写规则 9.10测试计划大纲9.11测试分析报告大纲本章小结软件测试是软件质量保证的重要手段。为了提高检测软件的工作效率,使测试有计划地、有条不紊地进行,必须编制软件测试文档。本章介绍如何编写一些常见的软件测试文档。
标准化的测试文档如同一种通用的参照体系或模板,可达到便于交流的目的。文档中所规定的内容可以作为对测试过程完备性的对照检查表,采用这些文档模板将会提高测试过程中每个阶段的能见度,极大地提高软件测试工作的可管理性。GB8567是一个计算机软件产品开发文档编制规范。下面介绍规范GB8567的内容。9.1软件测试文档的编写规范
1.GB8567组成和特点
测试文档的编写规范是为软件管理人员、软件开发人员和维护人员、软件质量保证人员、审计人员、客户及用户制定的,本规范用于描述一组测试文档,这些测试文档描述测试行为。本规范定义每一类基本文档的目的、格式和内容。所描述的文档着重于动态测试过程,但有些文档仍适用其他种类的测试活动。GB8567可应用于数字计算机上运行的软件,既适用于初始开发的软件测试文档编制,也适用于其后的软件产品更新版本的测试文档编制;既适用于纸质的文档,也适用于其他媒体的文档。如果电子文档编制系统不具有安全的批准注册机制,则批准签字的文档必须使用纸张。
1)
GB8567中使用的关键术语
●
设计层:软件项的设计分解,如系统、子系统、程序或模块。
●
通过准则:判断一个软件项或软件特性的测试是否通过的判别依据。
●
软件特性:软件项的显著特性,如功能、性能或可移植性等。
●
软件项:源代码、目标代码、作业控制代码、控制数据或这些项的结合。
●
测试项:作为测试对象的软件项。
2)主要内容
在GB8567中,涉及软件测试的文档由测试计划和测试分析报告组成,这两部分确定了各个测试文档的格式和内容,所提供的文档类型包括三部分:
(1)测试计划。测试计划描述测试活动的范围、方法、资源和进度。它规定被测试的内容、被测试的特性、应完成的测试任务、担任各项工作的人员职责及与本计划有关的风险等。
(2)测试说明。测试说明包括三类文档:测试设计说明、测试用例说明和测试规程说明。
(3)测试报告。测试报告一般包括四类文档:测试项传递报告、测试日志、测试事件报告和测试总结报告。
图9.1GB8567测试文档流程图
2.GB8567说明部分
(1)测试概要。用表格的形式列出每一项测试的标识符及其测试内容,并指明实际进行的测试工作内容与测试计划中预先设计的内容之间的差别,说明做出一些改变的原因。
(2)测试结果及发现。把本项测试中实际得到的动态输出(包括内部生成数据输出)结果同对于动态输出的要求进行比较,说明其中的各项发现。
(3)功能测试。测试包括以下内容:
●
简述该项功能,说明为满足此项功能而设计的软件能力以及经过一项或多项测试已证实的能力。●
说明测试数据值的范围(包括动态数据和静态数据),列出测试期间在该软件中就功能而言查出的Bug的局限性。
●
说明经测试证实了的本软件的能力。如果所进行的测试是为了验证一项或几项特定性能要求的实现,应提供这方面的测试结果与要求之间的比较,并确定测试环境与实际运行环境之间可能存在的差异对能力的测试所带来的影响。
●
说明经测试证实的软件Bug和限制,说明每项Bug和限制对软件性能的影响,并说明全部测得的性能Bug的累积影响和最终总影响。
(4)建议。对每项Bug提出改进建议,如各项修改可采用的修改方法;各项修改的紧迫程度;各项修改预计的工作量;各项修改的负责人。
(5)评价。说明该软件的开发是否已达到预定目标,能否交付使用。
(6)编写目的。本测试计划的具体编写目的,指出预期的读者范围。
(7)背景。包括:
●
测试计划所从属的软件系统的名称。●
该开发项目的历史。列出用户和执行此项目测试的计算中心,说明在开始执行本测试计划之前必须完成的各项工作。
(8)定义。列出本文档中用到的专门术语的定义和外文首字母组词的原词组。
(9)参考资料。列出要用到的参考资料,如
●
本项目的经核准的计划任务书或合同、上级机关的批文。
●
属于本项目的其他已发表的文档。●
本文档中各处引用的文档、资料,包括所要用到的软件开发标准。列出这些文档的标题、文档编号、发表日期和出版单位,说明能够得到这些文档资料的来源。
(10)软件说明。提供一份图表,并逐项说明被测软件的功能、输入和输出等质量指标,作为叙述测试计划的提纲。
3.GB8567测试部分
(1)测试内容。列出组装测试和确认测试中的每一项测试内容的名称标识符、这些测试的进度安排以及这些测试的内容和目的,如模块功能测试、接口正确性测试、数据文卷存取测试、运行时间测试、设计约束和极限测试等。
(2)测试(标识符)。给出这项测试内容的参与单位及被测试的部位。
(3)进度安排。给出对这项测试的进度安排,包括进行测试的日期和工作内容(如熟悉环境。培训、准备输入数据等)。
(4)条件。本项测试工作对资源的要求,包括●
设备所用到的设备类型、数量和预定使用时间。
●
软件列出将被用来支持本项测试过程,而本身又并不是被测软件的组成部分的软件,如测试驱动程序、测试监控程序、仿真程序、桩模块等。
●
人员列出在测试工作期间预期可由用户和开发任务组提供的工作人员的人数。技术水平及有关的预备知识,包括一些特殊要求,如倒班操作和数据键入人员。
(5)测试资料。列出本项测试所需的资料,如
●
有关本项任务的文档。
●
被测试程序及其所在的媒体。●
测试的输入和输出举例。
●
有关控制此项测试的方法、过程的图表。
(6)测试培训。说明或引用资料说明为被测软件的使用提供培训计划,规定培训的内容、受训的人员及从事培训的工作人员。
(7)控制。说明本测试的控制方式,如输入是人工、半自动或自动引入,控制操作的顺序以及结果的记录方法。
(8)输入。说明本项测试中所使用的输入数据及选择这些输入数据的策略。
(9)输出。说明预期的输出数据,如测试结果及可能产生的中间结果或运行信息。
(10)过程。说明完成此项测试的每个步骤和控制命令,包括测试的准备、初始化、中间步骤及运行结束方式。
4.GB8567评价准则
(1)范围。说明所选择的测试用例能够检查的范围及其局限性。
(2)数据整理。说明为了把测试数据加工成便于评价的适当形式,使得测试结果可以与已知结果进行比较而要用到的转换处理技术,如手工方式或自动方式。如果是用自动方式整理数据,还要说明为进行处理所要用到的硬件、软件资源等。
(3)尺度。说明用来判断测试工作是否能够通过的评价尺度,如合理的输出结果的类型、测试输出结果与预期输出之间的容许偏离范围、允许中断或停机的最大次数。
5.所需文档列表
对被测试软件的文档要求依不同测试阶段有所不同,需要的文档见表9.1。表9.1软件文档要求6.注意事项
(1)明确被测试软件的准确名称和版本号,且必须与软件产品登记和软件企业认定申报表上填写的软件产品名称和版本号相一致。
(2)如果是需要现场测试,请填写测试现场软件和硬件环境列表,具体详见一些填写范例。
(3)如果软件某些功能需要一定的数据量才能实现/演示,请准备好这些数据。
(4)功能列表上所列出来的功能必须是可以实现或演示的。如果不能演示或实现,请不要列上来,并且基本功能在用户手册上都要有详细的操作说明。
(5)用户手册要有详细的目录和索引等。
下面介绍常用测试文件的内容及书写格式。对于每一个文件内容按指定的次序排列,补充的内容可以放在每节的最后或者放在每节中的“批准”的前面。如果某节的部分或全部内容在另一文件中,则应在相应的内容位置上列出所引用的资料,引用的资料要附在该文件后面或交给文件的使用者。9.2软件测试文件的内容及书写格式
1.测试计划、测试设计说明和测试用例说明
详细内容介绍见第8.3节。
测试计划内容一般包括:测试计划名称、引言、测试项、被测试的特性、不被测试的特性、方法详述、测试项通过准则、暂停标准和再启动要求、应提供的测试文件、测试任务、环境要求、职责、人员和训练要求、进度、风险和应急、批准等。
测试设计说明内容包括:测试设计说明名称、被测试的特性、方法详述、测试用例名称、特性通过准则。测试用例说明主要包括:测试用例说明名称、测试项、输入说明、输出说明、环境要求、特殊的规程说明、用例之间的依赖关系。
2.IEEE829测试规程说明
测试规程说明主要包括测试规程说明名称、目的、特殊要求、规程步骤等几项。详细介绍如下:
(1)测试规程说明名称:给每个测试规程说明取一个专用名称,给出对有关测试设计说明的引用。
(2)目的:描述本规程的目的。如果本规程执行测试用例,则引用各有关的测试用例说明。
(3)特殊要求:指出执行本规程所需的所有特殊要求,包括作为先决条件的规程、专门技能要求和特殊环境要求。
(4)规程步骤:主要包括以下内容:●
日志:说明用来记录测试的执行结果、观察到的事件和其他与测试有关的事件(参见前面的测试日志和测试事件报告)的所有特殊方法或格式。
●
准备:描述新任务执行规程所必需的操作序列。
●
启动:描述开始执行规程所必需的操作。
●
处理:描述在规程执行过程中所必需的操作。
●
度量:描述如何进行测试度量。
●
暂停:描述因发生意外事件暂停测试所必需的操作。
●
再启动:规定所有再拨动点和在启动点上重新启动规程所必需的操作。●
停止:描述正常停止执行时所必需的操作。
●
清除:描述恢复环境所必需的操作。
●
应急:描述处理执行过程中可能发生的异常事件所必需的操作。
3.测试项传递报告
测试项传递报告内容包括:传递报告名称、传递项、位置、状态、批准。
(1)传递报告名称:为本测试项传递报告取一个专用名称。
(2)传递项:规定被传递测试项及其版本/修订级别。提供与传递项有关测试项的文件和测试计划的相关信息,指出对该传递项负责的人员。
(3)位置:规定传递测试项的位置及其所在媒体。
(4)状态:描述被传递的测试项的状态,包括其与测试项文件、这些测试项的以往传递以及测试计划的差别。列出希望由被传递测试项要解决的事件报告。
(5)批准:规定本传递报告必须由哪些人(姓名和职务)审批,并为签名和日期留出位置。
4.测试日志
测试日志内容包括:测试日志名称、描述、活动和事件条目。
(1)测试日志名称:为本测试日志取一个专用名称。
(2)描述:除了在日志条目中特别注明的以外,用于日志中所有条目的信息都包括在本章中。一般应考虑以下信息:
●
规定被测试项及其版本/修订级别。如果存在的话,引用各项的传递报告。●
规定完成测试的环境属性,包括设备说明、所用的硬件、所用的系统软件及可用存储容量等可用资源。
(3)活动和事件条目:对每个事件(包括事件的开始和结束),记录发生的日期和时间,并说明记录者。应考虑以下各项信息:
●
执行描述:记录所执行的测试规程的名称,并引用该测试规程说明。记录执行时在场人员,包括:测试者、操作员和观察员,还要说明每个人的作用。●
测试结果:对每次执行,记录人工可观察到的结果(如产生的错误信息、异常中止和对操作员操作的请求等),还要记录所有输出的位置(如磁带号码),记录测试的执行是否成功。
●
环境信息:记录本条目的所有特殊的环境条件。
●
意外事件:记录意外事件及其发生前后的情况(如请求显示总计,屏幕显示正常,但响应时间似乎异常长,重复执行时响应时间也同样过长等)。记录无法开始执行测试或无法结束测试的周围环境(如电源故障或系统软件等问题)。
●
事件报告名称:每产生一个测试事件报告时,记录其名称。
5.测试事件报告
测试事件报告内容包括:测试事件报告名称、摘要、事件描述、影响。
(1)测试事件报告名称:为本测试事件报告取一个专用名称。
(2)摘要:简述事件,指出有关测试项及其版本/修订级别。引用有关的测试规程说明、测试用例说明及测试日志。
(3)事件描述:对以下各项事件进行描述:输入、预期结果、实际结果、异常现象、日期和时间、规程步骤、环境、重复执行的意图、测试者、观察者等。该描述应包括有助于确定事件发生原因及改正其中错误的有关代价及影响。如描述可能对此事件有影响的所有测试用例执行情况,描述与已公布的测试规程之间的所有差异等。
(4)影响:在所知道的范围内指出本事件对测试计划、测试设计说明、测试规程说明或测试用例说明所产生的影响。
6.测试总结报告
●
规定本报告必须由哪些人(姓名和职务)审批,并为签名和日期留出位置。
●
文件编制实施及使用指南(参考件),包括实施指南和用法指南。
(1)实施指南:在实施测试文件编制的初始阶段可先编写测试计划与测试报告文件。测试计划将为整个测试过程提供基础。测试报告将激励测试人员或单位以良好的方式记录整个测试过程的情况。经过一段时间的实践,积累了一定的经验之后再逐步引进其他文件。测试文件编制最终将形成一个相应于设计层的文件层次,即:系统测试文件、子系统测试文件及模块测试文件等。在本单位所使用的特定的测试技术的文件编制可作为正文中所述的基本文件集的补充。
(2)用法指南:在项目计划及单位标准中,应指明在哪些测试中需要哪些测试文件,并可在文件中加入一些内容,使各个文件适应一个特定的测试项及一个特定的测试环境。
软件测试报告是测试阶段最后的文档,是把测试过程和结果写成文档,并对发现的问题和Bug进行分析,为纠正软件存在的质量问题提供依据,同时为软件验收和交付打下基础。9.3软件测试报告
1.测试报告编写纲要
一份详细的测试报告包含足够的信息,包括产品质量和测试过程。测试报告的基础是测试中的数据采集以及对最终的测试结果的分析。下面介绍一般项目测试报告的编写纲要和内容格式,包括以下六个部分。
(1)简介:编写目的、项目背景、系统简介、术语和缩略词、参考资料;
(2)测试概要:测试目的及标准、测试范围;
(3)测试及Bug分析:测试内容、测试时间、测试环境、测试方法及测试用例设计;
(4)测试结论与建议:测试概要、测试用例执行情况、Bug情况、测试覆盖率分析、产品质量情况分析;
(5)测试总结:测试资源消耗情况、测试经验总结;
(6)附件:测试用例清单、Bug清单。
现在以简单通用的测试报告模板为例,详细描述测试报告的编写过程,并给出一些提示作为参考。
2.测试报告编写模板
报告首页内容包括:密级、报告名称、编号、单位、编写时间等信息。通常,测试报告提供给内部测试完毕后使用,因此密级一般为中;如果可供用户和更多的人阅读,密级为低;高密级的测试报告适合内部研发项目以及涉及保密行业和技术版权的项目。
报告首页格式如下:
名称:XXXX项目/系统测试报告
报告编号:可供索引的内部编号或用户要求分布提交时的序列号部门经理______项目经理______开发经理______测试经理______XXX公司XXXX单位(此处包含用户单位以及研发此系统的公司)XXXX年XX月XX日
一般格式要求:
标题一般采用大体字(如一号),宋体加粗,居中排列;
副标题采用大体小一号字或二号加粗,宋体,居中排列;
其他采用四号字,宋体,居中排列。
版本控制:版本作者时间变更摘要新建/变更/审核。
1.简介
(注明:本节以下的编号是按照测试报告的编号编写的)
1.1编写目的。本测试报告的具体编写目的,指出预期的读者范围。
实例:本测试报告为XXX项目的测试报告,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求(或达到XXX功能目标)。预期参考人员包括用户、测试人员、开发人员、项目管理者、其他质量管理人员和需要阅读本报告的高层经理。提示:通常,用户对测试结论部分感兴趣;开发人员希望从Bug结果以及分析中得到产品开发质量的信息;项目管理者对测试执行过程中的成本、资源和时间给予重视;而高层经理希望能够阅读到简单的图表并且能够与其他项目进行同向比较。此部分可以具体描述给什么类型的人可参考本报告XXX页XXX章节。如果你编写的报告的读者越多,那么你的工作越容易被人重视,前提是必须让阅读者感到你的报告是有价值。
1.2项目背景。对项目目标和目的进行简要说明,必要时包括简史。这部分可以直接从需求或招标文档中拷贝。
1.3系统简介。如果设计说明书有此部分,直接复制即可。建议多用必要的框架图和网络拓扑图。
1.4术语和缩写词。列出设计本系统/项目的专用术语和缩写语约定。对于技术相关的名词和与多义词一定要注明清楚,以便阅读时不会产生歧义。
1.5参考资料。
(1)需求、设计、测试用例、手册以及其他项目文档都是可参考的资料。
(2)测试使用的国家标准、行业指标、公司规范和质量手册等。
2.测试概要
测试的概要介绍,包括测试的一些声明、测试范围、测试目的等,主要是测试情况简介。
2.1测试用例设计。简要介绍测试用例的设计方法。如:等价类划分、边界值、因果图,以及如何使用这些方法(3~4句)。
提示:如果能够具体对设计进行说明,在其他开发人员、测试经理阅读时就容易对你的测试用例设计有一个整体的概念。重点测试部分一定要保证有两种以上不同的用例设计方法。
2.2测试环境与配置。简要介绍测试环境及其配置。
提示:如果系统/项目比较大,建议用表格方式列出数据库服务器配置CPU、内存、硬盘、可用空间大小、操作系统、应用软件、机器网络名、局域网地址、应用服务器配置、客户端配置等。对于网络设备和要求建议使用相应的表格,对于三层架构的,可以根据网络拓扑图列出相关配置。
2.3测试方法(或测试工具)。简要介绍测试中采用的方法、技术或测试工具。
提示:测试方法、技术可以写上测试的重点和所采用的测试模式,这样可以清楚是否遗漏了重要的测试点和关键模块。测试工具一般为可选项,当使用测试工具和相关工具时,应说明是自己开发的还是商品软件,注明、版本号,在测试报告发布后要避免产生测试工具的版权问题。
3.测试结果及Bug分析
这是整个测试报告中最核心的部分,这部分主要汇总各种数据并进行度量,包括对测试过程的度量和能力评估、对软件产品的质量度量和产品评估。对于不需要过程度量或相对较小的项目,如用于验收时提交用户的测试报告、小型项目的测试报告,可省略过程方面的度量部分;采用了CMM/ISO或其他工程标准过程,需要提供过程改进建议、参考的测试报告和Bug预防机制,过程度量需要列出。
3.1测试执行情况与记录。描述测试资源消耗情况,记录实际数据。这是测试项目经理关注的部分。
3.1.1测试组织。可列出简单的测试组架构图,包括:测试组架构,如存在分组、用户参与等情况;测试经理(领导人员);主要测试人员;参与测试人员。3.1.2测试时间。列出测试的跨度和工作量,最好区分测试文档和活动的时间。数据可供过程度量使用。如XXX子系统/子功能;实际开始时间和实际结束时间;总工时/总工作日;任务开始时间、结束时间,总计;合计。
对于大系统/项目来说最终要统计资源的总投入,必要时要增加成本一栏,以便管理者清楚地知道究竟花费了多少人力去完成测试。增加的部分包括:
●
测试类型人员成本工具设备其他费用;总计。●
在数据汇总时可以统计个人的平均投入时间和总体时间、整体投入平均时间和总体时间,还可以算出每一个功能点所花费的时间(时/人)。
●
用时人员编写用例执行测试总计;合计。这部分用于过程度量的数据,包括文档生产率和测试执行率。
●
生产率人员用例/编写时间用例/执行时间平均;合计。3.1.3测试版本。给出测试的版本,如果是最终报告,可能要给出测试次数、回归测试次数。列出表格清单以便知道哪个子系统/子模块的测试频度,对于多次回归的子系统/子模块将可能引起开发者关注。
3.2覆盖分析。3.2.1需求覆盖率。需求覆盖率是指经过测试的需求/功能和需求规格说明书中所有需求/功能的比值,通常情况下要达到100%的目标。
需求/功能(或编号)测试类型是否通过备注;[S][P][N][N/A];根据测试结果,按编号给出每一测试需求通过与否的结论。其中,S表示项数,P表示部分通过,N表示不可测试,N/A表示不可测试或用例不适用。
实际上,需求跟踪矩阵列出了一一对应的用例情况以避免遗漏,此表作用为传达需求的测试信息以供检查和审核。
需求覆盖率计算公式:
×
100%3.2.2测试覆盖。需求/功能(或编号)用例个数执行总数、未执行、未/漏测分析和原因。实际上,测试用例已经记载了预期结果数据,测试Bug上说明了实测结果和与预期结果的偏差。因此,在此不必对每个编号包含更详细的Bug记录与偏差,列表的目的仅在于更好的查看测试结果。
测试覆盖率计算公式:
×
100%
3.3Bug的统计与分析。Bug统计主要涉及被测系统的质量,所以这部分成为开发人员、质量人员重点关注的部分。
3.3.1Bug汇总。被测系统/项目的系统测试回归测试总计;合计。
按严重程度分为严重、一般、微小;按Bug类型分为功能算法、接口文档、用户界面、其他;按功能分布分为功能一至功能七等。最好给出Bug的饼状图和柱状图以便直观查看。3.3.2Bug分析。本部分对上述Bug和其他收集数据进行综合分析,画出测试曲线图,具体人员可得出如下平均指标:
Bug发现效率
=
用例质量
=×
100%
Bug密度=由Bug密度可以得出系统各功能或各需求的Bug分布情况,开发人员可以在此分析的基础上得出那部分功能/需求Bug最多,从而在今后开发过程中,注意避免并在实施时予与关注。测试经验表明,测试Bug越多的部分,其隐藏的Bug可能也越多。
测试曲线图。描绘被测系统每工作日/周Bug数情况,得出Bug走势和趋向重要Bug摘要;Bug编号简要描述分析结果及备注。3.3.3残留Bug与未解决问题。包括多项:编号——Bug号;Bug概要——该Bug描述的事实;原因分析——如何引起Bug、Bug的后果,描述造成软件局限性和其他限制性的原因;预防和改进措施——弥补手段和长期策略;未解决问题;功能/测试类型;测试结果——与预期结果的偏差;Bug具体描述、评价——对这些问题的看法,即这些问题如果发出去后会造成什么样影响。
4.测试结论与建议
项目经理、部门经理以及高层经理关注测试结论并给出一些建议。
4.1测试结论。
(1)测试执行是否充分(可以增加对安全性、可靠性、可维护性和功能性描述);
(2)对测试风险的控制措施和成效;
(3)测试目标是否完成;
(4)测试是否通过;
(5)是否可以进入下一阶段项目目标。
4.2建议。
(1)对系统存在的问题的说明,描述测试所揭露的软件Bug和不足,以及可能给软件实施和运行带来的影响;
(2)可能存在的潜在Bug和后续工作;
(3)对Bug修改和产品设计的建议;
(4)对过程改进方面的建议。
5.测试总结
测试总结可以定位Bug,指导程序员修改代码,同时指出测试进行的程序并进一步指明测试方向,包括测试结果分析和测试报告:
(1)测试结果分析是一个由测试结果和测试预期结果进行分析、比较和定位Bug的过程。测试结果分析是一次测试的最后环节,分析时应考虑软件的运行环境和实际运行环境的差异以及各种外界因素的影响等;
(2)测试报告的内容大同小异,对于一些测试报告而言,可能将上面的第四和第五部分合并,逐项列出测试项、Bug分析和建议。这种方法也比较多见,尤其在第三方评测报告中,此份报告模板仅供参考。表9.2为在多种测试活动中所需的测试文件列表,所需的文件数量因单位而异。表9.2一个测试文件编制清单
一个测试模型一般包括三部分:测试策略、测试计划和执行测试。
1.测试策略9.4软件测试模型文档编写
输入:要求的硬件和软件组件的详细说明,包括测试工具、测试环境、测试工具数据。针对测试和进度约束(人员、进度表)及需要的资源的角色和职责说明。
测试方法:应用程序的功能性和技术性需求,包括需求、变更请求、技术性和功能性设计文档。
输出:已批准和签署的测试策略文档、测试计划、测试用例。需要解决方案的测试项目,通常要求客户项目的管理层协调。
过程:测试策略是关于如何测试系统XXX的正式描述,要求开发针对所有测试级别的测试策略,测试小组分析需求、编写测试策略并且与项目小组一起复审计划。
2.测试计划
测试计划一般包括:测试用例和条件、测试环境、与任务相关的测试、通过/失败的准则和测试风险评估。测试进度表将识别所有要求有成功的测试成果的任务、活动的进度和资源要求。
输入:已批准的测试策略文档。如果测试工具适用、自动化测试软件和以前开发的测试脚本作为一种测试的结果,包括测试文档问题。
测试文档中没有说明的问题,可以从概要和详细设计文档(软件设计、代码和复杂的数据)中导出的对软件复杂性和模块路径覆盖的理解。输出:已批准的测试场景、条件和脚本、测试数据,设计时发现的问题反馈给开发人员。
过程:通过复审发布版本的功能需求、业务功能逻辑集合,准备测试场景和测试用例。测试用例包括测试条件、用于测试的数据和期望的结果、数据库更新、文件输出、报告结果等。将可能在应用程序中出现的既普通又异常的情况描绘为测试场景。项目开发人员将定义单元测试需求和单元测试的场景/用例。在集成和系统测试前,开发人员同时也负责执行单元测试用例。通过使用测试脚本执行测试场景。利用脚本能执行一个和多个测试场景的一系列步骤。利用测试脚本描绘在一般的系统操作中会出现的事务或过程。测试脚本包括用于测试过程或事务的特定数据。测试脚本将覆盖多个测试场景并且包括运行/执行/周期信息。测试脚本映射需求和用于保证任何测试都在内的追溯矩阵。
3.执行测试
输入:已批准的测试文档,如测试计划、用例、程序,可能有自动化测试软件和编写好的脚本、设计的变更(变更请求)、测试数据;测试和项目组的可用性(项目人员、测试小组);概要和详细设计文档(需求、软件设计);通过配置/构建人员能够完全转移到测试环境(单元测试过的代码)的开发环境;测试就绪文档、修订文档等。
输出:代码的变更(测试修复项)、测试文档;设计时发现的问题反馈给开发人员和客户(如需求、设计、代码问题);测试事故的正式记录(问题跟踪);为向下一级别转移而准备的基线化包(有,已测试的源代码和对象代码);测试结果的日志和总结;已批准和带有修订测试交付项的签署文档(已更新的交付项)。
过程:在执行阶段中应召开Checkpoint会议。每天应召开Checkpoint会议(如果需要)来处理和讨论测试中的问题、状态和活动。
通过采用系统的手段跟进测试文档来完成测试的执行。当执行测试程序的每一个包时,为了记录程序的执行和测试程序找出的任何Bug,应将问题记录到测试执行日志中。测试程序执行后的输出当做测试结果。为了确定是否可以得到预期的结果,测试结果应由适当的项目组员评估(适合于测试的所有级别)。记录并与软件开发经理/程序员讨论所有差异/异常。为了以后调查和解决应将它文档化。每个客户可能有不同的记录日志和报告Bug/defect的过程,通过ConfigurationManagement(CM)小组校验这些过程。通过/失败的准则用来确定问题的严重级别,结果记录到测试总结报告中。
根据客户的风险评估来定义在系统测试中发现的问题严重级别,并记录到他们选择的跟踪工具中。基于问题的严重级别有目的的修复并提交到测试环境中。被修改的问题应进行回归测试并将没有问题的修复项转移到新的基线中。在测试完成后,测试组的成员应准备一份总结报告。总结报告要由项目经理、客户、软件质量保证和/或测试组长复审。
在证实达到一个指定的测试级别后,配置经理应根据配置管理计划中的要求整理发布的软件组件并转移到下一个测试级别。软件只有在客户正式验收后才可以转移到生产环境中。测试小组复审在测试和更新文档时发现的测试文档问题。一些问题可能是由于技术性和功能性之间不一致或修改所导致。
测试用例的设计一直是软件测试工作的重点和难点。随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。其中,测试用例的设计和编制是软件测试活动中一项最重要的工作,是测试工作的指导,是软件测试必须遵守的准则,更是软件测试质量稳定的根本保障。9.5测试用例设计和文档编写
1.测试用例文档
编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。测试用例文档由简介和测试用例两部分组成:
(1)简介部分包括测试目的、测试范围、定义术语、参考文档、概述等;
(2)测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:用例编号、用例名称、入口准则、测试等级、验证步骤、期望结果(含判断标准)、出口准则、注释等。以上内容涵盖了测试用例的基本元素:测试索引、测试环境、测试输入、测试操作、预期结果、评价标准等。
测试用例设计包含的内容有基本信息、文档、设置和设计。
(1)基本信息。每个具体测试用例都将包括下列详细信息:用例编号、用例名称、测试等级、入口准则、验证步骤、期望结果(含判断标准)、出口准则、注释等。以上内容涵盖了测试用例的基本元素,包括测试索引、测试环境、测试输入、测试操作、预期结果、评价标准。
(2)文档。在编写测试用例文档时应当有文档模板,且文档模板需要符合企业内部的规范要求,测试用例文档将受制于测试用例管理软件的约束。软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。测试用例文档由简介和测试用例两部分组成。简介部分包括:编制测试目的、测试范围、定义术语、参考文档、概述等;测试用例部分指逐一列示各测试用例。
(3)测试用例的设置。早期的测试用例是按功能设置用例,后来引进了路径分析法,按路径设置用例。目前演变为按功能、路径混合模式设置用例。按功能测试是最简捷的,按用例规约遍历测试每一功能。对于复杂操作的程序模块,其各功能的实施是相互影响、紧密相关、环环相扣的,可以演变出数量繁多的变化。由于没有严密的逻辑分析,产生遗漏在所难免。路径分析是一个很好的方法,其最大的优点在于可以避免漏测试。但路径分析法也有局限性,在一个非常简单字典维护模块中就存在10余条路径,一个复杂的模块中可能会有几十到上百条路径。
(4)测试用例的设计。测试用例可以分为基本事件、备选事件和异常事件。设计基本事件的用例,应该参照用例规约(或设计规格说明书),根据关联的功能、操作按路径分析法设计测试用例。而对孤立的功能则直接按功能设计测试用例。基本事件的测试用例应包含所有需要实现的需求功能,覆盖率可达100%。
2.测试用例编写策略
人们一般可以根据测试用例的设计方法,遵循测试用例的编写原则,针对开发系统的特点编写有效的测试用例。而在具体的实施过程中,还要遵循一些有效的测试用例编写策略,才能达到最终的最佳测试效果。测试用例编写策略是指组织和编写有效的测试用例的方法和技巧。在组织和编写测试用例时,需要根据测试对象特点、团队的执行能力等各个方面综合起来决定采用哪种编写策略,以及如何编写测试用例。
可以从不同的角度编写测试用例,从测试内容角度可以编写流程用例和功能点用例:
(1)流程用例是针对业务流程编写的测试用例,通常采用场景法。现在的软件大多数都是用事件触发来控制流程,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
(2)功能点用例指针对具体功能点编写的测试用例,可以采用等价类划分、边界值法、因果图等方法。根据测试的策略,测试用例可以分为通过测试用例和失败测试用例:
(1)通过测试用例主要为了验证需求是否可以实现,一般采用等价类划分方法。
(2)失败用例的编写主要为了尽可能多的发现Bug,一般采用错误推测法、边界值分析法等测试方法。
在测试用例的编写过程中还需注意其详细程度,覆盖功能点不是指列出功能点,而是要写出功能点的各个方面,如果组合情况较多时可以采用等价类划分的方法。此外,测试用例的编写和组织会受到项目开发能力和测试对象特点的影响。如果开发力量比较落后,编写较详细的测试用例就不现实,因为一般根本没有、也没有必要投入很大资源详细编写测试用例。这种情况会随着团队的发展而逐渐有所改善。测试对象特点、重点是指测试对象在进度、成本等方面的要求。如果进度较紧张,就没有时间写出高质量的测试用例,甚至有时测试工作只是一种辅助工作,因而没有编写测试用例。
3.编写测试用例的基本要求
测试用例写得过于简单,则可能失去了测试用例的意义。过于简单的测试用例设计其实并没有进行“设计”,只是把需要测试的功能模块记录下来,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些。测试用例设计的本质应是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试。
测试用例写得过于复杂或过于详细,会带来两个问题:效率问题和维护成本问题。另外,测试用例设计得过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。大多数测试团队编写的测试用例的详细程度介于两者之间。而如何把握好详细程度是测试用例设计的关键,它将影响测试用例设计的效率和效果。人们应根据项目的实际情况、测试资源情况等来决定设计出怎样详细程度的测试用例。
不管是从个人角度还是从公司角度,测试用例的编写应符合以下六点:
(1)一个用例对应一个功能点:每个用例都要有测点,找准一个测点则可,不能同时覆盖很多功能点,否则执行起来牵连太大。
(2)用例易读:从执行者的角度去写测试用例,用例中最好不要含有太多的术语,如果有最好指明具体位置。
(3)用例执行粒度(详细程度)越小越好。
(4)步骤清晰:一个用例多个步骤,可只有一个重点。步骤要指明人们怎么去操作;期望结果则指明这样操作之后应看到什么结果。最好不要用正确、正常、错误等之类的含糊主观的字眼。
(5)总体设计:设计策略是先正常后异常,这样可以确保正常情况下系统功能能够通过。根据以上几点编写的测试用例能够使测试人员(包括初来的人员)容易看懂和理解测试用例;能顺利执行用例;能更快掌握业务系统流程。
(6)结对编写。测试组长或经理对用例进行审核可以做到用例的补充和校对,但一般情况下是很难做到的。实际中人们可以采用另一种方式,就是结对编写测试用例(前提是测试组应有两个以上的测试人员),内部审核。测试用例不是自己编写自己执行,它需要其他测试人员都能读懂且明白目标所在。结对编写可以尽量减少个人的“偏好习惯”,同时也能拓展思维,加强测试重点的确认,小组内部达到统一。一定程度上结对编写也可以减少组长或经理对用例的管理负担,提高组员的参与积极性。
4.测试用例编写格式细则
统一测试用例编写的规范,以保证使用最有效的测试用例,保证测试质量。
(1)内容。具体实施可以采用EXCEL和图形相结合,可用EXCEL编写测试用例的同时插入图形来加以说明。测试用例设计的内容包括:模块名、功能说明或图形说明、测试用例输入、应输出结果、实际输出结果、结论、Bug编号、Bug级别等。
在测试用例设计模板中有“业务流程测试用例设计模板”(包含整体业务流程)和“功能测试用例设计模板”两个模板,可按需要选择。
(2)一般表格格式。表格内容的字体为宋体;表格内容的字号为12号。
5.简单实例
以计算器实现加法功能为例,演示系统测试用例编写过程。
用例编号:calc-st-add-001。
测试项目:计算器的加法功能测试。
测试标题:一个数在合法的取值范围内,另一个也在合法的取值范围内。
重要级别:中。
预置条件:启动计算器。
测试输入:参数1:3;参数2:+;参数3:4;参数4:=。执行步骤:用计算机键盘依次输入上述参数。
预期输出:参数:7。
在执行特征功能测试前,应对国际化软件提供的软件特征功能以及这些功能的重要性进行风险分析,以便确定测试过程中的测试成本。国际化软件的特征功能测试的输入内容包括:软件功能规格说明、软件需求、软件的性能目标、软件的部署场景等。
6.测试用例模板
下面给出一些不同的测试用例模板。
软件功能测试用例模板,见表9.3。表9.3软件功能测试用例模板
续表表9.4软件数据处理测试用例模版表9.5软件流程测试用例模板表9.6软件安装测试用例模板
基于场景的测试用例设计思想是Rational公司提出的,在RUP2000中文版中有详尽的解释和应用。9.6使用用例场景设计测试用例及其文档编写
1.测试用例场景
测试用例场景是通过描述流经用例的路径来确定的过程,这个过程要从测试用例开始到结束遍历其中所有基本流和备选流。
简单的测试用例流径见图9.2,图中经过用例的每条不同路径反映了基本流和备选流,用箭头来表示。基本流是经过用例的最简单的路径。每个备选流从基本流开始,然后在某个特定条件下执行。备选流可能会重新加入基本流中(如备选流1和3),还可能起源于另一个备选流(如备选流2),或终止用例而不再重新加入某个流(如备选流2和4)。
图9.2测试用例流径示意图按照图9.2中每个经过用例的可能路径,可以确定不同的测试用例场景。从基本流开始,再将基本流和备选流结合起来,可以确定以下8个用例场景:
场景1—基本流
场景2—基本流、备选流1;
场景3—基本流、备选流1、备选流2;
场景4—基本流、备选流3;
场景5—基本流、备选流3、备选流1;
场景6—基本流、备选流4;
场景7—基本流、备选流3、备选流1、备选流2;
场景8—基本流、备选流3、备选流4。生成每个场景的测试用例是通过确定某个特定条件来完成,这个特定条件将导致特定用例场景的执行。
2.测试用例例子
以自动取款系统为例,假定图9.2描述的用例对备选流3规定如下:(1)使用用例场景设计测试用例;(2)如果在备选流2(在ATM中)—银行客户在‘输入取款金额’中输入的钞票量超出当前账户余额,则出现此事件流。系统显示警告消息,然后重新加入基本流,再次执行上述备选流2—‘输入取款金额’,此时银行客户可以输入新的取款金额。由此设计执行备选流3的测试用例(见表9.7)。表9.7测试用例
3.实用举例
下面给出一台ATM机的测试用例设计的示例。该示例由用例场景生成测试用例,比较符合实际情况(注:不是完备的测试用例,只是列举了一些情况)。图9.3为ATM机操作系统示意图。
图9.3ATM机操作系统示意图下面给出图9.3中取款用例的基本流和一些备选流。
1)基本流
(1)本用例开始是ATM处于准备就绪状态。
(2)准备取款:客户将银行卡插入ATM机的读卡机。
(3)验证银行卡:ATM机从银行卡的磁条中读取账户代码,并检查它是否属于可以接收的银行卡。
(4)输入PIN:ATM要求客户输入PIN码(4位)。
(5)验证银行账户代码和PIN:验证账户代码和PIN以确定该账户是否有效以及所输入的PIN对该账户来说是否正确。对于此事件流,账户是有效的且PIN对此账户来说正确无误。
(6)ATM选项:ATM显示在本机上可用的各种选项。在此事件流中,客户通常选择“取款”。
(7)输入金额:要从ATM中提取的金额。对于此事件流,客户需选择预设的金额
(50元、100元、150元或200元等)。
(8)授权:ATM通过卡ID、PIN、金______额。
(9)返回银行卡:银行卡被返还。
(10)打印数据并提供给客户。ATM还相应更新内部记录。
2)备选流
(1)备选流1:银行卡无效。在基本流步骤(3)中,如果卡是无效的,则卡被退回,同时会通知相关消息。
(2)备选流2:ATM内没有现金。在基本流步骤(6)中,如果ATM内没有现金,则“取款”选项将无法使用。
(3)备选流3:ATM内现金不足。在基本流步骤(7)中,如果ATM机内金额少于请求提取的金额,则将显示一则适当的消息,并且在步骤(7)输入金额处重新加入基本流。
(4)备选流4:PIN有误。在基本流步骤(5)中,客户有三次机会输入PIN。如果PIN输入有误,ATM将显示适当的消息;如果还存在输入机会,则此事件流在步骤(4):输入PIN处重新加入基本流。如果最后一次尝试输入的PIN码仍然错误,则该卡将被ATM机保留,同时ATM返回到准备就绪状态,本用例终止。
(5)备选流5:账户不存在。在基本流步骤(5)中,如果银行系统返回的代码表明找不到该账户或禁止从该账户中取款,则ATM显示适当的消息并且在步骤(9):返回银行卡处重新加入基本流。
(6)备选流6:账面金额不足。在基本流步骤(8)中,银行系统返回代码表明账户余额少于在基本流步骤(7),输入金额内输入的金额,则ATM显示适当的消息并且在步骤(7),输入金额处重新加入基本流。
(7)备选流7:达到每日最大的取款金额。在基本流步骤(8)中,银行系统返回的代码表明包括本取款请求在内,客户已经或将超过在24小时内允许提取的最多金额,则ATM显示适当的消息并在步骤(7),输入金额上重新加入基本流。
(8)备选流x:记录错误。如果在基本流步骤(10)中,记录无法更新,则ATM进入“安全模式”,在此模式下所有功能都将暂停使用。同时向银行系统发送一条适当的警报信息表明ATM已经暂停工作。
(9)备选流y:退出。客户可随时决定终止交易(退出)。交易终止,银行卡随之退出。
(10)备选流z:“翘起”。ATM包含大量的传感器,用以监控各种功能,如电源检测器、不同的门和出入口处的测压器以及动作检测器等。在任一时刻,如果某个传感器被激活,则警报信号将发送给警方而且ATM进入“安全模式”,在此模式下所有功能都暂停使用,直到采取适当的重启/重新初始化的措施。
3)操作
第一次迭代中,根据迭代计划,需要核实取款用例已经正确实施。假设此时尚未实施整个用例,只实施了下面的事件流:
●
基本流:提取预设金额(50元,100元,150元或200元);
●
备选流2:ATM内没有现金;
●
备选流3:ATM内现金不足;●
备选流4:PIN有误;
●
备选流5:账户不存在/账户类型有误;
●
备选流6:账面金额不足。
则生成下列场景:
●
场景1:成功的取款基本流;
●
场景2:ATM内没有现金基本流备选流2;
●
场景3:ATM内现金不足基本流备选流3;
●
场景4:PIN有误(还有输入机会)基本流备选流4;
●
场景5:PIN有误(不再有输入机会)基本流备选流4;
●
场景6:账户不存在/账户类型有误基本流备选流5;
●
场景7:账户余额不足基本流备选流6。
注:为方便起见,备选流3和6(场景3和7)内的循环以及循环组合未讨论。
对于上面7个场景中的每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面利用一种通用格式:各行代表各个测试用例,各列代表测试用例的基本信息。对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果(见表9.8)。
首先,利用从确定执行用例场景所需的数据构建矩阵。然后,对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。在表9.8中,V(有效)表明条件必须是有效的才可执行基本流,而I(无效)表明在该条件下将激活所需备选流。表中N/A(不适用)表明该条件不适用于测试用例。表9.8ATM机测试用例矩阵在表9.8中,6个测试用例执行5个场景1~5。对于基本流,用例CW1称为有效测试用例。它一直沿着用例的基本流路径执行,未发生任何偏差。基本流的有效测试必须包括无效测试用例,以确保只有在符合条件的情况下才执行基本流。CW2~CW6表示无效测试用例(阴影单元格表明这种条件下需要执行备选流),它们对于基本流而言都是无效测试用例,但它们相对于备选流2至4而言都是有效测试用例。而且对于这些备选流中的每一个而言,至少存在一个无效测试用例(如CW1-基本流)。每个场景只具有一个有效测试用例和无效测试用例是不充分的,场景4就是这样一个示例。要全面地测试场景4PIN有误,至少需要三个有效测试用例(以激活场景4):
●
输入了错误的PIN,但仍存在输入机会,此备选流重新加入基本流中的步骤(4):输入PIN。
●
输入了错误的PIN,而且不再有输入机会,则此备选流将保留银行卡并终止用例。
●最后一次输入时输入了“正确”的PIN。备选流在步骤(5):输入金额处重新加入基本流。注:在上面的矩阵中,无需为条件(数据)输入任何实际的值。以这种方式创建测试用例矩阵的一个优点在于容易看到测试的条件。由于只需要查看V和I(或此处采用的阴影单元格),这种方式易于判断是否已经确定了足够的测试用例。从表9.8中可发现存在几个条件不具备阴影单元格,这表明测试用例还不完全,如场景6:不存在的账户/账户类型有误和场景7:账户余额不足就缺少测试用例。一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据(见表9.9)。表9.9测试用例矩阵以上测试用例只是在本次迭代中需要用来验证取款用例的一部分测试用例。需要的其他测试用例包括:
场景6:账户不存在/账户类型有误;未找到账户或账户不可用场景6:账户不存在/账户类型有误,禁止从该账户中取款;
场景7:账户余额不足;请求的金额超出账面金额在将来的迭代中,当实施其他事件流时,在下列情况下将需要测试用例:
●
无效卡(所持卡为挂失卡、被盗卡、非承兑银行发卡、磁条损坏等)。●
无法读卡(读卡机堵塞、脱机或出现故障)。
●
账户已消户、冻结或由于其他原因而无法使用、ATM内的现金不足或不能提供所请求的金额(与CW3不同,在CW3中只是一种币值不足,而不是所有币值都不足)。
●
无法联系银行系统以获得认可、银行网络离线或交易过程中断电等。
软件测试的目的就是保证软件质量,所以大部分的测试工作不考虑需求分析的结果是否合理,这可能导致本来可以提前发现而避免的Bug,在后续过程中要花费大量的资源与时间来改正。需求验证有助于保证软件在后期开发的正确性,不会出现因需求分析Bug导致的项目返工现象。9.7需求分析和软件登记测试文档编写验证用户需求可以尽早地发现和需求相关的Bug,从而不会影响到下一阶段开发的质量,避免了错误的需求所带来的软件设计和执行方面的问题,避免了在项目结束阶段修复问题所浪费大量的资源与时间。
1.建立开发需求
将每一条软件需求对应的开发文档及章节号作为软件需求标识,使用软件需求的简述作为原始测试需求描述,没有文档来源的开发需求可用隐含需求或遗漏需求进行标识,标明软件需求获取的来源信息,如开发文档、相关标准、与用户或开发人员的交流等。由于在提取的开发需求中可能存在重复和冗余,需要进行整理,通过以下方法整理开发需求:
●
删除:删除原开发需求列表中重复的、冗余的、含有包含关系的开发需求描述。
●
细化:对太简略的开发需求描述进行细化。
●
合并:如果有类似的开发需求,在整理时需要对其进行合并。
对于每一条开发需求,从测试角度来考虑,形成可测试的分层描述的测试需求。具体地,通过分析每条开发需求描述中的输入、输出、处理、限制、约束等,给出对应的验证内容;通过分析各个功能模块之间的业务顺序和各个功能模块之间传递的信息或数据,对存在功能交互的功能项给出对应的验证内容。
对每一条测试需求,从标准GB/T16260.1定义的软件质量子特性角度出发,确定所对应的质量子特性。即,从下列多方面的定义出发,确定每一条测试需求所对应的质量子特性:包括适合性、准确性、互操作性、保密安全性、成熟性、容错性、易恢复性、易理解性、易学性、易操作性、吸引性、时间特性、资源利用性、易分析性、易改变性、稳定性、易测试性、适应性、易安装性、共存性、易替换性和依从性等。
2.实例
下面介绍一个需求文档评审实例。软件的开发文档质量一般只能通过评审来保证,有效发现文档中的Bug是一个复杂的问题。假设一段关于日志文件的需求描述如下:将所有的访问者都记录下来,对每次访问要记录访问的开始时间、访问结束时间、访问者的IP地址三方面的信息作为一条日志记录。要求以天为单位,每天生成一个访问记录日志文件。
根据这段需求描述得到日志文件所要记录的三个方面的信息内容。下面采用元素分析法分析能否根据这个需求描述开发软件。本例需求中涉及三个显性元素:访问者、访问记录、日志文件。
(1)首先分析访问者和访问记录,确定访问者除了描述中提及的访问时间和IP地址外还有哪些属性。访问者的访问内容是很重要的属性,仅记录访问时间和访问者的IP地址是不够的。从时间信息上最多只能看出那段时间访问的人数较多,只可以得到用户的时间分布规律,很难对用户的行为有深入的分析,只有知道访问者在访问哪些内容才能得到更有价值的信息。(2)分析访问记录。访问记录的主要属性是记录格式,而每条记录的格式没有描述出来。日志记录分析一般是需要使用专门的分析软件或书写专门的分析程序来分析。如何设计合理的记录格式来利用已有的日志分析软件进行分析是首要考虑的问题。
(3)分析日志文件。日志文件应具有的属性包括:文件名、存放位置、文件格式、文件内容、文件创建时间、文件大小、文件权限等。需求描述中提到了每天要生成一个日志文件,从文件创建时间属性来看,每天有24小时,到底从何时开始创建文件,是从0点开始还是从几点开始,没有描述出来。利用元素分析法具体分析结果如下:
●
从文件名属性来看,如何命名日志文件,需求中也没有提及。从存放位置属性来看,日志文件存放在什么地方也没有说明。即没有说明所有的日志文件存放方式和位置。
●
分析文件格式属性。没有说明日志文件的存储格式、文件内容的记录格式、每条访问记录之间的分隔方式(是以回车换行还是以其他字符作为分隔等)。
●
分析文件内容属性。除了存放上述描述的内容外,是否还可以保存其他内容。如果不能保存其他内容,需求描述中应加上一句“日志文件中只能存储访问记录信息,不得储存其他记录信息”。
●
分析文件大小属性。没有说明日志文件的大小限制方式。如果某天处于访问高峰期,访问特别多,是否需要将日志文件分拆成多个就是一个需要考虑的问题。
●
分析文件权限属性。没有说明日志文件的访问权限,文件是否需要设置权限是一个需要考虑的问题。
通过元素分析法对上述需求描述分析后,我们发现需求描述中有很多的问题没有描述清楚。要描述清楚需要很大的工作量。但仅从需求分析的角度来看,如果需求规格描述得较细将会增加很多工作量;但从整个开发过程来看,如果需求描述完整,则后续阶段的开发产生歧义和遗漏的可能性就很小。实际上,后续阶段节约的时间会大大超过需求所多花的时间。
人们不仅在检查测试需求时需要使用测试用例设计方法,还应采取测试用例设计来驱动需求分析,即在需求设计的过程中设计测试用例,通过测试用例设计来驱动需求分析,完善需求分析的内容。
3.软件登记评测需要提交的文档
图9.4为软件登记测试流程图。
图9.4软件登记测试流程图虽然软件登记测试需要的文档较多,但一般都有标准模板,下面只给出需要提交的文档名称。
(1)《计算机软件产品登记测试申请表》书面一份(加盖公章)和电子文档。
(2)《软件产品功能列表》书面一份和电子文档。
(3)《材料交接单》书面一份加盖公章和电子文档。
(4)《测试现场软件及硬件环境列表》书面一份(加盖公章)和电子文档。
(5)《软件名称与版本号确认单》书面一份加盖公章和电子文档。
(6)《软件评测保密协议》、《软件评测合同》书面各两份,其格式按照合同及协议规范签订。
(7)《用户手册》一套(含电子文档),包括《用户手册》、《安装手册》、《操作手册》、《维护手册》。手册要有详细的目录索引、页码标识、文档版本号、技术支持联系方法、公司名称、地址等,格式请参考《计算机软件文档编制规范GB8567—2006》及《中华人民共和国国家标准UDC681.3》。
(8)
200字左右的软件简介(软件应用领域、作用、性能特点)以电子文档的形式提交《自主产权保证书》书面一份(加盖公章)和电子文档。
(9)《无法测试的功能的声明》书面一份(加盖公章)和电子文档。
下面给出三种测试文档的表格格式。
1.软件测试用例表
软件测试用例表见表9.10。
9.8测试文档表格格式表9.10软件测试用例表
2.软件测试Bug报告单
软件测试Bug报告单见表9.11。表9.11Bug报告单
3.测试现场软件及硬件环境
测试用硬件、软件配列表见表9.12。
表9.12(A)硬件列表表9.12(B)软件列表
1.功能测试用例
功能测试用例见表9.13。
●
被测试对象的介绍。
●
测试范围与目的。
●
测试环境与测试辅助工具的描述。
●
测试驱动程序的设计。
●
功能测试用例。9.9几种测试用例编写规则表9.13功能测试用例表
2.系统功能测试
下面介绍国内某软件测试公司的一种软件测试方案,本方案旨在指导×××V1.0.0的第三方功能测试工作,以保证顺利实施。具体地讲,对于×××V1.0.0进行功能确认,验证其功能是否完成需求,功能是否正确,数据计算是否正确等,同时关注系统运行是否稳定。测试包括×××V1.0.0的全部5个模块:用户安全验证模块、基本信息查询模块、相关原始报文查询模块、系统管理模块和客户端处理日志模块。
(1)测试方法。本次测试主要采用手工黑盒测试方法,根据开发商提交基础用例整理测试,并补充完成第三方测试用例,执行全部可执行测试用例,根据测试要求验证是否达到测试目的中所列内容。并使用测试管理平台TestDirector进行用例管理、执行管理与缺陷跟踪。
(2)测试步骤(详见表9.14)。
表9.14系统功能测试步骤(3)测试要求(详见表9.15)。
表9.15测试要求
(4)工作量和测试人员。测试计划实施周期为2007-6-25至2007-7-6,投入人员为4人,共10工作日,计26人日。测试人员如表9.16所示。表9.16测试人员和角色表9.17测试进度
(6)测试环境(详见表9.18)。
表9.18测试环境
3.性能测试用例
性能测试用例见表9.19,内容包括:
●
被测试对象的介绍。
●
测试范围与目的。
●
测试环境与测试辅助工具的描述。
●
测试驱动程序的设计。
●
性能测试用例。表9.19性能测试用例
4.接口-路径测试用例
接口—路径测试用例见表9.20,内容包括:
●
被测试对象(单元)的介绍。
●
测试范围与目的。
●
测试环境与测试辅助工具的描述。
●
测试驱动程序的设计。
●
接口测试用例。表9.20接口—路径测试用例
5.压力测试用例
压力测试用例见表9.21,内容包括:
●
被测试对象的介绍。
●
测试范围与目的。
●
测试环境与测试辅助工具的描述。
●
测试驱动程序的设计。
●
压力测试用例。表9.21压力测试用例
6.可靠性测试用例
可靠性测试用例见表9.22,内容包括:
●
被测试对象的介绍。
●
测试范围与目的。
●
测试环境与测试辅助工具的描述。
●
测试驱动程序的设计。
●
可靠性测试用例。表9.22可靠性测试用例7.健壮性测试用例
健壮性测试用例见表9.23,内容包括:
●
被测试对象的介绍。
●
测试范围与目的。
●
测试环境与测试辅助工具的描述。
●
测试驱动程序的设计。
●
容错能力/恢复能力测试用例。表9.23健壮性测试用例
8.安装/反安装测试用例
安装/反安装测试用例见表9.24,内容包括:
●
被测试对象的介绍。
●
测试范围与目的。
●
测试环境与测试辅助工具的描述。
●
测试驱动程序的设计。
●
安装/反安装测试用例。表9.24安装/反安装测试用例
9.信息安全性测试用例
信息安全性测试用例见表9.25,内容包括:
●
被测试对象的介绍。
●
测试范围与目的。
●
测试环境与测试辅助工具的描述。
●
测试驱动程序的设计。
●
信息安全性测试用例。表9.25信息安全性测试用例
10.系统测试案例模板
系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现Bug后要经过调试找出错误原因和位置,然后进行改正。该测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。下面给出了系统测试文档模板(见表9.26)。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 买卖海参合同范例
- 校本课程三字经教案
- 充电宝合同范例
- 仪表维保合同范例
- 关于出租车服务合同范例
- 专柜运营套路合同范例
- lpr利率借款合同范例
- 脉搏短绌患者护理操作
- 成长感恩教育主题班会
- 修车工人合同范例
- 2025年辽宁省交通高等专科学校单招职业适应性测试题库必考题
- DB12T 1315-2024城市内涝气象风险等级
- 历史-浙江天域全国名校协作体2025届高三下学期3月联考试题和解析
- 高等数学(慕课版)教案 教学设计-1.3 极限的运算法则;1.4 极限存在准则与两个重要极限
- 2025年淮北职业技术学院单招职业技能测试题库附答案
- 2025届高三化学一轮复习 化学工艺流程题说题 课件
- 第四周主题班会教案38妇女节《“致敬了不起的她”》
- 2025中国福州外轮代理限公司招聘15人易考易错模拟试题(共500题)试卷后附参考答案
- 医院化验室管理制度
- 新课标(水平三)体育与健康《篮球》大单元教学计划及配套教案(18课时)
- (2024)湖南省公务员考试《行测》真题卷及答案解析
评论
0/150
提交评论