软件工程领域2位大师Victor Basili与Boehm在十七年前携手撰写的一篇关于减少软件缺陷的论文,提出了十大具有深远影响的结论。这些结论不仅在当时对软件工程领域产生了重要影响,而且在当今快速发展的软件工程中依然具有指导意义。
当下的软件开发已经已进入3.0既智能软件工程时代,有必要对大师的结论做一些新的思考。
结论一:交付后软件缺陷的发现及修复成本往往是需求、设计阶段发现及修复缺陷成本的百倍。
解读与思考:AIGC技术可以辅助需求分析师和设计人员更准确地理解和表达需求,减少需求理解的歧义和偏差。例如,AIGC可以生成需求规格说明书和设计文档的初稿,并通过智能审查工具检查其中的逻辑错误和遗漏,从而在需求和设计阶段就减少潜在缺陷,降低后期修复成本。
结论二:40%到50%软件项目的工作量花在了可以避免的返工上面。
解读与思考:AIGC技术可以通过自动化测试、代码审查等手段,提前发现代码中的缺陷和潜在问题,减少返工。例如,利用AIGC生成的自动化测试用例,可以对代码进行全方位的测试,确保代码质量和稳定性。同时,AIGC还可以辅助开发人员快速定位和解决代码中的问题,提高开发效率。
结论三:前述可避免返工的80%来自于20%的缺陷。
解读与思考:AIGC技术可以通过大数据分析,识别出导致大部分返工的少数关键缺陷类型。例如,通过对历史项目的数据进行分析,AIGC可以总结出常见的缺陷类型和分布规律,为开发人员提供针对性的改进建议,从而减少类似缺陷的再次发生。
结论四:80%的缺陷来自20%的模块,大约50%模块不包含任何缺陷。
解读与思考:AIGC技术可以通过对代码模块进行静态分析和动态监测,识别出容易出问题的模块特征,如复杂度高、变更频繁等。针对这些模块,AIGC可以生成更详细的测试计划和测试用例,以确保其质量和稳定性。同时,对于质量较高的模块,AIGC可以辅助开发人员进行代码优化和重构,进一步提高代码质量。
结论五:10%的缺陷导致了90%的软件系统停机。
解读与思考:AIGC技术可以通过基于风险场景的测试策略,优先测试那些可能导致系统停机的高风险缺陷。例如,利用AIGC生成的模拟数据和场景,可以对系统进行压力测试和故障注入测试,以评估系统的稳定性和可靠性。这种测试方法可以帮助开发人员提前发现并修复潜在的高风险缺陷,降低系统停机的风险。
结论六:同行评审可以发现60%的缺陷。
解读与思考:AIGC技术可以辅助同行评审过程,提高评审效率和准确性。例如,利用AIGC生成的代码审查报告和自动化审查工具,可以对代码进行快速而全面的审查,发现潜在的缺陷和代码异味。同时,AIGC还可以提供个性化的审查建议和改进方案,帮助开发人员更好地理解和修复问题。
结论七:基于多场景透视图阅读(Perspective-based)的评审比一般随机而做的评审多发现35%的缺陷。
解读与思考:AIGC技术可以支持基于多场景透视图的评审方法,通过生成不同场景下的测试用例和模拟数据,帮助评审人员更全面地理解和评估代码的质量和性能。这种评审方法可以帮助发现更多潜在的缺陷和问题,提高评审的准确性和有效性。
结论八:自律的个人实践可以少植入多达75%的缺陷。
解读与思考:AIGC技术可以通过提供智能化的代码编写和审查工具,帮助开发人员养成良好的编程习惯和实践自律。例如,利用AIGC生成的代码模板和最佳实践指南,可以引导开发人员编写高质量、可维护的代码。同时,AIGC还可以对开发人员的代码进行实时监测和反馈,及时发现并纠正不良编程习惯。
结论九:开发可靠性高的软件产品的成本往往比开发可靠性低的软件产品的成本高出50%。但考虑到后期的运维成本,对某些软件系统来讲,这个投入是非常值得的。
解读与思考:AIGC技术可以通过提高软件开发的自动化程度和智能化水平,降低开发可靠性高的软件产品的成本。例如,利用AIGC生成的自动化测试脚本和持续集成/持续部署(CI/CD)管道,可以实现对软件的快速迭代和持续交付,同时确保软件的质量和稳定性。这种开发模式可以帮助企业更快地响应市场变化,提高竞争力。
结论十:大约40%到50%的程序都有严重缺陷。
解读与思考:AIGC技术可以通过全面的质量管理和持续改进策略,降低软件中的缺陷率。例如,利用AIGC生成的质量报告和数据分析工具,可以对软件的质量进行实时监测和评估,及时发现并解决问题。同时,AIGC还可以支持质量回溯和根因分析,帮助企业深入理解缺陷产生的原因和根源,从而制定更有效的改进措施和预防策略。
综上所述,大模型AIGC技术在软件工程中的应用可以为减少软件缺陷、提高软件质量和开发效率提供有力支持。通过结合AIGC技术的智能化和自动化特点,我们可以更好地应对软件工程中的挑战和问题,推动软件产业的持续发展和进步。
-End-
欢迎扫二维码联系宋老师,加入万人质量交流群,
与群里的同学,愉快交流学习!!
为赋能质量人员,知识星球已积累研发管理、流程管理、项目管理、质量管理的干货资料4000+,内容还在更新中,欢迎加入,学习提升!