发布新日志

  • 测试报告编写指南

    2007-06-21 15:17:48

    测试报告是把测试的过程和结果写成文档,并对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。本文提供测试报告模板以及如何编写的实例指南。

    关键字  

    测试报告 缺陷

    正文

        测试报告是测试阶段最后的文档产出物,优秀的测试经理应该具备良好的文档编写能力,一份详细的测试报告包含足够的信息,包括产品质量和测试过程的评价,测试报告基于测试中的数据采集以及对最终的测试结果分析。

    下面以通用的测试报告模板为例,详细展开对测试报告编写的具体描述。

    PARTⅠ 首页

    0.1页面内容:

    密级

        通常,测试报告供内部测试完毕后使用,因此密级为中,如果可供用户和更多的人阅读,密级为低,高密级的测试报告适合内部研发项目以及涉及保密行业和技术版权的项目。

    XXXX项目/系统测试报告

    报告编号

        可供索引的内部编号或者用户要求分布提交时的序列号

    部门经理 ______项目经理______

    开发经理______测试经理______

    XXX公司 XXXX单位 (此处包含用户单位以及研发此系统的公司)

    XXXX年XX月XX日

    0.2格式要求:

        标题一般采用大体字(如一号),加粗,宋体,居中排列

    副标题采用大体小一号字(如二号)加粗,宋体,居中排列

    其他采用四号字,宋体,居中排列

    0.3版本控制:

    版本 作者 时间 变更摘要

    新建/变更/审核

    PARTⅡ 引言部分

    1.1编写目的

        本测试报告的具体编写目的,指出预期的读者范围。

    实例:本测试报告为XXX项目的测试报告,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求(或达到XXX功能目标)。预期参考人员包括用户、测试人员、、开发人员、项目管理者、其他质量管理人员和需要阅读本报告的高层经理。

    提示:通常,用户对测试结论部分感兴趣,开发人员希望从缺陷结果以及分析得到产品开发质量的信息,项目管理者对测试执行中成本、资源和时间予与重视,而高层经理希望能够阅读到简单的图表并且能够与其他项目进行同向比较。此部分可以具体描述为什么类型的人可参考本报告XXX页XXX章节,你的报告读者越多,你的工作越容易被人重视,前提是必须让阅读者感到你的报告是有价值而且值得浪费一点时间去关注的。

    1.2项目背景

        对项目目标和目的进行简要说明。必要时包括简史,这部分不需要脑力劳动,直接从需求或者招标文件中拷贝即可。

    1.3系统简介

        如果设计说明书有此部分,照抄。注意必要的框架图和网络拓扑图能吸引眼球。

    1.4术语和缩写词

        列出设计本系统/项目的专用术语和缩写语约定。对于技术相关的名词和与多义词一定要注明清楚,以便阅读时不会产生歧义。

    1.5参考资料

    1.需求、设计、测试用例、手册以及其他项目文档都是范围内可参考的东西。

    2.测试使用的国家标准、行业指标、公司规范和质量手册等等

    PARTⅢ 测试概要

    测试的概要介绍,包括测试的一些声明、测试范围、测试目的等等,主要是测试情况简介。(其他测试经理和质量人员关注部分)

    2.1测试用例设计

        简要介绍测试用例的设计方法。例如:等价类划分、边界值、因果图,以及用这类方法(3-4句)。

    提示:如果能够具体对设计进行说明,在其他开发人员、测试经理阅读的时候就容易对你的用例设计有个整体的概念,顺便说一句,在这里写上一些非常规的设计方法也是有利的,至少在没有看到测试结论之前就可以了解到测试经理的设计技术,重点测试部分一定要保证有两种以上不同的用例设计方法。

    2.2测试环境与配置

        简要介绍测试环境及其配置。 

     提示:清单如下,如果系统/项目比较大,则用表格方式列出

    数据库服务器配置

    CPU:

    内存:

    硬盘:可用空间大小

    操作系统:

    应用软件:

    机器网络名:

    局域网地址:

    应用服务器配置

    …….

    客户端配置

    …….

        对于网络设备和要求也可以使用相应的表格,对于三层架构的,可以根据网络拓扑图列出相关配置。

    2.3测试方法(和工具)

        简要介绍测试中采用的方法(和工具)。

    提示:主要是黑盒测试,测试方法可以写上测试的重点和采用的测试模式,这样可以一目了然的知道是否遗漏了重要的测试点和关键块。工具为可选项,当使用到测试工具和相关工具时,要说明。注意要注明是自产还是厂商,版本号多少,在测试报告发布后要避免大多工具的版权问题。

    PARTⅣ 测试结果及缺陷分析

    整个测试报告中这是最激动人心的部分,这部分主要汇总各种数据并进行度量,度量包括对测试过程的度量和能力评估、对软件产品的质量度量和产品评估。对于不需要过程度量或者相对较小的项目,例如用于验收时提交用户的测试报告、小型项目的测试报告,可省略过程方面的度量部分;而采用了CMM/ISO或者其他工程标准过程的,需要提供过程改进建议和参考的测试报告-主要用于公司内部测试改进和缺陷预防机制-则过程度量需要列出。

    3.1测试执行情况与记录

    描述测试资源消耗情况,记录实际数据。(测试、项目经理关注部分)

    3.1.1测试组织

        可列出简单的测试组架构图,包括:

    测试组架构 (如存在分组、用户参与等情况)

    测试经理(领导人员)

    主要测试人员

    参与测试人员

    3.1.2测试时间

        列出测试的跨度和工作量,最好区分测试文档和活动的时间。数据可供过程度量使用。

    例如 XXX子系统/子功能

    实际开始时间-实际结束时间

    总工时/总工作日

    任务 开始时间 结束时间 总计

    合计

        对于大系统/项目来说最终要统计资源的总投入,必要时要增加成本一栏,以便管理者清楚的知道究竟花费了多少人力去完成测试。

    测试类型 人员成本 工具设备 其他费用

    总计

        在数据汇总时可以统计个人的平均投入时间和总体时间、整体投入平均时间和总体时间,还可以算出每一个功能点所花费的时/人。

    用时人员 编写用例 执行测试 总计

    合计 

    这部分用于过程度量的数据包括文档生产率和测试执行率。

    生产率人员 用例/编写时间 用例/执行时间 平均

    合计

    3.1.3测试版本

        给出测试的版本,如果是最终报告,可能要报告测试次数回归测试多少次。列出表格清单则便于知道那个子系统/子模块的测试频度,对于多次回归的子系统/子模块将引起开发者关注。

    3.2覆盖分析

    3.2.1需求覆盖

        需求覆盖率是指经过测试的需求/功能和需求规格说明书中所有需求/功能的比值,通常情况下要达到100%的目标。

    需求/功能(或编号) 测试类型 是否通过 备注

    [Y][P][N][N/A]

    根据测试结果 ,按编号给出每一测试需求的通过与否结论。P表示部分通过,N/A表示不可测试或者用例不适用。实际上,需求跟踪矩阵列出了一一对应的用例情况以避免遗漏,此表作用为传达需求的测试信息以供检查和审核。

    需求覆盖率计算 Y项/需求总数 ×100%

    3.2.2测试覆盖

        需求/功能(或编号) 用例个数 执行总数 未执行 未/漏测分析和原因

        实际上,测试用例已经记载了预期结果数据,测试缺陷上说明了实测结果数据和与预期结果数据的偏差;因此没有必要对每个编号在此包含更详细的说明的缺陷记录与偏差,列表的目的仅在于更好的查看测试结果。

    测试覆盖率计算 执行数/用例总数 ×100%

    3.2缺陷的统计与分析

        缺陷统计主要涉及到被测系统的质量,因此,这部分成为开发人员、质量人员重点关注的部分。

    3.3.1缺陷汇总

        被测系统 系统测试 回归测试 总计

    合计

    按严重程度

    严重 一般 微小

    按缺陷类型

    用户界面 一致性 功能 算法 接口 文档 用户界面 其他

    按功能分布

    功能一 功能二 功能三 功能四 功能五 功能六 功能七

    最好给出缺陷的饼状图和柱状图以便直观查看。俗话说一图胜千言,图标能够使阅读者迅速获得信息,尤其是各层面管理人员没有时间去逐项阅读文章。

    图例

    3.3.2缺陷分析

        本部分对上述缺陷和其他收集数据进行综合分析

    缺陷综合分析

    缺陷发现效率 = 缺陷总数/执行测试用时

    可到具体人员得出平均指标

    用例质量 = 缺陷总数/测试用例总数 ×100%

    缺陷密度 = 缺陷总数/功能点总数

  • 一个成功软件测试项目的经验

    2007-06-21 15:15:26

     

    1.       测试如何尽早介入:

    在项目前期,测试人员可以开展的有价值的工作如下:

    n         评审需求文档的正确性和可测试性;根据需求文档整理和分析测试需求

    n         在开发设计过程中,根据需求文档和设计文档进行测试设计

    2.       产品开发期同情的测试:

    在产品开发期,刚刚提交测试的时候,测试人员要学会 “忍”,要在这个能大批发现BUG 的黄金时段学会做减法。在这个阶段,系统很难满足系统测试条件,如果进行穷兵黩武的测试,无疑会加重开发人员的焦虑心情,对测试产生逆反心理

    u       这个阶段不要提交界面简单的错误和易用性方面的bug(可以记录下来到项目末期提交),否则会使开发人员质疑测试人员只会发现简单的bug

    u       换位思考,了解此时开发人员最关心的是功能是否正确运行,多对基本功能进行测试

    3.       产品成熟期积极的测试

           随着产品的不断成熟,主要功能实现已经趋于完善,关键路径已经不成问题。此时程序员对bug的接受程度最高,对bug的修复和反馈也非常积极。此时的测试工作应对整个产品的细节和所有测试路径进行覆盖测试,保证测试的全面性。

     

    4.       产品稳定期多样的测试

           在各个阶段,可以尽情的向开发人员报告产品易用性和界面的bug,重复发挥每个测试人员的想像力,根据以往的测试经验来搭建测试场景,构造测试数据。需要进行多样性测试,探索式测试

     

    5.       产品发布期谨慎的测试

           在临近发布的日子,包括测试在内的所有工作都变得谨慎起来,代码得提交权限受到控制,只保留开发经理一个入口;测试得重点更加具有防御性,要仔细测试每个变更,还可以“结对测试”来增加测试得保障

     

    6.       版本提交前得“冒烟测试”

       冒烟测试是一种测试包,其目标是检查版本得基本功能,这个测试包是由测试人员根据测试用例中基本为“基本”得测试用例抽取出来的,如果该版本没有通过冒烟测试,则就可以说明该版本不太稳定,测试人员可以拒绝测试

     

    7.       加强和技术人员的沟通,做到知己知彼,合力制胜

       在项目中提供服务使测试人员有机会赢得程序员的信任,同时也有机会展示自己的才能。比如:听开发人员讲解设计思路,算法流程;与开发人员一起构造测试数据;

Open Toolbar