如何提高产品质量-开发维度

最近,我们的产品上线了,上线之后,稳定是最重要的,但是,出现了几次bug,都是不应该犯的错误,所以,避免bug特别是重大bug出现,提高产品质量,非常迫切。

产品开发过程

产品开发过程:需求分析、设计、编码、单元测试、集成测试、功能测试、Beta测试和发布。在工程师开发之前,策划或产品提过来的需求、策划的配置文件或者后期的测试,都可能影响产品质量,但是,本文侧重于从开发者角度谈提高产品质量。先分享一张来自《Code Complete》的插图。

可以看到,随着项目规模变大,架构、设计和集成测试、系统测试需要的时间会更多,而编码和开发者测试的时间更少。因此,提高效率最为明显的方法是提高产品质量, 减少测试、调试和修改所需时间。所以,设计、测试和编码同样重要,要分配更多时间,编码完 != 工作完成。

测试的重要

在很多大一些的IT公司,比如微软,开发职位叫Software Development Engineer,SDE,软件开发工程师;测试职位叫Software Development Engineer in Test,SDET,软件测试开发工程师,可见测试人员本质还是开发工程师。这有别于我们在公司里常常见到的QA,我是做游戏的,我见到的QA都是打开游 戏,然后点点点,从表现上测试功能是否正常,这样测试是无法全面测试的,这也难怪在很多公司里QA比开发团队地位低。我觉得,对于测试这个职位,要做好, 是很难的。他要能读懂策划文档和开发文档,从源头上开始着手。如果白盒测试,要能看懂别人写的代码;如果黑盒测试,要和开发人员多沟通,画出来实现的流程 图,并且分析网络协议;然后,设计完备的测试用例。如果不根据需求、设计和实现,设计完备的测试流程,而只是操作一下试试功能是否正常,很多隐藏的bug 是测试不出来的。

以微软和google为代表的保证产品质量的做法,都有道理,而且都是成功的。但是,我个人更倾向于full stack developer,第一,招很多SDET对大部分公司都不现实,合格的SDET薪资不会比SDE低;第二,我认为开发人员要对自己的开发的内容负责,主 动的想办法提高产品质量,而不是被动的等测试。

产品质量目标

评估产品质量,常用的是千行代码缺陷率,以下是查到的一些业界的千行代码缺陷率数据。典型的统计表明,在开发阶段,平均50~60个,交付后 15~18个;微软内部测试的产品10-20个,正式发布产品0.5个;某外包公司,A级≤ 0.5个,B级≤1个,C级≤5个;航天飞机的软件,0个/50万行。缺陷率做到平均水平的1/10是很少见的,而如果10倍以上,产品可能永远也不会完 工。

集成测试

跟性能瓶颈一样,80%的错误往往出现在20%的代码中。大部分错误都是低级错误,比如,对需求或设计的误解、书写错误、赋值语句、边界错误或循环错误。大多数错误是容易改正的。另外,warning是很多错误的根源,所以工程里要禁止warning。

发现错误

主要通过检查和测试。检查包括:需求检查、设计检查、代码详查,测试包括:单元测试、集成测试、系统测试等。

有统计数据表明:单元测试的平均错误检出率是25%,集成测试35%,小规模Beta测试35%,系统测试45%。而对设计和代码进行详查的错误检出率分别是55%和60%。

检查

阅读代码要比测试平均每小时多发现80%多的错误,代码检查和测试所获得的收效之比为8:1。这是因为,错误越早发现,解决成本越低。

检查方法:协同编程,详查需求、设计、代码。不仅仅是检查,要提前思考怎么做?带着思考检查。

单元测试

1. 基于结构的测试。测试用例要覆盖每一条控制语句,if for while and or switch case等。

2. 数据流测试,避免重复初始化、重复销毁、定义不使用、未初始化使用等情况,检测数据流变化。

3. 错误猜测:

1). 边界分析,>=与>的区别,null、size是0的情况,比如测试小于MAX,三种边界情况MAX,10000个好友/道具的时候会不会导致游戏卡死?

2). 复合边界,int add(int a, int b),a和b都小于2^31,但是,如果a和b都很大,它们的和会不会出界?

3). 坏数据,太小/大的数据,未初始化的数据,错误类型的数据,错误长度的数据等。

4). 向前兼容和向后兼容。比如,游戏最新版本是2.5,但是有的玩家一直不更新,还是1.0,要兼容这些玩家。

集成测试

在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。

执行方案

综合考,制定“详查+单元测试+集成测试+系统测试”的方案,来提高我们的产品质量。有些方法,比如协同编程、净室开发,虽然很好,但是对于我们的团队来说,执行起来太难。

详查:先自己详查,从需求开始,然后是设计和编码;然后,团队中的小伙伴互查。关于详查,有两点需要注意:1. 检查前,要先制定代码规范,让开发人员不把精力耗在代码规范的争执上。2. 详查结果不作为员工表现的考核标准,考核应该基于最终的产品。

单元测试:重点是理清流程,针对每个流程都测试到。集成测试:把单元测试的功能组合起来测试,侧重于模块的整体性。系统测试:有点像QA的普遍工作,从功能上测试,各个需求点是否都正常。

执行:我首先制定了代码规范,并给大家讲解,然后征求大家的意见统一。然后,写了一份本文章的内部版本,并给大家详细讲解(为了让小伙伴们更容易,内 部版本细节比较丰富,举了一些例子,写的比较啰嗦,稍微精简、加工之后,形成了这篇blog)。另外,需要注意,详查结果不要作为员工表现的考核标准,考 核应该基于最终的产品。

