评测,顾名思义,是评价和测试。因此,软件评测师是通过编写测试方案并按照测试方案和流程对软件产品进行功能和性能测试,检查产品是否有缺陷,性能是否稳定,并给出相应的评价的那些专业技术人员。作为软件开发的重要环节,软件测试越来越受到人们的重视。随着软件开发规模的增大、复杂程度的增加,以寻找软件中的错误为目的测试工作就显得更加困难。为了尽可能多地找出程序中的错误,生产出高质量的软件产品,需要大量的软件评测人员,因此软件评测工程师就应运而生了。
对软件进行评价的基础是测试,测试的过程就是找出与软件功能和性能不一致的地方,并进行分析。软件评测师的主要工作就是软件测试。
软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。软件是由人来完成的,在目前的技术上不能避免错误,有错是软件的属性,是很难改变的。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。因此,必须面对现实,避免软件中错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。
实践经验证明,软件测试是软件开发过程中的一个重要步骤,或者说测试应该贯穿在软件开发过程的每一个阶段。软件测试所起到的作用就是:能够确保在软件开发的过程中,随时发现问题,方便开发人员及时修改。
软件测试的最终目的是提交用户一个高可用性产品,为了尽可能多地找出错误,测试的重点应该是软件比较复杂的部分或是以前出错比较多的位置。为了给最终用户提供具有一定可信度的质量评价,测试的重点就应该直接针对在实际应用中会经常用到的业务规则。
Grenford J. Myers在《The Art of Software Testing》一书对软件测试有如下的观点:
① 软件测试是为了发现错误而执行程序的过程;
② 测试是为了证明程序有错,而不是证明程序无错误;
③ 一个好的测试用例是在于它能发现至今未发现的错误;
④ 一个成功的测试是发现了至今未发现的错误的测试。
因此,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。另外,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
对于软件测试人员来说,其目标和任务就是:
1. 软件测试员的基本目标是发现软件缺陷
软件测试员的基本目标是发现软件缺陷,这是做好测试的首要条件。
2. 软件测试员追求的是尽可能早的找出软件缺陷
因为软件的修复费用,随着软件生命周期的推移,将数十倍的增长,所以软件测试员应尽可能早的找出软件缺陷。对大型的软件,在软件开发的同时,就应该有紧随其后的测试,如果等到产品已经开发完毕才开始测试,非常有可能引起大量耗时费力的返工。怎样才能有效的用这些方法尽早的发现软件缺陷,需要大家在工作实践中不断的摸索、总结,进而不断的提高自己的测试能力。
3. 软件测试员必需确保找出的软件缺陷得以关闭
软件测试人员必需确保找出的软件缺陷得以关闭。关闭的含义不是要软件缺陷在任何时候都必须得到修复。软件测试员需要对自己找出的软件缺陷保持一种平常心,并不是辛苦找出的每个软件缺陷都是必要修复的。可能是由于没有足够的时间、不算真正的软件缺陷、修复的风险太大等原因,产品开发小组可以决定对一些软件缺陷不作修复。
虽然软件测试员需要对自己找出的软件缺陷保持一种平常心,但同时又必须坚持有始有终的原则,跟踪每一个软件缺陷的处理结果,确保软件缺陷得以关闭。关闭软件缺陷的前提可以是缺陷得以修复或决定不作修复。而缺陷是否需要修复的最终决定权在软件的最终负责人,检查缺陷得以关闭的责任在测试人员。但值得指出的是,虽然测试工程师找出了错误,但决定是否修改的权限并不是在测试工程师手上的,最终是由项目经理来决定的。
4. 软件测试员依据事实对软件做出评价
软件测试人员对软件的测试结束后,通过对测试结果进行分析,然后实事求是地对软件产品的功能和性能做出恰当的评价。
本文摘自张友生主编的《软件评测师考试考点分析与真题详解》第13章。