当前位置:
文档之家› 如何提高产品开发品质PPT(61张)
如何提高产品开发品质PPT(61张)
如何提高产品开发品质
讲解内容
1 目前开发过程存在的问题 2 产品开发品质保障流程 3 代码重构 4 测试驱动 5 日构建
一、目前开发过程存在的问题
没有完善的品质保障流程 质量低下的代码 不重视测试
产品开发流程现状
登记到JIRA上
开发人员编写代码
编译
客户提出需求或 现场发现bug
修正编译错误
为什么重构(2)
提高代码质量,更易被理解
容易理解的代码可以很容易的维护和做进一步的开发。即使 对写这些代码的程序员本身,容易理解代码也可以帮助容易 地做修改。程序代码也是文档。而代码首先是写给人看的, 让后才是给计算机看的。
重构帮助尽早的发现错(Bugs)
重构是一个code review和反馈的过程。在另一个时段重新 审视自己或别人代码,可以更容易的发现问题和加深对代码 的理解。
质量低下的代码是导致产品品质 不好的根本原因
质量低下的代码体现在以下几个方面: 重复的代码
过长的函数 过大类 过长的参数列表
过度复杂的逻辑判断 数据泥团
没有专职测试人员来进行功能性 测试工作
在目前的开发流程中,开发出来的代码只 经过开发人员自己简单的测试,没有专职的测 试人员来进行详细的功能性测试。这样导致的 结果往往是提交到现场的代码会带有不少BUG, 一定要经过多次返工才能达到较高的品质。而 且这样做的另一个后果是把客户当作测试人员, 会给客户留下产品品质不稳定这样一种非常不 好的客户体验。
重构是一个良好的软件开发习惯。
为什么重构(3)
重构可以提高开发速度
重构对设计和代码的改进,都可以有效的提高开发 速度。好的设计和代码质量实体提高开发速度的关 键。在一个有缺陷的设计和混乱代码基础上的开发, 即使表面上进度较快,但本质是试延后对设计缺陷 的发现和对错误的修改,也就是延后了开发风险, 最终要在开发的后期付出更多的时间和代价。
需求管控
对每个需求进行分级评审,最大程度的降低需 求变更的频度。
所有需求开发前都经过内部评审,对于一些复 杂需求把握更加准确,不至于在开发时候产生 较大偏差。
所有需求的开发工作都有经过客户签字的开发 工作量评估,为商务工作开展创造有利条件。
所有需求都有详细开发计划,片区人员可以安 排相应的测试计划。
为什么重构(1)
改进软件的设计。
程序员对代码所做的为了满足短期利益代码改动, 或再没有完全清楚增个架构下的改动,都很容易是 代码失去它的清晰结构,偏离需求或设计。而这些 改动的积累很容易使代码偏离它原先设计的初衷而 变得不可立即和无法维护。
重构则帮助重新组织代码,重新清晰的体现结构和 进一步改进设计。
有问题 可交付的代码
调试, 肉眼观察 没问题(自认为)
产品品质管理严重缺失
该流程的最终目标和工作重心都是完成产 品功能开发,品质管理严重缺失。产品的开发 质量完全靠开发人员的个人责任心以及工作经 验来保障,缺乏一个稳定可靠的质量保障流程。 这种流程开发出来的产品往往是质量不可靠, 需要经常返工的劣质产品。
我们的目标!
编写出逻辑清晰、结构简洁、扩展性良好、可 测试性高的优秀代码。
强化单元测试工作,提高单元测试覆盖率,搭 建自动单元测试集,通过日构建来持续集成, 对产品质量进行全面控制。
通过严格的产品质量管理流程,强化质量管理 工作,将所有BUG消灭在公司内部。
二、产品开发品质保障流程
福建大计划项目开发品质管理流程
业务细节
组织产品部人员讨 论该需求,形成技
术方案
否 是否能够实现
是
制定开发计划,并评 估工作量,完善需
求确认书
提交开发计划和需 求确认书给现场实
施人员
发现系统BUG
重开JIRA上的问题
否
检查功能否点是
否开发完毕 是
关闭JIRA上的问题
将各功能点或者 BUG提交至JIRA
分配JIRA上的问题 到各个开发人员
全过程管控
所有缺陷和经过评审的需求都必须在JIRA上登 记,否则不予开发。
开发计划通过JIRA进行精确体现。 片区人员可以通过JIRA实时跟踪产品开发进度。 方便后续各类工作量的统计。
三、利用代码重构来提高代码质量
重构(Refactoring):是对软件内部结构的一 种调整,目的是在不改变外部行为的前提下, 提高其可理解性,降低其修改成本
根据JIRA上提交的 功能点进行开发
在JIRA上对问题解 决情况进行提交
否 检查单元测试 是否已经开发 及全面覆盖
是
否 检查功能点是 否开发完毕
是
在JIRA上备注内部 测试通过
根据JIRA上各模块 功能点的完成情 况,统计并考评每 个开发人员和质量
管理人员的绩效
开发质量管理
本开发流程的目标是开发出质量优良的产 品,流程的重心在于质量管控,通过质量保障 人员对产品质量进行全面把关。 对于没有编写单元测试的代码直接打回! 质量保障人员负责进行功能性测试,并对提交 出去的代码负责。 质量保障人员另一个职责是思考如何持续改进 产品质量。
测试人员
技术接口人
开发人员
与客户交流收集客 户需求
整理并提交需求文 档给大计划开发组
和客户商讨 修改需求
JIRA中需要提交的内容: 1、开发人员:开发负责人 2、各功能点完成时间(根据 工作计划) 3、功能点所属模块
不同意
和客户进行需 求确认
同意 同意 客户签署需求确认 书
质量管理
开发负责人
与技术接口人进行 沟通,了解需求的
项目的维护成本远高于开发成本.
何时重构?
添加或者修改功能时一并重构
为了增加一个新的功能或者修改原有的功能,程序 员需要首先读懂现有的代码。
修补错误时一并发过程中不重视单 元测试
单元测试是提高产品品质非常重要的一个方法, 而我们的开发人员往往会忽视这一点。如果没有单元 测试,仅仅依靠测试人员的功能性测试,那么这样的 测试工作量会非常大,每次修改一个功能,可能会影 响到的其他功能都要一一测试,不仅测试时间会非常 长,而且效果也不好,很多细节不一定每次都能测到, 这些都是产生BUG的隐患。同时由于我们业务需求都 非常复杂多变的,没有一个完善自动化测试流程,而 仅仅依靠人工测试,对产品品质的影响是不言而喻的。