|
嘿嘿,偶画了一张图,想和大家探讨一下,A,B,C,D四个测试员要使自己的工作更加有效,需要向哪方面努力?
另外一方面是如何实现ABCD四个角色的相互融合!谢谢
看图讲解一下:
可以看出,软件测试贯穿整个软件生产过程,包括需求阶段,设计阶段,实现阶段与最后检测阶段,远远比单纯的开发人员做的事要多(呵呵,前提是看你属于ABCD哪几个点上);
ABCD每个点都很重要:
1) ---测试员A:在公司业务员有新的需求信号反应上来以后,要和产品专家前往客户那里,一起聆听分析客户的需求并要记录用户的需求功能;回来后,与产品专家分析形成的客户需求进行比较,也就是进行”需求测试“,有不准确的需求,及时交流更正,这很重要!!因为需求分析是以后各个阶段执行的基础,需求错了,以后测试做得再好,也只能保证错误的功能执行是正确的,但早已偏离了顾客的需求;另外想想产品专家也是人,人孰能无过?!;再次测试较早地获取了顾客需求,就有充分的时间去准备测试;
我想对于测试员A:不仅要准确获取顾客当前的需求,还要能意识到顾客潜在的需求以及以后可能要进行扩展的功能;A应该了解顾客需求产品的行业信息,特别是了解相似产品,要善于交流与心理分析等
2)----测试员B:当系统分析人员把整个产品或产品某一构件设计出来时,测试B的职责是对这些设计方案进行测试与评审,我想主要包括:一是:对产品设计结构的逻辑性、合理性进行检测;二是对产品设计的运行效率,扩展性,安全性等进行评审;比如对数据库的设计,读存数据是否高效,是否利于更改与扩展等,又如针对程序本身来说,选择任何类
型的数据库一般都是可以的,但测试员要从用户的角度来进一步确定选择哪一类型的数据库,小客户小企业你设计成只支持大型数据库,就会给顾客带来额外的负担等等;测试B的职责地位同样很重要,如果产品到用户那里普遍反映这个功能不好用,那个功能又咋的等等,那个时候更改软件起来就很麻烦了,但产品真的无法满足用户的需求。
那么对测试B的素质要求:不仅要有系统全盘设计架构的全面知识,还要有系统优化方面的经验,更重要的是要有“买房人去看新房图纸”的那种体验;
3)----测试人员C:对程序的具体实现进行测试,主要方式一是:开发测试驱动,使开发人员延着测试驱动的准则去编写代码;二是:对源代码进行测试,通过覆盖每个语句及循环路径等对代码进行走查,首先保证代码运行正确,三是从全局角度,对执行效率,安全等方面对代码进行建议性修改;测试C很重要,因为他能在前期发现代码中的缺陷,并进行及时修改,可以减轻后期发现缺陷更改的困难性,也能很好地预防错误的发生,还能提高优化产品;
对于测试C,不仅要精通开发产品的语言,理解测试驱动开发的精髓,还要有全面的思维与调试技巧;
4)----测试人员D:对成型的产品进行系统测试,一定程度上是产品质量的最后一道关卡(因为有时公司还会再请一些专门的评测机构再评测),地位显而易见!!,该阶段D主要职责一是进行功能测试,二是进行性能测试,同时如果针对自己的产品可以开发和应用一些测试工具来辅助测试还要进行脚本的编写与维护;一般是手工测试与自动化测试结合来完成测试,提交缺陷时,一般只是描述重现缺陷的规律、步骤和环境等,如果测试员D还想描述缺陷产生的原因,首先去看看需求有没有错,需求没错再看看是不是设计错了,设计没错,那肯定就是编码出错了,最后审查代码找到原因,不过能够执行这个过程需要测试员D同时还要具备ABC的知识等等。
总之:测试贯穿整个产品生产过程,对保证产品质量相当重要,当然对于不同的公司情况可能采取的方式也不同,因为取决于生产产品的驱动是什么,是客户需求?是市场机遇与趋势?还是尝试?等等;另外测试流程的规范也不是照抄拿来主义就能行的通的,就像企业文化形成一样,不过一但形成将受易无穷。 想想自己与心目中的测试员还相差甚远;
不过一句话说的好啊:软件测试的科学,不畏劳苦的人们,有希望达到光辉的项点。
[ 本帖最后由 kai_top 于 2005-11-24 15:35 编辑 ] |
|