2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

质量保证的推荐实践

  • 2013-10-16
  • 本文字数:2130 字

    阅读完需:约 7 分钟

质量保证是软件开发过程中必不可少的组成部分,资深工程师 Aya推荐了几种实践方法,认为可以有效地提高质量保证的效果。

Aya 认为在整个软件生命周期自始至终都要考虑软件质量:

对于将软件 QA 浓缩到所有开发任务完成后的测试阶段的方法,它们的问题在于:会给团队带来巨大成本并将整个项目置于高风险之中。在测试阶段,开发人员竭尽全力确保他们的代码具有极少的缺陷。然后测试人员努力揭示软件中每个可能的缺陷,而经理和客户希望他们拥有适合向市场发布的软件。

问题在于:为什么许多软件公司会坚持促使开发团队满足严格的最后期限,完成尽可能多的功能,却毫不关心代码质量有多差,因而忽视了注入代码内的大量缺陷,犯下架构错误,以及忽略文档?

仓促的开发可能会为团队节省片刻的时间,但是,如果有一些重大开发问题没有从一开始就考虑到,最终可能导致需要投入更多的时间。结果是浪费了大量团队资源来修复和重新设计代码,而不是将这些资源投入到更有用的事情上。软件团队人员内心里对整个始末一目了然,但面对着唠叨的客户、严格的销售团队,以及一些自我感觉编写了无缺陷的软件的开发人员,软件团队确实很难将 QA 撇在一边而只顾着完成代码。

对于如何提高质量保证的效果,Aya 推荐了几种实践方法,包括需求审核、代码审核和演练、基于会议的测试、基于风险的测试等。

Aya 认为,浪费资源来交付错误的功能确实很可怕。在开始每个新开发阶段之前审核软件需求,这样做能够最大限度地减少缺陷并满足客户的需求。在实现之前审核需求,这样做有助于考虑潜在的变化,克服在项目的整个寿命中可能发生的误解。团队必须与客户一起反复检查所有应实现的业务领域细节。需求审核也可以使用原型和领域模型来完成。当开发团队在开始实际实现之前完成这个小任务时,他们的项目或开发迭代会获得良好的开局。通过确保在实现之前所有利益相关者都达成共识,并且每位团队成员都意见一致,客户和管理人员可确信开发人员将在开发周期结束时交付正确的成果。

而“代码审核和演练”听起来像很简单,但代码审核是软件开发中最有效的实践之一。它对减少缺陷数量以及增强代码和软件设计的质量具有直接影响。这消除了在未来的版本中执行重大的代码重构和清理的需求。

依据项目需求和实现细节,团队可能认同简单的编码和设计原则。团队成员应共同遵守这些原则,而且只要开发一项新功能,一个或多个团队成员(除了作者)应审核新代码,并搜索所有编码或设计错误。

这种做法可在许多方面为团队带来帮助,包括提高代码质量和设计,最大限度地减少缺陷,并预防它们。另外,它还使得整个团队能够深入了解彼此的工作,轻松移交工作,并提高团队对不同软件组件和功能的认知。团队协作验证和证明代码的质量和设计的实现方法。它们从同事那里获得直接反馈。这么做可谓一举两得:代码质量增加了,团队的认知和项目责任也增加了。

第三个实践是“基于会议的测试”,表示将测试负载分解为会议,每个会议有一个任务(一种希望从测试会议获得的明确规定的结果)。每个会议有一个既定的时间范围(从 20 到 40 分钟),测试人员在执行测试会议期间不应中断。

这就像将测试人员放在一个测试房间一段时间,让测试人员专注于查找特定软件特性或功能的缺陷。在会议期间,测试由一组测试案例引导执行,测试人员也可以执行探索性测试。因此,基于会议的测试是正式测试方法与测试创新的一种组合,因为它提供了测试人员房间来进行探索和获得直觉思维,留出了时间和自由空间来发现不常见的缺陷,或者通过折腾软件来进一步了解它。

会议期间,测试人员应将软件的行为记录在案,获取快照,以及写下软件在特定输入和设置下的行为。会议结束时,将与团队领导或技术经理讨论会议脚本。从他们的讨论中,他们找出所认为的正常行为和不正常行为,然后基于讨论创建缺陷报告。

