我这里提及的应用软件系统是指完成某一种特定应用功能的软件系统,它的特点是按照客户给定的具体需求,为客户量身定做一个软件系统,如:银行储蓄系统,公积金管理系统,商场或超市收银系统等,系统的应用限制在客户给定的范围内。
应用软件系统的需求可以分为:业务功能需求(前台需求),批处理需求(后台需求),接口需求和响应需求四类,这些需求90%以上由客户给定,不到10%由项目组提出建议,由客户确认。
2. 测试要领
我这里说的要领不是具体的测试方法,而是需要中、高层领导和项目经理理解的,较宏观的测试方略。
2.1. 要领一:给予重视
多年来的实践证明,应用软件系统测试做不好的主要原因是:中、高层领导和项目经理对应用软件系统测试的不重视,表现在做项目计划时对系统的黒盒测试(功能测试)没有留有足够的时间,没有指定测试责任人(在测试阶段专职负责测试)。
是否对软件测试重视,关键看是否为黒盒测试留有足够的时间,多长为足够的时间?开发周期的三分之一以上,如:计划项目开发周期为三个月,那么计划项目的测试时间应不少于一个月。注意,这里说的是开发周期的三分之一以上,而不是开发工作量的三分之一以上。测试跟开发(特别是编码)不同,不能采用人多-短期完成任务,应该采用小组(3到5人),有计划、步骤地,有充足时间地去完成测试工作。需要指出的是:测试工作可以与开发工作“并行”,方法是把整个系统分成逻辑上相对独立的子系统,如:系统S=子系统A+子系统B+子系统C,子系统A开发完成后,测试与开发开始并行,测试组测试子系统A的时候,开发组开发子系统 B,依此类推。当然,如果时间许可,整个系统开发完成后在进入测试,项目的管理更容易。
是否对软件测试重视,关键看是否为黒盒测试指派了有经验的测试责任人,测试组是否与开发组相对独立。测试责任人(测试组组长)最好是由有测试管理经验,或有责任心、懂业务的人担当。
是否对软件测试重视,关键看是否为独立的测试组配置了至少是逻辑上独立的测试环境。测试环境必须与开发环境在逻辑上独立开来,最好在物理上也独立开来,否则系统版本无法控制,测试工作也无法有效进行。
2.2. 要领二:客户参与
应用软件系统将来是由客户使用的,需求是客户提出来的,或经客户认可的,所以应用系统的功能测试必须有客户的参与,我的经验证明,客户参与功能测试是一个双赢的方案,对加速开发进程,提高产品质量,使客户认可系统、掌握系统功能大有好处。
为保证客户愿意,且有准备地参与系统功能测试,需要在与客户签订开发合同之前给予引导,最好得到客户高层领导的承诺,或以合同的形式确定客户参与系统功能测试任务。
上一节提到,测试责任人是测试组的组长,测试组长应该是承接项目公司的成员,参加测试的客户统一受测试责任人的管理,特别是参加测试的客户的测试任务是由测试责任人分配的,否则测试工作将出现本该避免的混乱。