问答题
试题三(25分)
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
小赵被任命为某软件开发项目的专职质量管理人员,他此前只有过三个月的软件开发经历。项目经理李工要求他按照项目进度计划中的工作安排,按时做好检查,发现问题随时汇报。
项目启动后,由于进度紧张,项目组经常加班。小赵在质量检查中,总会遇到这样那样的问题。例如,计划时间点己到,工作却没有按时完成,因此无法开展检查;相关人员工作太忙,无法配合检查等等。不久,项目组成员对小赵的工作颇有怨言,说他不懂技术,还得浪费时问跟他解释。有的还说进度已经这么紧张了,他不帮忙却来添乱。小赵很无奈,将这些情况汇报给项目经理李工,李工也觉得比较棘手,要求小赵尽量在不打扰大家工作的情况下执行检查。
项目组在超负荷运转中完成了编码任务,虽然天天加班,但进度还是延误了近20%。此时已经不能按原计划开展测试工作,项目经理李工决定调整计划,不划分测试阶段,将所有模块一次集成后统一开始测试。软件模块集成后,头一轮测试刚开始就出现了致命错误,导致测试无法继续,李工只好让开发人员先修复软件,之后再提交测试。随后的测试过程更加混乱,由于模块由不同人员开发,需要不同的人来修改,常常是已经修复的bug,在修复其他的bug之后又再次出现,开发入员不停修改,项目交付时间临近,程序中还有大量bug没有修复。
问答题
[问题1](14分)
请结合本题案例分析该项目质量管理中出现的问题。
【正确答案】 (1)没有建立相应的质量保证体系。
(2)项目缺乏质量标准和质量规范。
(3)没有制定和实施质量管理计划。
(4)质量保证人员小赵经验不足。
(5)项目进度计划安排过于紧张,或进度计划制定不合理。
(6)项目在整体的沟通上存在问题,小赵得不到有力的支持。
(7)测试阶段的工作和方法安排不合理。
(8)项目中的配置管理和变更控制工作没有做好。
(每项2分,最多14分)
【答案解析】 本案例中的项目由于质量管理不当,导致项目不仅进度落后,而且存在大量bug。本案例在项目管理中存在以下一些问题。
(1)项目经理李工只是指定小赵为质量专员,负责按照项目进度进行检查,并没有在项目组内建立较完善的质量保证体系。对项目的质量保证活动主要有同行评审、PPQA检查和测试,而且这些活动都需要事先明确方法、步骤和目标。
(2)没有针对项目实施的各个过程及过程产品建立质量标准和质量规范,使得QA的检查缺乏说服力。
(3)没有制定和实施质量管理计划,导致被检查的人员不配合检查,还将进度拖延归咎于检查。
(4)质量保证人员小赵仅有三个月的软件开发经历,之前也没有做过质量保证工作,经验不足,造成与开发人员的矛盾。
(5)项目进度计划安排过于紧张,或进度计划制定不合理,导致开发人员忙于编写代码,疏于测试和对出现问题修改的管理。
(6)项目的开发人员单方面追求进度,而忽视质量,这与项目组在整体的沟通上存在问题,质量人员小赵得不到有力的支持有关。
(7)测试阶段的工作和方法安排不合理,不能在没有进行充分的单元测试的情况下就进行集成测试和系统测试。
(8)由于项目中的配置管理和变更控制工作没有做好,导致bug修复过程中的混乱现象。
问答题
[问题2](5分)
请结合本题案例简要阐述在项目中应如何进行质量管理。
【正确答案】 (1)应建立项目的质量管理体系,包括制定可行的过程规范和质量目标、质量标准。
(2)应科学制定和实施质量管理计划。
(3)应使用有项目经验和质量管理经验的质量保证人员。
(4)重视开发过程中的质量保证,避免将测试作为质量保证的唯一方法。
(5)应重视测试环节,安排必要的时间,采用合理的方法进行充分的测试。
(6)应加强项目实施过程中的配置管理工作。
(每项1分,最多5分)
【答案解析】 从本案例项目中失败的质量管理来看,管理好项目的质量可从以下一些方面做起。
(1)应建立项目的质量管理体系,制定可行的过程规范、产品的质量目标和质量标淮,通过做好同行评审、PPQA检查和测试来确保项目的质量。
(2)应根据项目的开发计划,科学地制定和实施质量管理计划。
(3)应让有项目经验和质量管理经验入做质量保证工作。
(4)产品的质量与过程有关,应重视对开发过程规范性和过程产品是否满足质量目标的检查,避免将测试作为质量保证的唯一方法。
(5)应重视测试环节,安排必要的时间,采用科学的测试方法进行充分的测试。
(6)应加强项目实施过程中的配置管理工作,避免将末测试的、待修复的和已修复的版本混在一起。
问答题
[问题3](6分)
对于本题案例中的软件项目,请指出其测试过程至少应分为哪几个阶段。
【正确答案】 (1)单元测试。
(2)集成测试。
(3)系统测试。
(每项2分,共6分)
【答案解析】 本案例是一个软件项目的开发,对软件进行测试的工作可分为单元测试、集成测试、系统测试和验收测试等多个阶段,每个阶段都有各自特定的测试任务。
单元测试是指对软件中最小的可测试单元进行检查和验证。基本单元一般来说是一个函数、一个过程或一个类。通常情况下,测试人员采用白盒子测试的方法进行单元测试。
集成测试是指在单元测试的基础上,对通过测试的单元模块组装成系统或子系统进行测试。由于测试的对象是经过单元测试的代码,所以集成测试并不关注各个模块的内容细节,而是关注模块之间的接口是否运行正常。
系统测试是指将整个软件系统看作一个整体进行测试,包括对功能和性能以及软件所运行的软硬件环境进行测试。
验收测试是指以用户测试为主的测试,分为α测试和β测试。α测试是指由用户、测试人员、开发人员等共同参与的内部测试;β测试指的是完全交给最终端用户的测试。
本案例未提及用户,所以至少应分为单元测试、集成测试和系统测试三个阶段。