另一种则是“基于风险的测试”,因为在开发流程中进行了一些更改,开发团队通常拥有同一个软件的许多常用版本。一种重要的 QA 实践是在每个主要版本之后彻底测试软件。另一方面,在每个版本中都对整个软件运行全面的回归测试既耗时又很难实现。但是,仅测试更改的功能或笨拙地删减测试案例套件是不安全的。一段代码可能解决了一个缺陷,但也可能破坏了代码中的其他内容。

基于风险的测试方法采用了折中方式。它的基本理念是按降序对软件功能和失败模式排序,从最重要或风险最高到值得拥有的功能和简单的风险(一个类似工具是 FMEA:失败模式和影响分析)。如果测试人员在严格的时间限制下测试某个新版本时手头有这个列表,他就可以集中精力确保新引入的更改不会破坏其他任何内容。然后就可以轻松地确保更改不会破坏软件中的任何最重要的功能,因而不会发生任何最严重的风险。

在 11 月 1 日开幕的 QCon 全球企业开发大会(上海站),参与者将有机会聆听测试专题“大测大悟”讲师的经验分享:

大测大悟这个专题主要分享通过测试与质量为企业贡献价值的方法与实践。测试的重要性和价值,已经毋庸置疑,然而,怎样才能借助于测试与质量为企业贡献价值呢?敏捷、精益,移动、云计算,方方面面的变化都给测试与质量工作带来了极大的挑战,又该如何直面这些挑战呢?我们计划从不同行业、不同领域邀请实践者和思考者,为大家分享成功案例、需要注意的经验教训以及可改善产出的新奇方法。

2013-10-16 08:522074
用户头像

发布了 501 篇内容, 共 270.9 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

解决Ascend上vllm运行时出现urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED]

zjun

照片管理工具PowerPhotos for Mac激活版

小玖_苹果Mac软件

SpringCloud 应用 Nacos 配置中心注解

阿里巴巴云原生

阿里云 云原生

Golang 函数式编程基础

俞凡

golang

网络检测工具箱Network Kit for Mac激活版

小玖_苹果Mac软件

从 UUID 到 UUIDv7:唯一标识符的演进

俞凡

分布式系统

唯品会按关键字搜索 VIP 商品 API 接口的开发应用与收益

科普小能手

数据挖掘 数据分析 API 文档 唯品会API接口 跨境电商运营

基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发

阿里云云效

阿里云 云原生

IK Multimedia T-RackS 6 MAX:功能全面、性能卓越的混音和母带处理软件

Rose

Permute 3 Mac中文版:轻松将您的媒体文件转换为各种不同的格式

Rose

illustrator 2022(ai2022) 绿色便携版+ai2022 mac破解版

Rose

超强全能工具箱Parallels Toolbox for Mac激活版

小玖_苹果Mac软件

超强系统优化工具MacPilot for Mac激活版

小玖_苹果Mac软件

系统垃圾清理软件MacCleanse for Mac激活版

小玖_苹果Mac软件

FoneDog iPhone Cleaner for Mac(ios系统清理工具)激活版

Rose

5分钟了解 Golang 的快速编译

俞凡

golang

跨越鸿沟:PAI-DSW 支持动态数据挂载新体验

阿里云大数据AI技术

人工智能 Fluid PAI DSW 动态挂载

去哪儿Kube DNS架构优化

Qunar技术沙龙

后端 优化 DNS 后端技术

DeepSeek v3为何爆火?如何用其集成Milvus搭建RAG?

Zilliz

Milvus 大模型 rag DeepSeek v3

JVM实战—OOM的原因和模拟以及案例

不在线第一只蜗牛

Python JVM

罗永浩 AI 智能助理 J1 Assistant 上线;字节开源 LatentSync ,精准控制唇形同步丨 RTE 开发者日报

声网

CAD通过可变块创建不同尺寸零件的方法

极客天地

WIFI网络扫描工具AirRadar for Mac 激活版

小玖_苹果Mac软件

智算云领导者!

天翼云开发者社区

云计算 天翼云

Mirror for Android TV for Mac(屏幕和声音镜像到Android TV的工具)v2.8.3激活版

Rose

经典游戏: 仙剑奇侠传98柔情篇中文移植版Mac游戏下载

Rose

基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发

阿里巴巴云原生

阿里云 云原生

质量保证的推荐实践_最佳实践_崔康_InfoQ精选文章