1.3 敏捷开发模式
从1953年开始,中国启动了五年计划(现改称五年规划),以五年为一个周期,根据当时的国际国内形势制定规划,确定本周期的工作重心,然后针对规划开展工作。
党和国家无疑有更远大的目标,要让国家更强大,社会更和谐,人民更幸福,而五年规划是达成远大目标的方法,每个周期的规划都是针对当时的实际情况制定的,是在一个周期的时间长度内可执行的,每个周期都是往伟大使命迈进的坚实一步。这是一种迭代式的思路。
迭代是一种行之有效的思路,它不仅适用于国家规划,也适用于软件开发,敏捷(Agile)就是这样一种软件开发思路。敏捷是当前主流的软件开发模式,它是迭代式的,强调的是拥抱变化、小步快走、快速反馈和改进,这些思路比较适应当下需求多变的软件应用场景。
相对于传统的瀑布开发模式,敏捷模式对于参与项目的各方人员带来新的要求和挑战。产品经理需要积极研究用户需求,把需求转化为可行的产品思路,并且需要根据市场变化决定和调整需求的优先级;项目经理需要协调资源,把开发任务细分为可管理的粒度,追踪进度,帮助解决问题,保证项目进展顺利;开发工程师需要在软件架构上认真考虑,写出正确、强壮、易读、可重用、易扩展和重构的代码,当需求有变化时,能从容地做相应的代码调整;测试工程师需要深入理解产品思路,高质量地设计测试用例,高效率地执行测试用例,提供及时而可靠的测试执行报告,为产品决策提供支持。
相对传统的开发流程,敏捷开发流程对测试人员提出了更高的要求,具体体现在如下方面:
1)测试人员需要扮演好“用户代表”的角色。
2)虽然单元测试主要由开发工程师完成,但是在实际项目实践中,测试人员需要帮助测试代码覆盖率,以确保单元测试的完整性。
3)由于产品版本的频繁迭代,相应的冒烟测试和回归测试是必不可少的,手工执行数量庞大的测试用例变得非常困难。
4)频繁的迭代需要大量的集成测试。在有限的测试时间内,如何有效高效地完成大量集成测试,是敏捷测试中的重点,也是难点。
5)产品的系统测试、性能测试、安全测试等测试环节不是手工测试能轻易涵盖到的,自动化测试的重要性日益显现。
敏捷开发模式对整个软件工程团队都提出了挑战,其中也包括测试团队。如果测试团队不够敏捷,整个工程团队就无法做到真正的敏捷。