除非你在过去的一两年里一直处于冬眠状态,否则我相信你已经充分意识到持续测试的好处:降低开发成本、减少浪费、提高系统可靠性、降低发布风险等等. 当然,您认为在现实世界中将其付诸实践并不像某些供应商那样简单。很明显,配置了持续集成工具并不意味着团队成功实现了持续测试。
幸运的是,我们现在拥有比以往更多的资源来克服这一组织挑战,例如ACT 框架。前不久,我和我的团队还发布了我们的《持续测试终极指南》,非常符合ACT框架的理念。在这篇文章中,我将分享指南中成功实施持续测试的一些关键注意事项和技巧。
评估您当前的团队、技术和流程
任何时候您希望改进软件开发的结果,都必须考虑三个紧密联系在一起的基本支柱:流程、工具和人员。团队可以通过改进流程不断学习和改进。尽管如此,他们使用的工具和团队成员本身也必须进行调整,以便新的和改进的流程能够长期取得成功。
这里有几个问题要问:
我们对我们的交付管道有共同的理解吗?不要只考虑开发管道,还要考虑如何为您的业务创造价值。
其中有多少是自动化的?我们有合适的 CI/CD 引擎吗?
我们当前的测试工具和流程是否与上述管道集成?
我们是否缺少自动化所需的专业知识?我们应该投资培训吗?如果是这样,在什么地方?
我们最大的限制是什么:时间、预算、资源?我们怎样才能抵消这些?
知道哪些质量因素最重要
对于每个团队,某些质量因素将比其他因素更重要,这就是为什么专注于对软件质量的每个因素进行持续测试并不总是必要或明智的原因。例如,如果您正在为非常多样化的用户组开发系统,则可用性测试可能优先于性能测试。例如,公民用来报税的政府系统可能需要比性能更高的可用性和安全性。
根据ISO 25010软件产品质量标准,有八个软件质量属性:功能适用性、性能效率、兼容性、可用性、可靠性、安全性、可维护性和可移植性。对于每一个,您都有相应的一组测试来评估其质量水平。
与您的团队一起评估用户和利益相关者在软件质量方面最关心的领域。最坏的情况是什么,如果有什么东西坏了,会造成最大的损失?这些是必须首先解决的风险。由于发布之间的测试时间有限,可能只有几周、几天甚至几小时,因此遵循基于风险的方法将有助于明确哪些值得优先考虑。
规划您的持续测试路线
有几个质量领域需要关注,这将帮助您努力实现高效的连续测试程序,包括左移和右移测试。
在下面描述三个测试成熟度级别(基本、高效和持续)的图表中,您可以看到如何从源代码、环境、测试自动化等不同质量方面进行管理,以拉动关闭连续测试。例如,在部署 CI/CD 之前,您必须首先实施源代码版本控制。
我鼓励您使用此图表作为参考来查看您的团队在九个不同质量领域中的位置。从上到下遍历各行,与您的团队成员一起思考您是否以基本、高效或持续测试为特征的方式处理每个给定区域。
从那里,您可以制定行动计划以在这些成熟度级别上取得进展,从而实现持续测试。他们解决哪些领域需要首先改进,支持下一步持续测试的最关键领域,以及您的团队确定为最关键的软件质量属性。
规划成功
俗话说,“不计划就是计划失败”。在积极进行持续测试、将所有能够自动化的东西自动化之前,明智的做法是首先根据您团队的背景和业务目标,弄清楚成功应该是什么样子。如果您的团队在此过程中犯了一些错误也没关系,而且您的持续测试是一台运转良好的机器,这不会在一夜之间发生!
请记住,首先要了解您组织的目标、人员、流程和工具。了解通过持续测试减轻的最重要风险,并据此制定具体、切合实际的行动计划。