我在大作业中主要负责数据库的搭建与后端代码的测试。在这篇课程报告中,我想结合课程内容,谈谈软件测试对项目管理的重要性,以及如何有效地管理软件测试。
软件测试对项目管理的重要性
项目管理包含整体管理、范围管理、质量管理、时间管理、成本管理、沟通管理、人力资源管理、风险管理、采购管理九大体系。
软件测试是通过相应的技术工具对产品做检查,从而保证质量。项目质量管理强调的是在跟产品研发有关的所有环节做流程规范约束和检查,提前预防问题的发生,从而确保质量。软件测试对于软件设计来说是很重要的一个环节,它涵盖了软件的全部细节,比如软件的实用性,操作性,稳定性,还有安全性,简便性等等。可以说没有经过详细的测试的软件绝对不会成为一个优质的软件。要保证软件质量,必须要保证有严格的软件测试过程。
软件测试部门在质量管理体系里,也可以作为一个承上启下的角色,比如测试统计分析之后,找到代码或系统设计中的漏洞,再交由 QA 推动实施和检查,形成一个质量管理体系里的小闭环。
除了软件质量管理,软件测试对其他项目管理体系也有影响。
我们知道,软件项目的日程表很难做到准确,大多数时候是预计而不是明确的指定,如果软件终期迫近或上线的关键时候到来,而软件测试没有在预计时间内完成,无疑会对软件时间管理造成不良影响;测试过程中,需求发生变化会使得测试人员的安排产生变化,从而影响人力资源管理;随着软件复杂程度的加深,软件体系越来越庞大,软件测试工具在某些测试中是不可或缺的,那么采购管理也要考虑在内。此外,一些其他因素,例如成本管理中低估了测试子项目的费用、测试人员与开发人员沟通效率低、脚本的重用性差等等都会对项目管理的其他方面产生影响。
因此,软件测试在项目质量管理乃至整个项目管理中都非常重要,有时候甚至能直接影响产品的成功与否。
如何有效地管理软件测试
首先,软件测试需要分层次、分阶段的进行。图形用户界面、分布式应用、数据通信、超大型关系型数据库以及庞大的系统规模等众多因素会导致软件及系统的复杂性呈指数增长;如果测试人员对软件测试的复杂性估计不足、不分阶段地进行测试工作,很有可能导致测试的不全面或不准确,这种情况下软件质量将无法得到保障,项目质量管理也不是有效的管理。
其二,使用看板等项目管理工具,提升软件测试工作的能见度,对不同的测试任务可以进行改进协调和控制,从而能够减少总计划时间和费用;同时,我认为这种方法也可以有效解决测试人员和开发人员之间沟通低效的问题,因为所有测试用例以及对应的功能都清晰地呈现出来,可以有效地避免测试过程中开发人员和测试人员口头沟通导致的误解、信息丢失等问题。这样,项目测试成员能够有比较明确的任务方向,从而更有效的进行项目质量控制。
其三,标准化测试流程。我认为,软件测试过程也可以参照项目管理的工作分解结构(WBS)的思想。工作分解结构,是进行范围规划时所使用的重要工具和技术之一,是面向可交付成果的对项目元素的分组,它组至并定义了整个项目范围,未列入工作分解结构的工作将排除在项目范围之外。按照这种思想,我们可以将测试过程详细地分为:静态测试、复杂性测试、白盒测试、黑盒测试、系统测试等等几大模块,具体地布置给测试人员。标准化测试流程既可以提高测试的效率,也可以减少人力资源的浪费。
在我们大作业中,我们也对测试工作进行了划分:
事实证明,这种方法行之有效。
其四,要有完备的测试文档。通常来说,每个测试过程都有五个基本的测试文档:指明测试范围、方法、资源,以及相应测试活动时间进度安排的文档;指明为完成软件集成特性测试而进行设计测试方法细节的文档;测试用例文档;测试活动序列文档;测试结果文档。这些文档详尽记录了测试的所有关键流程,不仅有利于测试人员有条不紊地进行测试,也有利于发现问题后追溯问题根源。