热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

如何减少返工工作量?

提高软件开发效率的最有效手段就是一次做对,一次做好,不返工,追求交付零缺陷的目标。“对”就是没有错误,符合需求,“好”就是没有坏味道,易于修改。“做对”保证了产品的外部质量,“做好”保证了产品

    提高软件开发效率的最有效手段就是一次做对,一次做好,不返工,追求交付零缺陷的目标。“对”就是没有错误,符合需求,“好”就是没有坏味道,易于修改。“做对”保证了产品的外部质量,“做好”保证了产品的内部质量,这样就可以减少软件缺陷、需求变更带来的返工。返工可能发生在生命周期的早期,也可能发生在后期,或者是交付以后,缺陷越早发现,越早解决,返工的工作量越少。有哪些手段可以保证不犯错,少犯错,及时纠错呢?


1需求阶段

     需求调研:

           要访谈客户、最终用户与间接用户;

           要访谈高层、中层与底层的用户;

           要准备好问题单;

           采用原型法启发客户需求;

     需求描述:

           用户故事描述用户需求;

           采用用例法描述功能需求;

           当用户无法提出非功能性需求时,定义定义非功能性需求的缺省值;

     需求确认:

           采用多种方法确认需求;

           采用需求交底、逆向培训、现场客户等方法确保需求沟通的一致性;

           建立需求沟通的平台,确保需求的沟通能传递到每个相关人员;

           在需求阶段开始编写系统测试用例,验证需求的可测试性;

           建立需求与设计、代码、测试用例之间的跟踪关系;

           用户、开发、测试人员参与需求的评审;

     需求变更:

           基于RTM进行需求变更的影响分析;

           需求的变更要通知到相关人员;

           对于需求的变更采用结对修改的方法;

     人员:

           对需求人员进行需求工程的专题培训,要求需求人员掌握需求工程的基本知识,具备基本的技能。



2设计阶段

    需求理解:

           和需求人员对需求的理解达成一致;

           对需求的拆分、细化,功能的设计要得到需求人员的认可;

     设计:

           要建立设计到需求的跟踪矩阵,确保设计的完备性;

           采用结对设计的方法确保设计的正确性;

           需求、设计、开发人员对设计进行技术评审,识别设计中的缺陷;

           对设计人员进行培训、上岗资格认证,要求设计人员掌握架构设计、设计原则、设计模式、数据库设计、界面设计的方法;

           建立评价设计优劣的准则,包括类的设计、算法设计、数据库设计、界面设计的准则;

           对于非功能性需求给出缺省的解决方案;

           在设计中采用设计模式提高设计的合理性;

           对于界面的设计尽早进行确认;

           接口测试要早设计、早实现、早测试;



3编码阶段

     和需求人员对需求的理解达成一致;

     和设计人员对设计的理解达成一致;

     在写代码之前先做了详细设计,对详细设计做了评审;

     结对编程;

     测试驱动的开发;

     按照编码规范进行编码;

     代码的静态检查;

     代码评审;

     持续集成;

     代码重构;

     编码人员要掌握常用的设计模式、重构的手法;



4测试阶段

     测试人员参与需求评审,需求人员参与测试用例的评审;

     建立测试用例与需求之间的映射关系,追求需求场景的覆盖率;

     集成测试用例覆盖每一个接口的输入参数的每种等价类;

     定义用例编写规范:

           ? 用例应覆盖正常操作、异常操作、边界条件

           ? 用例应该覆盖客户操作场景的各种等价类

           ? 每个用例应该详细描述出输入、操作步骤、期望的输出

           ? 区分不同的专项测试制定用例编写规范

           ? 坚持执行失效模式分析

     定义质量目标,并努力达成质量目标:

           ? 每千行代码的平均测试工作量;

           ? 每千行代码测试用例的个数;

           ? 每千行代码发现的缺陷个数;

     在客户各种可能的使用环境中进行测试,专人负责测试环境的维护;

     针对非功能需求进行测试策略的设计;

     先设计测试要点再设计测试用例;

     非功能性需求要尽早测试;

     先进行冒烟测试,再执行正式的测试;

     定义测试结束的量化标准,定义软件交付的最低标准;

     针对共性的需求建立复用用例库,每次测试时从中挑选用例,然后再补充完善用例;

     尽可能模拟客户的环境进行软件的测试,应进行测试环境的组合设计。




