当老板问:软件质量怎么样,能上线发布吗?阁下该如何应对

news2024/11/19 17:47:56

说在前面

每当你和团队完成了一款软件产品的开发,是否很容易被问到这样一个问题:质量怎么样?或者是能上线发布吗?如果你是团队的负责人,你会如何回答这样的问题呢?对软件质量的评判标准,不见得所有人都是同样的看法。质量要求的标准可能各不相同。本文聊聊软件质量的事情。

谈谈质量评估的依据

重温了下《软件测试》(美,Ron Patton著)的部分章节,那位佛系年长教授给我的印象至今依然十分深刻,他当时说:软件测试是一种非常有意思的事情。现在想来他老人家是通透明了了。针对软件中的问题,本文不在名字上过于计较,统称“缺陷”。算作读后感吧,加入自己的理解,我总结了一些要点。

高标准没有错,这是一种理想和信念

软件质量不能出任何问题,你要找出所有的缺陷,并修复所有的问题。上线后不允许出现任何重大问题。

上述要求有错吗?合理吗?当然没问题,必须有这种要求的,这是一个完美的目标,是所有团队梦想追求的结果,这个方向是没有错的。有些项目甚至是苛刻的要求,我国最近接连两次的卫星发射失败,就是惨痛的教训。

但终归要认清现实

你无法找出所有的缺陷。你可以说自己找到了一个缺陷,但你不能说缺陷不存在了。程序员买苹果的段子,测试计算器软件的例子,等等......直接说明了程序设计工作的复杂性,这也直接导致了针对软件产品做“完全测试”几乎变成了一种空想。你所运用的任何测试方法,都会存在不同程度的取舍,比如删除一些重复的、无必要的用例等。出现了取舍,就代表着引入了风险,那种无法发现所有缺陷的一个风险。

你无法无限期的测下去。每个项目都有一个最优的测试量。试图过度的投入,会导致项目成本大幅增加。大多数情况下,缺陷数量达到一定程度后,不会再发生显著变化。我们的目标应该是找准最优的测试量。如果你的项目真的不计时间,不计成本,那就可以一直测试。但任何产品的研发,都是有周期要求的。

任何人都没有发现的缺陷,算不算缺陷?

如果这个问题很难回答,那我们就思考下另外一个问题:一棵树倒在森林中,如果没有人听见也没有人看见,那它发出声音了吗?答案显而易见了。我们可以称呼这种无人发现、也没有现身的缺陷,叫潜在缺陷

真的不能开发出无缺陷的代码吗?

  • 程序员是一个个非常主观的人,他心情可能不好或能力不行,写了缺陷可能不自知。
  • 程序设计其实是主观题,答案不唯一,很难有满分。
  • 就算刚开始真的做的很棒,无可挑剔,但耐不住变化太多。唯一不变的就是变化,这句话已经不像是在开玩笑了。
  • 有些缺陷可能让你觉得无所谓,不值得。但他有时可能只是表面现象,真实的问题会让你如坐针毡。

缺陷没有清零,就是质量欠佳吗?可以上线吗?

并非所有的软件缺陷都要修复,比如这些:

  • 不算真正的缺陷;
  • 修复的风险太大的;
  • 不值得修复的;
  • 没有足够时间修复的,交付日期逼近;
  • 其他一些原因,被认同可以不改的;

这些都要根据各项目的管理制度和规范,寻求团队自己的商业风险决策。之所以称风险,想必也是只有时间才能验证这样的决策是对的,还是错的。这是普遍的一个现象,会让团队或者决策层甚至产生非常不适的体验,这时往往需要团队自上而下的一致团结。除了团结,测试相关的流程和数据,是要严格考察的。

很多团队都会有这样的要求,在交付或上线前,缺陷必须清零。但往往那也只是表面上的清零,往往那些遗留的真正问题,并没有得到解决,只是以另一种形式消失不见了。这不是一件值得高兴的事情。如果你的团队做到了真正的清零,那真的很优秀,很难得。但你也要对潜在缺陷有一定的心理准备和团队级别的应对处置方案。

最后还有一个陷阱,不得不提:

