测试人员一直背负着效率低下的恶名。在大多数公司中,他们是中最不受重视的一个角色,在出现软件危机时,也是最先要受到“株连”的。我的一位担任测试经理的朋友,对此是深有感触。下面是他的牢骚:
给测试留的时间不充分,又期望过高;
屡犯错误的开发人员被调到测试部门“改造”,导致测试人员的自尊受到挫折;
测试的计划性不强,谁也说不清一个回归测试到底测试了多少测试用例;
测试用例完全不成体系,即使有某个可以参照,又往往是落后和过时的;
测试部门不能有效的开发和维护测试工具,也没有对测试用例文档版本控制(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 开放文档之源 计划 |