徐昊 · AI 时代的软件工程
徐昊
Thoughtworks 全球技术策略顾问
2940 人已学习
新⼈⾸单¥98
登录后,你可以任选4讲全文学习
课程目录
已更新 22 讲/共 36 讲
徐昊 · AI 时代的软件工程
15
15
1.0x
00:00/00:00
登录|注册

19|测试策略(二):使LLM构造功能测试

你好,我是徐昊,今天我们来继续学习 AI 时代的软件工程。
上节课,我们讲解了如何通过测试四象限(Agile Testing Quardant)构造有效的测试策略(Test Strategy),以及为何构造支撑团队的测试(Q1 和 Q2 象限)是测试策略中重要的一环。而在构造 Q1 和 Q2 象限的时候,重点在于建立 Q1 象限和 Q2 象限的直接关联。这时候,功能上下文就起到了非常重要的作用。
那么今天我们就来看一看如何有效地划分功能上下文。

利用架构划分功能上下文

划分功能上下文最简单的方法就是软件架构。软件架构是软件系统的基本结构和组织方式,主要包括系统由哪些组件构成,以及各个组件之间的关系。在软件架构中,组件是指软件系统中具有明确功能定义和责任模块。
因而,通过组件负责的功能单元就可以很容易地获得功能上下文。让我们看一个非常简单的例子:
这是一个非常常见的后端分层架构模式,核心的业务逻辑处在业务逻辑层中,业务逻辑层通过持久化接口访问数据,所有的逻辑通过 HTTP 接口暴露对外访问的 API。现在,我们有一个业务场景需要使用这个架构模式实现。业务场景是“作为一个用户,我希望获取所有的在售商品,从而我可以选择我想要购买的商品”。
那么我们就可以按照架构模式的指引,为这个业务场景引入对应的组件,操作如下图所示:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

1. 构造有效的测试策略是测试中的重要环节,通过测试四象限(Agile Testing Quardant)来实现。 2. 划分功能上下文的重要性,可以通过软件架构来实现,有助于构造相互关联的Q1与Q2测试。 3. 在测试中引入测试替身是测试策略中另一个重要的问题,选择合适的测试替身策略能保证测试的有效性,并控制测试成本。 4. 测试替身有多种不同的形态,包括哑对象、假实现、存根对象、间谍对象和模拟对象,选择恰当的替身策略对于功能上下文的独立测试至关重要。 5. 除了架构之外,还有其他办法可以划分功能上下文,这是一个需要思考和讨论的问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《徐昊 · AI 时代的软件工程》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 术子米德
    🤔☕️🤔☕️🤔 【R】划分功能上下文 简单法 软件架构。 Q1的可行需要依赖注入(Dependency Inject)和测试替身(Test Double)的加持。 哑(Dummy)/有但不用,假(Fake)/用随意值,存根(Stub)/用特定值,间谍(Spy)/记点东西,模拟(Mock)/交互验证。 【.I.】单元测试,要Mock,这个太麻烦,这个引入很多工作量,这个没必要搞这么复杂,这个不靠谱,这个…,这么稀奇古怪的理由的潜台词,有两个:1)很明显,我根本不想单元测试;2)很隐晦,我根本没明白问题点在哪里。 我工作的单位是模块,一个有边界的模块,一个定义清楚接口和操作、其对象有状态切换的模块,那么我交付的模块,就是这边界定义清晰的模块,且,我能验证交付时模块具备的功能。 也就是说,在我出手交付前,我要对我的模块做验证,它是我的工作单元,于是我把这种模块级的验证,叫做单元测试。 【Q】单元测试,要进行哪些方面,或者说哪些维度的设计,是否有推荐的文章或书籍? — by 术子米德@2024年4月19日
    2024-04-19归属地:浙江
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部