产品说明书或者叫产品文档,就是真正的需求吗?它一定都是正确的吗?

  • 文档里是否就是需求,你一定有渠道或办法去确认!
  • 需求是正确的吗?你一定有方法或思路去验证!

尝试用正确的需求,去做产品研发。坚持下去,你一定会受益匪浅。

尽可能降低出错的概率

虽然不可能发现所有缺陷,但我们仍然可以去不断探索各种技术

和方法,去尽可能的提前找出错误,甚至避免错误,降低生产环境出错的概率。

  • 创造好的环境和空间,让你的程序员越来越靠谱;
  • 养成问题复盘和分享的习惯,让团队持续成长;
  • 让每个人都明白:逻辑严谨的重要性和必要性;
  • 让每个人都明白:何时有必要发起评审;
  • 引入必要的工作流,提早发现问题;
  • 引入专业的测试团队,专职服务于产品研发;
  • 提前验收,尽早验收,多次验收;
  • 能想到的测试方法和范围,尽可能做(功能、性能、压力、疲劳、容错、安全等等);
  • 尽可能找有测试天分或责任心的测试工程师;
  • 越早结对代码评审越好;
  • 保障最低限度的同行代码评审;
  • 了解行业动态,同行交流,持续完善方法论,形成良性反馈闭环。

 正在做测试的朋友可以进来交流,群里给大家整理了大量学习资料和面试题项目简历等等....

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/653905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Airtest】UI自动化测试的数据分离实践

目录 前言 1. 示例介绍 2. 读取Excel单元格里的数据 1)安装 xlrd 第三方库 2)读取表格数据存储到列表中 3)封装成读取控件信息的函数 3. 处理控件信息并实现控件操作 小结 前言 在UI自动化测试中,测试数据的管理和组织是…

Spring-Retry(重试机制)

Spring-Retry(重试机制) 在实际工作中,重处理是一个非常常见的场景,比如: 发送消息失败。 调用远程服务失败。 争抢锁失败。 这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try…

Redis入门 - 5种基本数据类型

原文首更地址,阅读效果更佳! Redis入门 - 5种基本数据类型 | CoderMast编程桅杆https://www.codermast.com/database/redis/five-base-datatype.html 说明 在我们平常的业务中基本只会使用到Redis的基本数据类型(String、List、Hash、Set、…

重新学树结构

树 图一 图二 相关术语 前驱:某结点上一层结点,图中H结点的前驱结点是F后继:某结点紧跟的后面的结点,图中F结点的后继是G、H、I三个结点根结点:非空树没有前驱结点的结点,图中的R结点结点的度&#x…

019+limou+C语言预处理

0.前言 您好,这里是limou3434的一篇博客,感兴趣您可以看看我的其他博文系列。本次我主要给您带来了C语言有关预处理的知识。 1.宏的深度理解与使用 1.1.数值宏常量 #define PI 3.1415926注意define和#之间是可以留有空格的 1.2.字符宏常量 #includ…

设置论文中的图、表的题注

参考b站:毕业论文图表如何自动编号/word图表自动编号/图表编号自动更新 其中,更新图表序号 视频使用ctrl 设置论文中的图、表的题注 step1:设置章节1.1: 章节设置字体样式,选择标题11.2:章节添加序号1.3 修改序号 和字之间的缩进&…

Linux->线程基本概念

目录 前言: 1. 线程的基本概念 2 线程的优点 3 线程的缺点 4 数据块大小为4KB大小的真正原因 前言: 本篇文章讲解了线程与进程之间的区别和联系,线程的优缺点,还有内存的数据管理与磁盘之间的关系,虚拟内存到内存…

阿里云服务器提供哪些操作系统和软件支持?是否与常用软件兼容?

阿里云服务器提供哪些操作系统和软件支持?是否与常用软件兼容?    阿里云服务器支持的操作系统   为了满足不同用户需求,阿里云服务器(ECS)提供了丰富的操作系统选择。以下是阿里云服务器支持的主要操作系统&#…

Linux 配置MySQL环境(三)

