【聚杰网测试管理】软件测试过程将如何完善?
1.引言
随着软件技术的迅猛发展,软件的质量愈来愈受到广泛的重视。而测试又是保证软件质量的重要手段。根据IEEE/ANSI标准,软件测试的定义是:"使用为发现错误所选择的输入和状态的组合而执行代码的过程"。这就非常明确地提出了软件测试是以发现错误,检验是否满足需求为目标。软件测试在软件生命周期中占有非常突出的重要地位,是保证软件质量的重要手段。根据Boehm的统计,软件开发总成本中,用在测试上的开销要占40%到50%。软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误,以提高软件的质量。现代的软件测试不仅仅是在软件开发完成以后来做测试工作,而是将测试渗入到软件开发的各个阶段,而且提高自动化软件测试手段,来提高测试效率。
有些项目的主持人,认为以尽快的速度把测试之前的所有开发阶段完成(实际并没有完成),早日开始测试,以图达到快速和高质量(因为似乎有更长的时间可用于测试)。实际的效果将会是俗语所说的"欲速则不达"。从常识就可以知道,花开发时间去继续扩大发展前面阶段引入的错误,得出的只能是更大量的需要耗时修正的错误。 因此,正确分析与利用测试的结果,我们可以非常有效地进行软件过程改进。
2.完善测试过程策略
2.1. 双效合一,不断进步
公司的管理层和质量控制小组通常进行软件过程的改善,并编写出了一系列的企业的标准与规范,经过一系列的评审、培训,然后让开发人员去执行。但是在执行过程中常常碰到阻力,多数是来自于开发人员,除了紧张的开发工作,他们往往会抱怨又多出许多其它工作,比如按照一定的规范的文档的撰写;制定的企业开发规范不符合企业的实际情况,标准太高,无法达到。这一种做法,费时费力不讨好,大家的意见都比较大,规范定的比较完美,而且在评审时还要大家表面上都要认可,制定规范的人花费了很大的精力,对规范的评审浪费了大家的很多的时间,执行时还难以贯彻下去。这种方式肯定收效甚微。这是一种效率比较低的做法。
通常,还会有另外一种做法:降低要求,暂时抛弃各种标准与规范,采用一种简单易行的策略,即由质量控制小组找开发人员、项目经理让他们自我发现问题:你有什么缺点?你将如何改进?在开发人员、项目管理人员讲自己的改进措施后,让他们确保能做到。在这种办法中,不需要管理人员花费太多的精力进行标准的制定,改进的推动,这些工作都是由开发人员自己去做的,管理人员仅仅是起到了监督的作用,只要开发人员自己说到做到就可以了。
但是,我们做了一个尝试,如果仅仅从开发人员的角度出发制定标准,每个人的习惯不同,开发人员往往倾向于按照平日自己的编程习惯制定符合自己需要的规范,这样做的随意性比较大,难以形成统一的、正规的文档体系结构。而且,开发人员往往利用这一点,给自己留有充分的弹性。往往自己制定的规范都有自己不同的解决办法,这样会造成编程风格的不统一。既然是规范,总得有一定的强制性,而如果单单从下而上,放权给开发人员,实施的过程中可能会发生更大的问题。
综上所述,我们就采取了一个折中的办法,即,根据开发人员的要求,先拟订一份开发规范,然后提交给开发人员或者项目管理人员评审。允许他们提出自己的意见,如果意见合理,可以对规范实施修改。举例来说,假设公司原来的文档体系中本身有一套编程规范,但是在实际开发的时候,其中的某些规则不是很实用,所以,公司就根据每个项目组所使用的开发工具和语言的不同,制定不同的编程标准,而这些编程标准的修改意见,基本上来自于开发人员,但是是经过公司的管理人员和质量控制部审核过的。
这种做法的好处就是可以主动提高公司全体员工的质量意识。对于高层管理人员而言,所有的规范都是经过他们审核批准的,他们起到监督作用;
对于开发人员而言,很多规则是他们提出的,他们会自觉遵守。这样双管齐下,双效合一,不仅会大大提高软件的质量,而且不用将发现错误的责任全部推给测试人员,而是提前预防错误、减少潜在危险的发生、减轻测试人员负担、培养开发人员良好的编程习惯。









