软件测试管理:从基础到高级实践
在软件开发领域,测试管理是确保软件质量的关键环节。然而,目前相关术语并没有被普遍接受的定义,这些概念和软件工程本身一样,处于不断发展和讨论中。
测试人员职责分配
在测试编码的责任归属方面,存在普遍共识。通常建议单元测试由被测系统(SUT)的开发人员编写。在一些情况下,特别是小团队中,这些开发人员也负责其他类型的测试。
同时,独立测试小组(通常称为测试人员或质量保证(QA)团队)的角色也很常见,尤其在大型团队中。这种角色分离的目的之一是消除可能存在的利益冲突,因为从心理角度看,测试被视为一种破坏性活动,其目标是发现缺陷。独立测试小组通常负责集成测试、系统测试和非功能测试。在测试过程中,开发人员和测试人员应密切合作,开发人员需及时纠正错误,减少未来的误差。
此外,高级验收测试通常由包括非程序员(如客户、业务分析师、经理等)和软件工程师或测试人员组成的异质小组进行。
持续集成(CI)
持续集成的概念由美国软件工程师Grady Booch在1991年首次提出,后来被极限编程(XP)方法采用并广泛传播。Martin Fowler将持续集成定义为:团队成员频繁集成他们的工作,通常每人每天至少集成一次,导致每天进行多次集成。每次集成都通过自动化构建(包括测试)进行验证,以便尽快检测到集成错误。
在CI系统中,主要包括以下几个部分:
1. 源代码仓库 :用于存储软件项目的源代码,通常使用版本控制系统。目前,Git是首选的版本控制系统,常见的代码托管平台有GitHub、GitLab、BitBucket和SourceForge等。开发人员