推荐阅读
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • 本文详细介绍了Java的安装、配置、运行流程以及有效的学习方法,旨在帮助初学者快速上手Java编程。 ... [详细]
  • 传送门A-Registration#include#definelllonglongusingnamespacestd;chars[15],t[15]; ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • Python数据类型6 字典
    字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包 ... [详细]
  • 字节跳动夏季招聘面试经验分享
    本文详细记录了字节跳动夏季招聘的面试经历,涵盖了一、二、三轮面试的技术问题及项目讨论,旨在为准备类似面试的求职者提供参考。 ... [详细]
  • 收割机|篇幅_国内最牛逼的笔记,不接受反驳!!
    收割机|篇幅_国内最牛逼的笔记,不接受反驳!! ... [详细]
  • 车载T-BOX智能网联终端的设计与实现
    本文介绍了一款基于瑞萨RH850微控制器、TICC2640R2F蓝牙微控制器和高通MDM9628处理器的T-BOX车载终端的设计。该终端通过集成CAN总线、GPS定位、数据加密、蓝牙通信和LTE无线数据传输技术,实现了车辆信息的高效采集与云端通信,支持远程车辆控制和诊断等功能。 ... [详细]
  • 本文探讨了现代分布式架构的多样性,包括高并发、多活数据中心、容器化、微服务、高可用性和弹性架构等,并介绍了与这些架构相关的重要管理技术,如DevOps、应用监控和自动化运维。文章还深入分析了分布式系统的核心概念、主要用途及类型,同时对比了单体应用与分布式服务化的优缺点。 ... [详细]
  • 本文详细介绍了会计学专业的课程设置,包括基础课程、核心课程及选修课程,旨在为学生提供全面的学习指南,帮助他们更好地规划学业。 ... [详细]
  • 深入解析Spring Boot自动配置机制
    本文旨在深入探讨Spring Boot的自动配置机制,特别是如何利用配置文件进行有效的设置。通过实例分析,如Http编码自动配置,我们将揭示配置项的具体作用及其背后的实现逻辑。 ... [详细]
  • Spring Cloud学习指南:深入理解微服务架构
    本文介绍了微服务架构的基本概念及其在Spring Cloud中的实现。讨论了微服务架构的主要优势,如简化开发和维护、快速启动、灵活的技术栈选择以及按需扩展的能力。同时,也探讨了微服务架构面临的挑战,包括较高的运维要求、分布式系统的复杂性、接口调整的成本等问题。最后,文章提出了实施微服务时应遵循的设计原则。 ... [详细]
  • 本文介绍了如何利用Java中的URLConnection类来实现基本的网络爬虫功能,包括向目标网站发送请求、接收HTML响应、解析HTML以提取所需信息,并处理可能存在的递归爬取需求。 ... [详细]
  • 深入解析IGMP各版本特性及其演进
    本文详细探讨了Internet组管理协议(IGMP)的不同版本,包括IGMPv1的基础功能、IGMPv2的增强特性和IGMPv3的重要改进。特别分析了IGMPv3如何支持特定源组播(SSM)模型,并介绍了各版本之间的主要差异。 ... [详细]
  • 技术总监的角色定位与代码实践
    关于技术总监是否应当参与代码编写,这一议题始终伴随着技术行业的成长而引发广泛的讨论。本文旨在从多个角度探讨技术总监参与代码编写的必要性和影响因素,包括公司背景、发展阶段及团队规模等。 ... [详细]
author-avatar
M-When
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有