原文地址:https://www.cnblogs.com/xjmnet/p/9653016.html

时间: 2024-10-15 14:34:02

如何提高产品质量-开发维度的相关文章

谈如何提高产品质量

最近,我们的产品上线了,上线之后,稳定是最重要的,但是,出现了几次bug,都是不应该犯的错误,所以,避免bug特别是重大bug出现,提高产品质量,非常迫切.为此,我花了几天时间,翻一些资料来系统地学习,此文是学习的总结. 产品开发过程 产品开发过程:需求分析.设计.编码.单元测试.集成测试.功能测试.Beta测试和发布.在工程师开发之前,策划或产品提过来的需求.策划的配置文件或者后期的测试,都可能影响产品质量,但是,本文侧重于从开发者角度谈提高产品质量.先分享一张来自<Code Complete

浅谈如何提高产品质量?

对于一个企业而言,能否很好的生存下去,有四个核心指标,产品质量Q.服务质量S.产品价格P.响应时间T.在我看来,属于技术范畴的2个最核心的指标是:一是产品质量.二是响应时间,提高企业核心竞争力要以提高产品质量为目标,质量是企业的命脉所在,怎样更好的保障产品质量,为一线的销售保驾护航好产品,就显得尤为重要了.作为一名员工,我们和企业同呼吸,共命运,加强产品质量的意识,提高产品质量也就显得日益迫切.那么到底如何做才能提高产品质量? 就我个人而言,我是一名软件测试工程师,那么我应该在日常的工作中做出怎

iOS开发——实用篇&amp;提高iOS开发效率的方法和工具

提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时在使用AppCode等其他的IDE,在这里我主要介绍Xcode中提升开发效率的方法. 1.善用快捷键 快捷键是开发中必不可少的,当你善于使用快捷键的时候,十指在键盘上飞舞,那画面太美,我不敢想象. 常用快捷键操作 2.常用代码片段 开发中有一些常用的代码,可以放到代码片段中,然后下次你就可以使用快捷

itoo-快捷部署脚本--提高部署开发效率

 本次是第一次使用批处理文件来作为批量操作的工具,代替了人工的手动的复制,粘贴的方式,使用脚本实现了项目的启动.自动化部署,打开项目根目录.等等,提高了开发和调试的效率. 说明: 当前版本:1.0.0 作    者:李社河 ========================================== 使用说明: 1.直接运行Start__Me.bat即可 注意事项: 1.请在使用本脚本前,配置JBOSS_HOME和PROJ_HOME环境变量 (1)变量名:JBOSS_HOME    

转:常用的几个提高iOS开发效率的开源类库及工具

常用的几个提高iOS开发效率的开源类库及工具 iOS开发者 : 开发几个常用的开源类库及下载地址: 算上这个连接:http://wenku.baidu.com/view/bbeb0091dd88d0d233d46a00.html 1.json json编码解码2.GTMBase64 base64编码解码3.TouchXML xml解析4.SFHFKeychainUtils 安全保存用户密码到keychain中 5.MBProgressHUD 很棒的一个加载等待特效框架6.ASIHTTPReque

iOS——学习网址收集+如何提高iOS开发技能

1 一个比系统自带的终端好用的软件:http://www.iterm2.com 2 学习和遇到技术问题可以去的网站: CocoaChina      http://developer.cocoachina.com/code/index?key_rules=21  cocoaChina开发者代码库 Code4app       cede4App网站http://code4app.com/snippets  可以下载源码,回答技术问题 github 上传和共享源代码(有) www.raywender

提高eclipse使用效率(二) 提高Android开发效率的小技巧

2013-09-04 22:49:33cnblogs.com-sw926-点击数:214 XML文件的代码提示 adt中也有xml文件的代码提示,为了让提示来的更加猛烈,我们还要设置一下 打开eclipse - Window - Preferences,在右边的目录树中切换到XML - XML Files - Editor - Content Assist,是不是很熟悉,没错,就是Content Assist 接下来就简单了,延迟设为50ms,提示字母把能填的都填上去,设置完之后可以试一下.输入

提高你开发效率的十五个 Visual Studio 使用技巧

提高你开发效率的十五个 Visual Studio 使用技巧 相信做开发的没有不重视效率的.开发C#的都知道,我们很依赖VS,或者说,我们很感谢VS.能够对一个IDE产生依赖,说明这个IDE确实 有它的独特之处.无容置疑,VS是一个非常强大的IDE,它支持多语言编辑.支持C#,VB,C/C++,HTML......它拥有强大的调试编译功能.它让我们不用去记住那些安装,环境变量设置,服务器设置,编译的繁琐过程.高度集成化.凡事有利有弊,在敏捷开发盛行的时代,VS是否值得我们使用是 无容置疑的.但是

使用注释提高iOS开发效率

文章目录 新手在开始参与一个开发项目的时候,会把大部分的时间耗费在阅读项目的需求文档.开发文档和代码,一篇好的需求文档和开发文档会帮助新手很快的理解项目的目标和进度,而新手对于代码的阅读会先从代码的注释开始.拥有良好注释的代码可以省去团队其他的开发者好多时间,不至于让其他参与者去一行一行的阅读代码,去不断地加断点查看代码地跳转逻辑,接下来我们就谈谈iOS开发中使用的一些注释. #pragma mark 确切地说,这是Xcode编译器特定得编译命令,它的作用就是在代码地编辑器中,将顶部的方法函数弹