- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
1
2024/10/20
大模型时代
大模型时代TDD凤凰涅槃
朱少民同济大学
1
CONTENTS
CONTENTS
目录
1.引言:TDD已死?
2.变革:大模型时代的软件开发新范式
3.UTDD:代码生成的正确打开方式
4.ATDD:软件研发的终极打开方式
5.未来:UTDD和ATDD融合的平台
2
2
2024/10/20
引言:TDD已死?
引言:TDD已死?
TDD:测试驱动开发
3
TDD的来源
TDD的来源
4
3
2024/10/20
TDD
TDD:最初的含义与地位
5
TDD的价值
①避免产生bug、提高代码质量:在编写代码之前就编写测试用例,其次,100%测试覆盖
②高效:第一次就写出正确的代码
③方便重构:有了测试代码的保障,开发者可以更放心地重构代码,而不必担心引入新的bug。
④提高代码的可维护性:测试代码可以作为代码的文档,帮助其他开发者理解代码的功能和使用方法。
6
4
2024/10/20
但是,最初的TDD已死?
7
我们可以说:TDD没死,被重启了
TDD是思想,其实践有:
?UTDD?ATDD?BDD
8
5
2024/10/20
TDD
TDD依旧极具挑战
质量意识
进度压力习惯不愿写文档
没有好的工具
……
9
变革:
变革:LLM时代软件开发新范式
去年LLM相继爆发,给软件开发打开了无限的想象空间
10
6
2024/10/20
今天LLM能理解需求、设计、代码……
今天LLM能理解需求、设计、代码……
11
今天
今天LLM能生成UI、代码、测试脚本等
GitHubCEOThomasDohmke挑战:用AI18分钟完成一个小游戏的编程。结果只用了不到15分钟成功上线部署,这边他还在讲台上,全球网友已经能玩上了。
12
7
2024/10/20
标志着SE3.0时代的到来
标志着SE3.0时代的到来
去年4月,我写的一篇文章,定义“软件工程3.0”
13
软件开发新范式:LLM-DevOps
模型驱动开发、模型驱动运维
模型部署、
模型验证
运维
DevOps
模型训练
大模型
14
8
2024/10/20
新范式:人人都有一个AI助手
新范式:人人都有一个AI助手
每一个研发人员都有一个助手、能力更强;团队变小;但更高效、更能打胜战
模型运维
模型
BA助手
架构咨询
UI设计
助手
编程助手
测试助手
训练
大模型
模型验证
模型部署
技术支持助手
AIOps
一键配置
大模型
客户服务助手
一键发布
15
UTDD:代码生成的正确打开方式
UTDD:代码生成的正确打开方式
LLM是TDD的救星
16
9
2024/10/20
悖论:基于代码生成单测
悖论:基于代码生成单测
17
示例:计算年龄
示例:计算年龄
大模型生成了Bugly程序
大模型基于程序生成的测试代码
18
10
2024/10/20
现在让
现在让LLM先思考验证点、再生成单测
19
LLM生成的单测-续
20
11
2024/10/20
基于单测再生成程序
基于单测再生成程序
21
ATDD:软件研发的终极打开方式
ATDD:软件研发的终极打开方式
ATDD不仅复活了,而且产生新的力量
22
12
2024/10/20
LLM
LLM适合应用于“需求采集、分析与定义”
23
定义用户故事及其验收标准
定义用户故事及其验收标准
24
13
2024/10/20
基于
基于GWT验收标准生产测试代码
25
再基于
再基于BDD测试代码生成前后端代码
26
14
2024/10/20
更好的实践
更好的实践
测试脚本
相互验证和博弈
需求及其验收标准
程序/产品代码
由LLM生成
由LLM生成
27
自我博弈产生更好的效果
28
15
2024/10/20
未来:
未来:UTDD和ATDD融合的平台
进入十倍效能的新时代
29
UTDD和ATDD融合
①统一开发流程:UTDD和ATDD的融合起来之后,感受不到UTDD和ATDD的存在,回归到TDD——测试在前、开发在后。
②促进团队协作:进一步促进业务分析师、开发人员、测试人员的合作,也会促进研发人员和大模型的协作(因为从需求开始就合作)
③提高效率和质量:测试驱动开发,基于需求出发,测试不受开发影响,有利于第一次就做做对设计、生成正确的代码,极大地缩短开发周期、消除缺陷,质效合一,真正能做到又快又好。
30
16
2024/10/20
让
让LLM生成TDD融合平台的组件图
31
可以让
可以让LLM优化组件图
6
3
1
文档评论(0)