Linux配置MySQL环境 一、下载1. 官网下载MySQL2. 百度网盘快速下载MySQL 二、安装1、通过 Xftp 将 MySQL 安装包拷贝到 Linux2、解压缩3、安装 common、libs、client、server4、初步连接 三、卸载四、常用设置1. 修改 root 用户密码 五、使用新密码登录六、开启远程访问七、开放…

PHP设计模式21-工厂模式的讲解及应用

文章目录 前言基础知识简单工厂模式工厂方法模式抽象工厂模式 详解工厂模式普通的实现更加优雅的实现 总结 前言 本文已收录于PHP全栈系列专栏:PHP快速入门与实战 学会好设计模式,能够对我们的技术水平得到非常大的提升。同时也会让我们的代码写的非常…

OpenCV 笔记_5

文章目录 笔记_5特征点匹配DMatch 存放匹配结果DescriptorMatcher::match 特征点描述子(一对一)匹配DescriptorMatcher::knnMatch 特征点描述子(一对多)匹配DescriptorMatcher::radiusMatch 特征点描述子(一对多&#…

Frontiers in Microbiology:DAP-seq技术在猪苓C2H2转录因子PuCRZ1调控菌丝生长及渗透胁迫耐受性机制研究中的应用

猪苓(Polyporus umbellatus)是一种可食用的蘑菇,也是我国常用的菌类药材之一,至今已有2000多年的药用历史,在《神农本草经》、《本草纲目》、《本草求真》等典籍中均有记载。猪苓具有利尿、抗菌作用,近年来…

SpringBatch从入门到实战(二):HelloWorld

一:HelloWorld 1.1 配置Job、Step、Tasklet Configuration public class HelloWorldJobConfig {Autowiredprivate JobBuilderFactory jobBuilderFactory;Autowiredprivate StepBuilderFactory stepBuilderFactory;Beanpublic Job helloWorldJob() {return jobBuild…

代码随想录算法训练营第五十九天|503.下一个更大元素II 42. 接雨水

目录 LeeCode 503.下一个更大元素II LeeCode 42. 接雨水 暴力解法 优化双指针法 单调栈法 LeeCode 503.下一个更大元素II 503. 下一个更大元素 II - 力扣(LeetCode) 【思路】 相较于前两道题目,这道题目将数组改为循环数组&#x…

python获取度娘热搜数据并保存成Excel

python获取百度热搜数据 一、获取目标、准备工作二、开始编码三、总结 一、获取目标、准备工作 1、获取目标: 本次获取教程目标:某度热搜 2、准备工作 环境python3.xrequestspandas requests跟pandas为本次教程所需的库,requests用于模拟h…

在读博士怎么申请公派访学?

作为在读博士生,申请公派访学是一项重要而有益的经历。下面知识人网将为您介绍一些关于如何申请公派访学的步骤和注意事项。 首先,您需要找到一个合适的公派访学机会。可以通过与导师、教授或其他相关人士进行交流来获取相关信息。还可以参考学术会议、研…

【Linux】linux | 服务响应慢、问题排查 | 带宽问题导致

一、说明 1、项目使用云服务器,服务器配置:5M带宽、4核、32G,1T,CentOS7 2、CPU、内存、磁盘IO都没有达到瓶颈,猜测是带宽问题 3、应用比较多,应用中间件,十几个差不多 4、同时在线人数30 5、已…

继承~~~

1:继承概述,使用继承的好处 1:什么是继承? Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一类建立起父子关系。 public class Student extends People{} Student称为子类&#xff08…

乘势而起:机载航电·显控显示系统仿真

改革开放以来,我国国民经济与科学技术取得了长足的发展,信息化、工业成熟度与自动化程度不断深化,极大地增强了国家的综合实力、在世界范围内显示了大国地位。在当前科技产业的发展和变革的历史性交汇期,“工业4.0”、“中国制造2…

iOS App 上架流程图文教学

在上架App 之前必须先准备好开发者帐号,但申请开发者帐号因法兰克早在之前已经申请好了,故就跳过此步骤,直接从产生凭证到上传App开始讲起。首先,要将自己辛苦写好的App 送审的话,则要依序做完下列几件事情即可。 在开…