该篇文章为宋老师的深圳质量协会刊物的邀稿,已经见刊,转发到公众号
一、引言
随着科技的飞速发展,我们已经步入了数智时代。数字化和智能化的深度融合正深刻地改变着我们的生活、工作方式以及社会的各个领域。我们也已经开始进入万物互联的时代,传统的硬件产品都开始具备联网、智能化的能力,软件在产品研发中的比重和重要性也在逐步增加。近期引发热议的BP机爆炸时间,也让我们再次认识到比特世界与物理世界的边界在逐渐模糊,比特世界的威胁会洞穿到物理世界,给人类社会造成巨大的风险。而软件作为数智时代的基础设置及时代发展的核心驱动力之一,其质量重要性日益凸显,毫不夸张的说,人类社会的生活质量与已经与软件质量息息相关。
二、数智时代的软件质量管理概论
2.1软件质量定义与模型
软件是数据、程序、文档的集合,相对硬件难以直观的感知到。软件开发更多是一种智力活动,与传统生产方式有较大差别,这也导致软件质量管理与硬件的质量管理有较大的差异。
在相关国际标准中,把质量也定义为:软件产品满足规定的和隐含的与需求能力相关的全部特征和特性。根据国标GB-T16260及国际标准ISO/IEC25010:2010标准,软件质量分为内部质量、外部质量、使用质量。内外部质量合并为产品质量,包含8大质量属性,如下图1:
而使用质量包含5大属性,如下图2:
质量模型可以帮助我们在设计软件时,更加完整的考虑软件需要符合的特性要求,避免需求的遗漏。
在数智时代,软件质量更加关注“顾客感知质量”和“顾客感知价值”。这意味着软件质量不仅仅要满足基本的功能需求,还要具备良好的用户体验。英国皇家质量学院(CQI)将质量4.0定义为质量管理的下一代标准,聚焦于改善和创新,通过整合数字化技术、信息和数据进行驱动,实现业务增长和价值创造。
2.2数智时代的软件质量管理
软件质量管理同样也遵循质量管理完整行动的原则,包含三个层次:
1、质量控制:对软件过程的度量、对软件产品的检测。
2、质量保证:通过软件开发过程的管理来获得预期的结果质量。
3、质量管理:建立质量文化和管理思想。
分别对应,质量管理的:物、事、人三个层面。
软件过程的三要素分别为:人、流程、工具方法,因此要做好软件质量的管理,就是要对着3个要素进行有效的管理,从而预防问题发生,获取预期的产品质量。
数智时代使得数据驱动的质量管理成为可能。通过大数据分析和人工智能技术,可以对软件质量进行实时监控和预测,更及时发现并解决潜在问题。通过数据的深度分析与建模,能够帮助制定更加科学合理的质量目标和改进策略,推动质量过程管理从定性走向定量,提高质量管理的效率和效果。而通过云计算、物联网等技术,实现跨地域、跨组织的协同质量管理,打破空间限制,使得跨区域大规模团队协同与沟通效率大幅改善。
三、数智时代软件质量管理面临的挑战
1、软件规模与复杂性增加
由于软件要处理的业务越来越复杂,也导致软件系统日益复杂,不仅仅涉及到代码数量规模的不断扩大,还涉及多种技术、平台和设备的集成,另外也会涉及更多专业团队的协同。软件复杂性及团队复杂性的提升必降大大提高出现缺陷的概率,这不仅增加了软件开发的难度,也对软件质量管理提出了更高要求。
2、开源软件的质量隐患
当代的软件开发本质是一种组件的组装,开源软件在软件开发中扮演着重要角色,通过复用提升开发的效率,但开源代码库中的漏洞和缺陷也随之而来。据统计,97%的代码库中包含开源代码,每1000行代码中平均存在14个漏洞。这些漏洞如果被恶意利用,将对软件系统的质量与安全性构成严重威胁。
3、实时性要求高
数智时代的软件系统需要实时处理大量数据,对软件的稳定性和可靠性提出了更高要求。任何微小的质量问题都可能导致系统崩溃或服务中断,给企业带来重大损失。
4、安全与隐私保护
随着用户对个人隐私和数据安全的关注度不断提高,软件系统在设计和开发过程中必须充分考虑安全性和隐私保护的需求。如何在保证系统功能的同时,有效防止数据泄露和非法访问成为软件质量管理的重要任务之一,而这一块在传统软件质量中是被忽视的特性。
5、人工智能生成内容(AIGC)的质量问题
AIGC在软件开发中的应用日益广泛,很多公司开始部署代码大模型,通大模型的代码自动生成功能,帮助程序员提升开发效率,降低开发的工作量。然而,由于AIGC训练时的代码样本本身安全性和质量就存在问题,因此,生成的代码可能存在固有的机器幻觉和缺陷问题,如何确保AIGC的质量成为亟待解决的问题。
四、传统软件质量管理模式及局限性
4.1 CMMI模型
CMMI(集成的能力成熟度模型)是一种广泛应用于软件工程和系统工程的过程改进框架及最佳实践的集合,它帮助组织提高其项目管理和工程能力。它定义了企业软件开发需要管理的各个过程以及每个过程的核心实践。通过CMMI评估,企业可以了解自身在软件开发和质量管理方面的成熟度水平,并据此制定改进措施。然而,CMMI在实践过程中也存在一定的局限性主要如下2点:
1、CMMI模型本身应用于项目层级的,因此它不能解决与战略对齐的问题。组织在实施CMMI时可能需要额外的努力来确保其流程改进与组织的商业目标和战略保持一致。
2、过于复杂实施难度大,CMMI模型包含复杂的过程和实践,而且仅仅提成了做什么,而没有具体如何做的指导,使得组织在实施时可能会面临理解和执行上的困难。而且,在不理解情况下会导致实施人员追求符合性,而不是有效性,反而会增加员工负担,影响决策与执行效率。
4.2 ASPICE模型
ASPICE(汽车软件过程改进和能力评估模型)是一种专门针对汽车行业软件开发和评估的国际标准。它侧重于软件和系统工程的改进,关注工程实践和软件质量的提升。ASPICE与CMMI在目标上相似,但在评估方法、适用范围和重点上存在差异。ASPICE更适用于汽车行业,而CMMI则是一个更通用的模型。由于该模型与CMMI有极大的相似性,因此也同样存在类似的局限性。
4.3 敏捷开发与DevOps
敏捷开发和DevOps是当代软件开发中广泛采用的模式,强调人为核心。敏捷开发强调快速响应变化、持续交付价值;DevOps则促进开发、运维和质量保障部门之间的沟通、协作与整合。这些模式有助于提升软件开发的效率和质量,但在实施过程中有其局限性,主要如下3点:
1、严重依赖硬件的软件开发过程,难以实施;
2、强监管、合规性要求高的行业,难以适用;
3、需要详细规划和预见性的系统,比如,嵌入式、实时系统软件,不适用敏捷过程。
4.4 当前传统方法难以逾越的瓶颈
当前指导软件开发的方法,核心都是基于过程及最佳实践,但软件开发过程本身是一个不断探索未知的过程,这导致软件质量管理瓶颈难以突破,原因如下:
1、所谓过程及最佳实践,是基于对已有经验知识的总结,但软件开发过程本身就是要开发新产品过程,既然是新产品,必定存在现有经验与知识无法完全解决的风险,因此过去的经验并不能完全应对未知的风险。
2、软件开发是一种以知识为核心的智力活动,因此,为了快速响应外部变化的风险,知识在组织中的传播速度和应用效率就变的尤为重要。但组织内部知识的有效传播与共享也面临着诸多障碍,如信息孤岛、组织复杂性导致的官僚化,这些都直接阻碍了整体质量管理体系的持续优化与升级。
3、数智时代将涌现大量AI应用软件,AI训练后生成模型算法不可见,无法回溯到过程。由于逻辑路径不可见,因此模型测试无法闭环,只能通过输入的数据质量来保证输出的质量。基于过程的质量管理思想,难以完全适用。
4、下面是一个典型的AIGC应用软件开发的过程
大家会发现,这一类软件开发的门槛已经大大降低,非程序员同样可以通过自然语言的方式开发AI应用软件。而传统方法,应该都没涉及这类场景,因此,无法对数智时代的软件开发质量提供完备的指导。
五、数智时代的软件质量应对策略
5.1 魔法才能打败魔法—积极拥抱大模型技术
在数智时代,企业当然需要建立全面的质量管理体系来应对复杂的软件质量管理挑战。这包括:文化、组织、流程和标准、最佳实践、工具与度量。但大模型技术的引入,为突破既有瓶颈提供了一种可能。
l大量逻辑处理和手工操作由LLM承担,项目交互与文档大大减少,组织的交流协调问题权重降低;
l智能知识的复用大大降低了对人员的能力要求;
l知识的传播不依赖管理措施,而是工具大大提升了知识应用的效率;
lAI模型可以对实战过程进行持续抽象总结,实现动态,实时的学习,让项目团队在开发过程中不断调整、找到最佳研发模式。
l可用于自动化质量与安全领域的各种任务,可以帮助简化和提高这些流程的效率,实现去专家化。
5.2 强化数据驱动的质量管理
数据驱动的质量管理是数智时代的重要特征之一。重复利用大数据和人工智能技术,对外可以更好的挖掘用户的个性化需求,确保做出更高用户体验的软件;对内,实时监控和分析软件系统的运行状况和质量指标,通过AI算法预测潜在的质量问题并提前进行干预,以及利用数据分析结果来优化质量管理策略和改进措施。
通过这些手段来提高质量管理的效率和精确度,而且这些工作,几乎无需人的介入,无疑将提升决策的质量、提升质量改善闭环的速度,必将促进软件质量水平的提升。
5.3 加强安全性和隐私保护
安全性和隐私保护是数智时代软件质量管理不可忽视的重要方面。安全与隐私合规都属于质量属性之一,基于过程预防的质量理念,应该将安全性及隐私合规性内建到软件开发过程中,建立安全合规的软件开发过程。确保开发的软件,本身就不存在安全性欲隐私合规性问题。
5.4 从软件供应链角度实施软件质量管理
复用性是软件重要特性,复用可以提升开发效率和降低工作量,但同样的如果一旦复用代码出现质量问题,其负面影响将呈现雪崩式传播。
而数智时代的软件开发,比如不可能是一家独立完成,涉及上下游企业的组件级别的合作,而产品质量是由组成产品的软件组件模块共同质量水平决定的。因此,软件质量保证,不仅仅是软件产品生命周期,还需要涉及对软件上下游组件的质量保障。
针对开源软件的风险管理问题,企业需要建立完善的开源软件管理机制。这包括
事前:选择可靠的开源软件项目和版本;
事中:对开源软件进行严格的安全审核和测试;
事后:及时跟进开源社区的更新和修复漏洞。
通过这些措施来降低开源软件的风险并提高软件系统的稳定性和可靠性。
六、结论
数智时代为软件质量管理带来了新的挑战和机遇,传统的软件质量管理经验将难以解决新时代的问题。
面对复杂的软件系统和严格的质量要求,企业需要建立基于软件供应链的全面质量体系、强化数据驱动的质量管理、加强安全性和隐私保护以及优化开源软件的管理等措施来提高软件质量管理的效率和效果。同时,随着数字化技术的应用,未来数智时代的软件质量管理将更加高效、精准和智能化。
我们有理由相信,在不断探索和实践的过程中,软件质量管理体系也会继续发展,并将在数智时代中发挥更加重要的作用并推动产业变革和社会进步的实现。
-End-
欢迎扫二维码联系宋老师,加入万人质量交流群,
与群里的同学,愉快交流学习!!
为赋能质量人员,知识星球已积累研发管理、流程管理、项目管理、质量管理的干货资料4000+,内容还在更新中,欢迎加入,学习提升!