窗外,酷热的夏日正散发着让人心烦的热量,热浪迫人的空气使人感到非常不舒服。最近,我接手一个测试到一半的软件测试项目,接手这个项目时只有只言片语的几份简单测试文档,没有详细的测试计划,更没有详细的测试记录。此项目让我深深感受到没有测试文档的痛苦,所有的一切都要自己重新摸索。这里说一下我对测试文档的体会。
什么是测试文档?
当我从前任测试同事手中接过“薄薄两页纸”的测试文档时,我难以置信的看着他问“没有了吗?只有这些?”。同事尴尬的点点头,又再说了一句让我吐血的话“测试计划和记录文档都在我心里记得清清楚楚呢”。这完全是对测试文档的误解,这也是许多软件测试技术人员的通病。
项目测试文档是用来记录、描述、展示测试过程中一系列测试信息的处理过程,通过书面或图示的形式对项目测试活动过程或结果进行描述、定义及报告。例如,分阶段测试计划文档,测试流程文档,测试数据文档,测试参数设置文档和测试指南文档等。这些文档将会伴随着软件测试的各个阶段逐渐充实、完善,同时也记载了整个测试的过程和成果。
作为测试技术人员,在测试过程中应将各种标准测试文档提交给项目组,以确保软件测试项目的质量。也就是说,测试技术人员的工作绩效与文档的高质量提交息息相关,它描述项目测试过程的每一个细节。因此,从某种程度上讲,测试管理的核心其实就是测试文档管理。
(1)测试文档有助于项目测试水平的提高
从内容上说,项目测试文档大致可以分为测试成果文档和测试过程文档两大类。测试成果文档作为项目可交付物的一个组成部分,其重要性自然不言而喻。测试过程文档主要记录了项目测试过程中的各种信息,为测试人员提供决策依据,以保证项目的顺利实现。另一方面,测试过程文档也是测试过程最为宝贵的资产,通过对过程文档进行归纳和分析,可以对测试项目的成功经验和失败教训了然于胸,从而使后续的测试运作更加有的放矢。
(2)测试文档驱动着测试过程
测试项目的阶段性成果是以测试文档形式体现的,因此,“测试项目的运作在一定程度上是由测试文档驱动的”这句话是有道理的。从测试文档的角度来看,项目测试过程就是一个文档制作与执行的过程。在项目测试的过程中,每项工作的事前计划、事中测试记录、事后分析结果都要形成相应的测试文档,文档包括与项目相关的资源及其使用情况。
因此,测试文档是软件项目的一部分,没有正式的测试文档的活动,就不是规范的测试。测试文档的编制和管理在项目测试中占有突出的地位和相当大的工作量,高质量地编制、变更、修正、管理和维护文档,对于提高项目测试的质量和客户满意度有着重要的现实意义。
“文档”不误“测试”功
与本项目前任负责同事一样,很多人对测试文档的作用存在非常多的误解,认为测试的事情本来就多,有数不过来得Bug要急着测试和处理,根本没有时间写文档。有了这样的想法,就开始忽略文档,认为写测试文档太累,能用嘴说的就不用手写,能简单写的就绝不详细写。当需要汇报的时候,好吧,我讲给你听,动嘴肯定简单多了。
实际上,测试文档是一种工具,古语云“磨刀不误砍柴功”,我们则说“文档”不误“测试”功。一个项目测试是否高质量完成,一般可以从两个方面进行评价:①
能否提供高质量的测试活动和结果。②能否提供有效的测试文档。而对于后者,高质量的测试文档正常体现前者是否高质量完成的证明。
(1)提高项目测试过程的能见度。标准规范、齐全的文档会详细记录测试过程中发生的事件,便于测试人员掌握测试进度、测试质量以及各种资源的调配。同时,文档有助于测试人员与开发人员明确了解各自的职责,信息互通,共同把握测试和开发的节奏。
(2)文档化能规范测试问题的反馈,提高测试效率。测试人员用一定时间编制、整理测试文档,可以使测试人员对各个阶段的工作都进行周密思考和理顺、找出存在的问题,从而减少差错,提高项目测试质量。例如,测试过程中肯定会遇到各种各样的问题,诸如软件问题或测试设置等需要向开发组反馈来寻求解决,通过对文档的检查,在项目测试早期发现文档错误和不一致,加以及时纠正,可以减少深入项目而导致的大问题的出现和为纠正失误而付出的更大的成本。
这类问题又分两种情况:①是重要的反馈迟迟得不到解决和回复,当文档化做得好时,在出现问题的时候,打开文档可以一目了然,责任没法推卸。卡耐基曾说过,通常人是不会或者没有人愿意承认自己是错的,即使承认,也并不是100%地这么认为。我们在测试过程中就要避免这样的问题发生。②是有些问题在不同部门和不同的阶段频繁出现。简单而又琐碎的重复问题会让测试人员疲于奔命,效率低下。这时,一个文档化的FAQ问题集对项目测试就显得意义重大。
(3)便于团队成员之间的交流与合作。描述清楚、完备的测试文档便于项目组领导了解测试过程中的各项指标,为开发团队与测试团队之间架起的一座桥梁。文档是一种无声的语言,它记录了项目测试过程中有关测试配置、测试运行、测试结果等方面的信息,有利于项目管理人员、测试人员之间的交流和合作。
另一方面,测试文档的重要性还表现在对于项目“传承”的重要性,有了好的文档,那么当项目有新成员进入,测试文档就可以承担起指导新成员快速工作的作用,而不是单单询问原来的成员,节省了大家的时间。还有,当测试完成后,测试文档就将成为项目测试的文字载体,在后续人员培训方面提供详尽的素材。
(4)测试文档是测试人员经验提升的最好途径
善于学习,对于任何职业而言都是前进所必需的动力。对于软件测试来说,这种要求就更加高了,项目文档对于项目测试人员的素质提升大有裨益的。目前不少企业在进行项目测试时都会出现一个通病:由于人员素质有限,许多的决定只凭口头叙述,缺少足够的文字记录,以至出现问题时往往显得无所适从。从本质上讲,测试文档强调的是一种规范化管理,要求项目人员利用书面语言进行沟通表达,以指引项目运作。
测试人员不应该只为写测试文档而写文档,良好的文档是思想交流、沟通的基础,也是整理和理清思路的基础。不懂得从经验中学习和成长,永远不会有质的提高。只有当每次完成一个测试任务,都有目的的总结,找到自己的不足,一个合格的测试人员才可能成长起来。
(5)有利于项目测试的监控作用。测试本身是一项风险很高的工程,需要进行严谨的项目监控。阶段性的检查、评审和文档化成果是重要的方法之一,详尽而规范的测试文档成果不仅有利于监控项目进度,也利于项目验收。
测试文档常见问题
测试文档是否专业已成为测试管理和测试人员的重要评价指标之一。但是,普遍还会存在这些缺点:
(1)文档编写不够规范。主要是测试文档内容描写不够完善,在编写各种测试文档过程中,虽然大家都按事先规定的模式进行了编写,但编写的内容经常不够完善。要么文档极其简单,相当于没有文档。要么文档流于形式,没有什么实际的价值,甚至于有的测试文档与测试过程完全不符。
(2)测试文档没有统一入库管理。随着软件开发的不断深入、升级,新Bug不断产生,各种测试文档越来越多,没有建立一个测试文档资料库。在测试过程中没有对每一个阶段的文档进行整理,分层次管理,各类文档资料缺少一致性。不同时期的各种测试文档零散存在,造成查询测试文档时非常困难。在众多的测试文档中,其中一些文档必定是关键文档,起到非常重要的作用,对于这类测试文档没有设定优先级别特别说明。
(3)只重视测试文档的形式,实用性不强。在实际的测试过程中,编制人员没有时间去关心它们的用途,也不知道哪些部门使用,更多的是在规定的时间内完成任务,以免影响考核成绩。这样一来一些不实用的、重复的文档不但阻碍着测试的执行效率,而且影响项目的整体进度。因此,文档的制定要实用,以减少繁文缛节的文字工作。
如何管理测试文档
如前文所述,测试文档对于项目管理的作用是不容置疑的,但测试文档的管理却又通常是项目管理中最容易忽略的。我认为在测试文档管理中应该要注意以下几个方面:
(1)建立测试文档管理制度。重点应体现为两点:①要对测试文档的名称、标识、类型、责任人、内容等基本内容做出事先安排,给出测试文档总览表。②是制定对各种测试文档的管理程序,如批准、发布、修订、标识、贮存、传递、查阅等,为测试文档配置管理铺设一个良好的基础平台。
(2)文档版本管理,而且非常重要。版本混乱是测试文档的一个致命伤,测试文档的有效管理必须实行版本控制。
(3)创建测试文档库的访问规则,这是文档管理的重要环节。访问规则确定谁可以访问、阅读、升级及在文档库中添加文档。同时,文档库还应定期进行检查,以便对哪些文件进行存档或对哪些旧文件进行清理,以确保文档管理符合项目测试组的需求。
(4)使用工具管理文档。对于一个大型的项目测试,整个测试周期中都会有大量的文档。测试文档内容也是在不断变化的,有的是连续的,承前启后的,有的是新增加的,也有的是废除的。这可能需要一个统一的文档管理工具,分门别类统一存放管理各种测试文档。
总之,测试文档在软件测试过程中起到关键的作用,从某种意义上来说,测试文档是项目测试规范的体现和指南,按照规范要求编制一整套测试文档的过程,就是完成一个测试项目的过程。
|