测试人员一直背负着效率低下的恶名。在大多数公司中,他们是中最不受重视的一个角色,在出现软件危机时,也是最先要受到“株连”的。我的一位担任测试经理的朋友,对此是深有感触。下面是他的牢骚:
给测试留的时间不充分,又期望过高;
屡犯错误的开发人员被调到测试部门“改造”,导致测试人员的自尊受到挫折;
测试的计划性不强,谁也说不清一个回归测试到底测试了多少测试用例;
测试用例完全不成体系,即使有某个可以参照,又往往是落后和过时的;
测试部门不能有效的开发和维护测试工具,也没有对测试用例文档版本控制(Word格式的测试用例,实在是难以版本控制、难以多人维护)。
您是否也遇到了同样的问题呢?
我们来帮助他寻找一下问题的症结所在吧。是什么原因导致测试的工作没有得到足够的重视呢?是因为看不到测试工作的价值。这又是为什么呢?测试工作没有秩序的,难以及时发现问题,当软件产品抱着极大的期望值上市的时候,漏洞百出,人们当然习惯性的反推,为什么没有能够测试出来?进一步会问,到底测试了哪些功能?如果这时测试部门回答不出,那么可能就要有人要承担责任了。这当然不一定是测试的错。但是测试部门能够拿出一整套测试用例文档,告诉项目经理,这些都是我们测试通过的。那么问题的焦点就回到了分析测试用例上了。是不是有发现问题的测试用例?如果有,是哪个测试人员的疏忽导致问题没有找到?如果是测试用例没有覆盖到,那么就应该借这个代价昂贵的机进一步补充和完善测试用例,确保不会再出现类似问题。
如果以上的分析大致正确的话,测试用例文档的积累,是重树测试部门形象的良机。DocBook正好适合这种需要持续积累的技术文档的撰写,再配合版本控制软件,建立一套可行的测试用例撰写和维护规范应该不难。当我把DocBook介绍给我的这位担任测试经理的朋友之后,他真的用 DocBook 改进了他的工作,得到领导的赏识。这不能不说是一个奇迹。
下面是改进的测试部门的工作流程:
一个回归测试周期的整个过程,都要以文档化的测试用例为基础。任何工作都体现在文档中,工作就做到了心中有数;
测试用例要有统一的编号,一次回归测试测试就是有这一系列测试用例组成的;
测试用例要由全体测试人员共同维护,随时随地更新,而这还需要版本控制系统的介入;
规范的测试用例格式,内容要涵盖测试方法、输入和输出,还要包括测试中用到的模拟数据、自动化脚本等等;
采用DocBook,撰写可以持续维护的测试用例文档,享受版本控制。
如图9-1,是一个DocBook撰写测试用例的示例,后面是其代码。
测试用例的 DocBook 源代码
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2b1//EN" [
<!ENTITY compname "<ulink url='mailto:yourname@email.address'>某某公司</ulink>">
]>
<article>
<articleinfo>
<title>B2B网站测试用例汇总</title>
<author><firstname>测试部</firstname></author>
<revhistory>
<revision>
<revnumber>1.1</revnumber>
<date>2002/12/11</date>
<authorinitials>David</authorinitials>
<revremark>添加测试用例2</revremark>
</revision>
<revision>
<revnumber>1.0</revnumber>
<date>2002/12/10</date>
<authorinitials>Johnson</authorinitials>
<revremark>添加测试用例1</revremark>
</revision>
</revhistory>
<abstract>
<para>
本文档作为公司的测试部门的测试用例汇总,是测试部门测试工作中的参考。有任何补充和更改的需要,请用 CVS 从服务器中Checkout本文档的源代码,修改完毕后,提交 CVS 服务器。测试部门的内部网站会在每小时重新编译改动过的文档。
</para>
<para>
&compname;, $Revision$, $Date$
</para>
</abstract>
</articleinfo>
<sect1><title>TESTB2B-0001</title>
<informaltable frame='all'>
<tgroup cols='8' align='left' colsep='1' rowsep='1'>
<colspec colname='c1'/>
<colspec colname='c2'/>
<colspec colname='c3'/>
<colspec colname='c4'/>
<colspec colname='c5'/>
<colspec colname='c6'/>
<colspec colname='c7'/>
<colspec colname='c8'/>
<tbody>
<row>
<entry>项目编号</entry>
<entry>B2B</entry>
<entry>项目名称</entry>
<entry>电子商务网站测试</entry>
<entry>测试日期</entry>
<entry></entry>
<entry>测试人员</entry>
<entry></entry>
</row>
<row>
<entry>测试用例编号</entry>
<entry>TESTB2B-0001</entry>
<entry>测试用例名称</entry>
<entry>用户登录测试</entry>
<entry>作者</entry>
<entry>Johnson</entry>
</row>
<row>
<entry>测试用例描述(方法和目的)</entry>
<entry namest="c2" nameend="c8">
<para>测试登录界面对不同浏览器的兼容性;</para>
<para>测试异常输入对CGI的影响;</para>
</entry>
</row>
<row>
<entry>测试环境设置</entry>
<entry namest="c2" nameend="c8">
<para>测试平台:Windows 98 + IE4.0;Windows 98 + IE5.0;Windows 98 + IE6.0;Windows 2000 + IE5.0;Linux + Mozilla</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable >
<table frame='topbot'><title>测试步骤</title>
<tgroup cols='4' align='left' colsep='1' rowsep='1'>
<colspec colwidth='1*'/>
<colspec colwidth='20*'/>
<colspec colwidth='10*'/>
<colspec colwidth='5*'/>
<thead>
<row>
<entry>序号</entry><entry>操作</entry><entry>预期结果</entry><entry>实际结果</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>
<para>Windows 98 + IE4.0登录开发服务器:"http://10.0.0.99/servlet/login";</para>
<para>输入用户名密码:test/test555</para>
</entry>
<entry>
<para>登录成功,进入用户自定义界面。</para>
</entry>
<entry>
</entry>
</row>
<row>
<entry>2</entry>
<entry>
<para>Windows 98 + IE5.0登录开发服务器:"http://10.0.0.99/servlet/login";</para>
<para>输入用户名密码:test/test555</para>
</entry>
<entry>
<para>登录成功,进入用户自定义界面。</para>
</entry>
<entry>
</entry>
</row>
<row>
<entry>...</entry>
<entry>
<para>...</para>
<para>...</para>
</entry>
<entry>
<para>...</para>
</entry>
<entry>
</entry>
</row>
</table>
<note>
<para>
其他注意事项:
</para>
</note>
</sect1>
<sect1><title>TESTB2B-0002</title>
<para>
...
</para>
</sect1>
</article>
Copyright © 2006 WorldHello 开放文档之源 计划 |