文章依据《我是怎样做测试管理的?》,《测试管理的一点心得体会》,对测试管理过程做了简单的描述和总结。
公司现状:创业公司,误打误撞进了软件这一行当,但软件这行是否可以持续走,是否要持续走,BOSS还不确定,如果卖的不好就不做软件了,改做别的。现在是生存阶段,有项目就接上。上面有BOSS关系搞定,下面有老实的干活人努力加班,项目也就过得去。
软件测试:公司发动了所有实施顾问来测试,只有他们通过,才能去实施。实施顾问大多来自刚刚毕业的应届毕业生,对企业管理,对软件,对行业领域,都一无所知。对测试更是一窍不通。测试并没有分工,每个人都测试软件。也没有什么测试方法,也没有什么测试计划,也不知道该测什么。反正也是对软件不了解,就当是深入学习软件。
遇到问题:开始并没有测试报告,大家发现问题,就用电话或QQ或邮件,把问题发给开发人员。谁认识那个开发人员,就发给那个开发人员,如果不认识一个开发人员,就发给老板了。报告中尽是不好用,不能用的词汇。但什么功能不好用,是怎么操作导致不好用,不好用的具体表现是什么,都没有。老板急眼了,怎么这么多问题。
原因分析:
解决措施:
公司现状:第一批客户的实施终于启动了,实施顾问奔向了全国。随着项目的实施,公司渐渐拢回来不少钱,但是面临了一个瓶颈,这个大项目快做完了,以后有什么活能养活现在这么多人呢。所以,最好的做法就是把现在这个项目产生的软件改改,变成一个产品,卖给其他的客户,卖的越多越好。但是,其他客户我们有关系的并不多,所以要想销售给其他客户,必须拿产品说话。于是,研发部陆续加入了专职的测试人员、文案人员、美工人员,旨在提高产品的质量和包装,希望能卖个好价格。所以说,专职的测试人员是这么来的。
软件测试:很多软件公司没有测试人员,其原因就是老板搞定关系,程序员老实干活,项目质量虽然不行,但也能将就把钱结了。既然能赚钱,干嘛要测试人员呢。除非由于质量问题,签不到单子。除非由于质量问题,客户不验收不给尾款。除非公司所有人都测试还是无法达到客户满意的质量。只有这样,才会招聘专职的专业的测试人员。测试人员一来了,开始工作。但怎么开展测试呢?文档在哪里?
遇到问题:
原因分析:
解决措施:
遇到问题:在过去,服务部小姑娘老把电话转给开发人员,本来就几条枪,被客户电话吵的无法安心开发。而且客户发现开发人员接听电话处理问题更有效,所以很多客户都是直接给开发人员打电话,服务部成了虚架子,而开发人员的开发进度被拖累,叫苦不迭。
解决措施:为了使测试人员更快速的了解客户应用操作方法,更细节的了解特个性的功能,我让测试人员也兼任研发部的技术支持。现在有了测试人员兼任技术支持,这下解放了开发人员。开发的质量和速度提高许多。
引发问题:测试人员并没有做技术支持的经验,过了段时间就来和我诉苦,说现在服务部小姑娘啥也不干,都直接把电话转到他这里来,所以他现在已经无法测试了,成了专职的服务支持人员。如果再这样下去,软件质量无法保证,以后的技术支持压力更重,开发部就会成为开发+服务部门。
解决措施(针对测试):
解决措施(针对服务部门):你接待了多少客户问题,解决时间多长,多少个问题转给开发部技术支持了,这些问题的难度级别多高。根据这些指标来衡量服务部小姑娘们的技术解决问题能力。能力差的就辞退。
遇到问题:于有时候客户报告了某个BUG,程序员一看好改就直接改掉了,改完后就直接联系客户更新了,但是并没有更改软件版本号,也没有做新的打包。于是出现了同一个版本号软件功能表现却不同。而且,由于项目组多了,每个项目组组长都各有各的原因,有时候自己就打了一个包给了客户,随便定个版本号,起的都稀奇古怪,有的叫beta版,有的叫6.0.20050203。这种情形导致了测试人员做测试的时候,开发人员说改了,测试人员说没改。开发人员说已经没有问题了,测试人员说我这里还能重复出来。于是两个人一起查,耗费了两天时间,才查出来测试人员手里的和开发人员手里的不一致。
解决措施:
我们的测试已经能做边界测试、版本兼容性测试、系统兼容性测试、压力测试、安全测试、集成测试、破坏性测试。也已经在项目中应用全程测试,测试人员主要参与需求验证、设计验证、代码验证、文档验证、打包验证。
但是,我们现在还没有实现单元测试,开发人员就这些人,项目却多。而且测试人员没有编程能力。我们也没有做更多的回归测试,毕竟测试人员数量配备太少,而项目并行太多。
看机会吧。老板越从软件上赚钱,他才会越舍得投入软件。成本永远嫌多,利润永远嫌少。
如果你是一名开发主管,你的老板还没有从你负责的软件中赚钱,而且是很快乐的很大规模的赚钱,而不是他靠他的人际关系和送礼吃饭支撑着,我想,他不会给你一毛钱的。你抱怨也没有用,因为你没有价值,所以投入也是没有意义。
先去证明你的价值吧。
1、组间合作
与开发、实施等组间良好的沟通与配合是非常重要的。这需要大家对目标认识的一致性及相互的理解与包容。实施人员直接面对的是用户,他们提出的任务不多,但都是比较重要的,需要直接交付于用户的。往往也是比较紧急的,所以沟通时必须确认好交付时间,以最高优先级来处理并以高质量来完成。
测试负责人不仅仅是关注测试那部分的工作,也需要关注整个项目的动态。实时了解项目的进度,了解每个阶段用户使用相对较多的模块,以了解本阶段的主要工作,把握本工作的重点,也能提前作好准备工作。同时发现项目在哪方面存在问题时,也可以用巧妙的方式来提醒,让他知道你是好意而不是对他工作的否定。如果经常能帮助到他们,我想对方也会欣然接受。
2、测试负责人的工作职责
沟通协调工作也必须做好,当多个任务同时提交时,一定要问清楚紧急程度,系统是否要急于发布,文档是否急于交付。不急于发布的也可以让先发布好环境,因为往往发布系统都需要一定的时间,在其它系统没发布好前可以先进行测试。每项任务都需要了解范围,预计需要投入的工作及计划安排的人员。同时要做好突发性任务的准备。
测试负责人要有计划性和预见性,根据之前项目的经验判断出在某个阶段会有哪些工作要做,在任务不是很繁忙的时候要提前去做,这个是非常重要的。像文档能准备的尽早准备,交付前稍做检查更新就好了。在上线前一般系统会非常忙,根本没时间去修改文档等其它工作。
重要的任务需要亲自把关,或安排信得过的人去检查。对于客户交付的文档对于内容和格式都务必要正确。像用户手册等是用户需要使用的,所以内容的正确性与现有系统的一致性就比较重要。对于测试用例、缺陷记录、出厂测试报告等文档的内容用户不是太关心的,格式则比内容更重要。对于发布前的那次测试一定要进行整体测试。不要相信因开发说哪些地方没改不会存在问题的说法,对于修改的模块或功能,与之相关的功能进行重点测试,未涉及到修改的模块也要把每个功能简单测试一下。开发修改缺陷时经常会把关联的地方没关注到,还有经常作了一些小的改动没有提交测试,时间久了就忘了哪些地方作了修改了。
把合适的人放在合适的位置。团队的每一位成员特长不可能都会一样,每个方面不可能同样的优秀。有些可能是技术方面强一些,有些在业务方面要强一些,有的可能在管理方面要强一些;有的性格开朗善于沟通,有的不善言辞但敏于思考,能耐得住寂寞。前者可以多做些沟通及工作协调的事,后者可以多安排些技术研究或检查文档等需要细心一点的工作。当然也要让组员明白,不是自己想要做什么就能做什么,一切必须以当前的任务情况来做安排,在条件许可的情况下会优先考虑。自己可以利用业余的时间去学习,充实自己,一旦机会来临才能去胜任。
要善于观察组内成员的工作状态,及时发现哪些人状态不好,及时沟通及协助解决。
要定期向上级领导汇报工作情况,让领导了解组内的工作情况,同时当需要申请资源时也会容易些。同时也需要让组员了解一下自己的工作情况,他们可能只了解你参与测试的这部分工作,其它工作并不了解。不要让组员认为什么事都让下面人做,自己却没做多少事。
3、组内管理
一个好的团队必须有良好的团队氛围,必须要有共同的目标,这点很重要。如果经常意见不一致在喋喋不休地争论,这样什么事情都不可能做好。当然这并不代表大家不能发表自己的意见。讨论问题时大家都是平等的,要尽情开放的地讨论,把大家的建议都发表出来,最后采取的方案也要取得大多数人的认同,但一旦确定一个执行方案后大家都要按照来执行。
要合理安排资源,以免部分人员工作强度很高,部分人员又会有空闲时间。这样也会引起忙的人心里不平衡。这个是有点难度,但需要尽可能地安排好。每个项目的测试人员要多考虑一两个备份人员,具体人数视项目情况。每个阶段每个项目的工作量都不一样,安排时根据每个项目进度情况来合理备配人员,尽量做到大家的工作量不会出现太大的差异。当任务少时,可以多安排一些研究性的工作为一个阶段的工作做准备,多安排业务交流,文档走查的工作等,也可以对前段时间的工作总结。像年初年末,工作状态可能也不会很好,此时就可以做一下总结,计划一下来年的工作。
每个小组的测试项目越来越多,可以采用分级管理模式,每个项目设立一位负责人,既提高了大家的责任感,提高了自己的管理能力。同时也让大家从工作中学会了换位思考,体会到做组员和负责人的立场与想法,也分担了组长的工作。