• 0
  • 0
分享
  • 如何做好软件项目的质量管理?
  • 北极 2020-12-09 16:50:16 字数 2874 阅读 1291 收藏 0

       保证软件质量,是一个贯穿整个软件生存周期的重要问题。在早期,由于忽视了质量管理,导致软件项目管理的严重问题,以至于在软件开发中出现软件危机。重视软件质量管理,规范软件质量管理体系,对整个软件项目管理起到非常重用的促进作用。本文主要通过对管理策略的介绍,来达到提高软件质量的目的。

       在软件开发团队中,由于质量被视为软件产品的生命。那么什么是软件质量?软件质量:与软件产品满足明确或隐含需求的能力有关的特征和特征的总和,它反映了三个方面的问题:

       1、能满足客户需求的特性之全体;

       2、利用各种质量标准体系,指导软件开发人员开发软件;

       3、是否满足用户隐含需求。软件质量管理的目的是建立对项目的软件产品质量的定量理解,和实现特定的质量目标;着重于确定软件产品的质量目标、制定达到这些目标的计划,并监控及调整软件计划、软件工作产品、活动及质量目标以满足顾客及最终用户对高质量产品的需要及期望。

       一、软件质量管理的现状

       在现实软件开发过程中,许多软件产品却时常陷入质量低下、甚至软件不符合用户需求的旋涡。究其根源,有以下几个方面:

       1、软件质量保证技术(审查、复审和测试)没有贯穿到整个软件开发全过程中去。

       2、在于这些软件产品对其质量内涵的把握,仅仅停留在减少软件运行错误、加强软件测试,避免软件缺陷的一般性层面,而对整个软件开发生命周期的全过程质量管理,缺乏总体架构。

       3、测试管理的一些误区也会导致严重的质量问题。没有按照测试原则进行尽早测试、连续测试与自动化测试。是测试本省变得的形式化。

       4、质量是全过程的,不仅是测试。质量管理者应该将质量控制与保证着眼于整个软件开发生存周期内。而事实上,质量管理者仅仅认为通过严格的测试就可以保证软件质量。

       二、软件质量保证

       1、在软件开发中,可以采用以下措施保证软件的质量;

       2、审查。在生命周期每个阶段结束之前,都要使用标准对该阶段生产的软件配置进行严格的技术审查;

       3、复查和管理复审。复查是检查已有的材料,以断定某阶段的工作是否能够开始或继续;管理复审是向开发组织或使用部门的管理人员,提供有关项目的总体状况、成本和进度等方面的情况,以便他们从管理角度对开发工作进行审查。

       4、测试。通过测试计划、测试过程与测试结果对软件质量进行保证;

       5、软件质量保证活动。以上各项活动内容都须写入质量保证计划,并由质量保证小组监督实施。由此可见,质量保证既是技术活动,也是管理活动;

       6、软件评审。评审是以提高软件质量为目的的技术活动。要通过对软件的规格说明、可靠性、性能实现、可修改性、可扩充性、可移植性、可测试性、可复用性以及评审的实施等方面对软件项目做好严格的评审,以确保软件质量;

       7、采用质量保证标准。质量标准用于实现质量管理的组织结构、责任、规程、过程和资源。采用ISO质量保证模型。可以用于质量计划、质量控制、质量保证和质量改经所需的组织结构、规程、过程和资源;

       8、结构化的软件测试。经过严格的软件测试,尽可能找出软件计划、总体设计、详细设计、软件编码的错误,并加以纠正,才能提高软件的质量。测试要覆盖整个软件的生存周期,而不限于程序的编码阶段。

       9、软件维护。采用结构化维护,完整的软件配置为基础,通过完善性维护、纠错性维护、适应性维护及预防性维护提高软件质量。

       三、质量管理实施

       1、项目进度的质量保证

       项目进度是项目进行是否顺利的最直观表现。显然在项目开始之前,项目开发计划是必须的。如果项目开发计划的制定的是完全合理的,那项目进度也就真正表达了项目与最终的交付使用之间的距离,然而要制定完全合理的项目开发计划几乎不太可能。可见要保证项目进度,首先要保证项目开发计划尽可能合理。

       2、项目开发各阶段的质量保证

       2.1需求分析

       需求分析是开发人员对系统需要做什么的定义过程。从系统分析的经验来看,这个过程往往是个循序渐进的过程,一次性对系统形成完整的认识是困难的。只有不断地和客户领域专家进行交流确认,方能逐步明了用户的需求。从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。

       2.2系统设计

       优良的体系结构应当具备可扩展性和可配置性,而好的体系结构则需要好的设计方法,自然设计选型成为了系统设计首要的工作,究竟是采用哪种设计方法好呢?

       对于设计选型不能一概而论,需要针对项目的结构、项目的特征和用户的需求来分析,同样也要考虑到参与项目小组成员的素质,如果其中大部分都没有从事过面向对象的设计且项目进对紧迫,这样没有多余的时间来培训小组成员来掌握面向对象的设计方法,尽管众所周知面向对象设计方法的优势,我们还是不如采用面向过程的方式(除用户指定开发设计方式外)可以减少项目承担的技术风险。

       2.3实现

       实现也就是编码过程。这里不仅包括代码的产生,同时也包括测试用例的产生。针对上一阶段提供详细设计,程序员开始编码并且调试程序,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入配置库。同时程序员调试完程序提交测试人员进行程序正确性检测。

       2.4文档管理

       文档维护主要是配置管理小组的工作。

       如何保证文档的全面性,使其真正为项目的进度提供保证,又不因为文档的写作而耽误项目的进度,这仍然是一个比较难解决的问题。解决此问题,其核心仍然是个“度”的问题。

       配置管理小组真正核心的工作是对文档的组织管理。根据文档的不同,文档的来源也不同,有些是通过质量保证小组经过复审之后转交给配置管理小组,有些则会直接从文档的出处到达配置管理小组。文档的管理是一个非常烦琐的工作,但是长远来看它不仅使项目的开发对单个主要人员的依赖减少,从而减少人员流动给项目的带来的风险,更重要的是在项目进行到后百分之十的时候起到拉动项目的作用。

       总之,建立一个完善的项目管理体系和项目质量管理标准,对软件项目的管理与质量有着重要的意义和决定性。合理并且有效地运用项目管理软件,不仅可以让我们工作井然有序地进行,还能最大程度保证项目目标的达成。我推荐使用CORNERSTONE,它提供了包括任务/需求/测试管理、迭代规划、缺陷追踪、报表统计、团队协作、WIKI、共享文件和日历等功能模块,现在申请20人以下团队即可免费使用。


作者:笑看

原文链接:https://zhuanlan.zhihu.com/p/142823536

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 提到大数据,很多人首先联想到的是每天要和一堆数据相处,数学必须要很好,当然,大数据的学习确实需要一定的数学基础,但是也有一定的侧重点。大数据有很多细分方向,如大数据开发、大数据分析、大数据挖掘、大数据运维等,不同方向对数学的要求是不同的,但是如果想更好的学习大数据,还是需要有一定的数学基础。1. 概率论与数理统计这部分与大数据技术开发的关系非常密切,条件概率、独立性等基本概念、随机变量及其分布、多维随机变量及其分布、方差分析及回归分析、随机过程(特别是Markov)、参数估计、Bayes理论等在大数据建模、挖掘中就很重要。大数据具有天然的高维特征,在高维空间中进行数据模型的设计分析就需要一定的...
            0 0 815
            分享
          •   1 一个项目用敏捷管理还是瀑布式管理?  这可能是项目管理专业人士也会有疑惑的问题,早期的PMP认证还是讲五大过程组,讲瀑布式管理,但这两年的的pmp认证加入了更多的敏捷管理的部分。那我们项目到底是用敏捷还是瀑布式管理?  这取决于项目的特征?  学过PMP的的都知道,对于那种传统的、外部环境相对稳定、外部变更较少的项目来说,使用传统的瀑布式管理是可以的。对于需要快速响应市场变化,聚焦客户价值(在初期客户并不一定清楚项目价值),更快更准地发布可以使用的产品,那么使用敏捷管理显然更合适。然后瀑布和敏捷并非互斥的,这两者是可以随着项目的情况,进行一定的融合。 比如大瀑布里的小敏捷,大敏捷里的小...
            0 0 955
            分享
          •   在软件开发的世界中,保证代码质量和稳定性是至关重要的任务。而自动化测试作为现代开发流程的重要组成部分,为开发团队提供了一种有效的方式来确保代码的质量、减少错误,并提高整体的可维护性。在本文中,我们将深入探讨自动化测试的优势、类型以及实施方法。  什么是自动化测试?  自动化测试是通过使用脚本和自动化工具,对软件应用的不同部分进行自动化的测试和验证。与手动测试相比,自动化测试更快速、可重复且能够全天候运行,从而大大提高了开发过程中的效率和代码质量。  自动化测试的优势  减少人为错误: 人为的疏忽和繁琐的重复操作可能导致错误。自动化测试能够在相同的环境中执行相同的测试用例,从而减少了人为错误...
            0 0 727
            分享
          • Q #1) MySQL 事务是原子的吗?答:是的,事务是通过概念在 MySQL 中实现原子性的。atomic 的简单含义是——ALL 或 NONE 和 MySQL 事务完全支持这一点。在这里,如果没有错误,那么所有的语句都会被执行。但是,如果出现任何差异或错误,则不会执行事务中的任何语句。Q #2) 如何回滚 MySQL 事务?答:事务可以提交或回滚/恢复。要恢复事务的更改,您只需在执行 COMMIT 之前运行 ROLLBACK 命令。例如,参考下面的事务,我们使用 ROLLBACK 来恢复事务期间所做的更改。START TRANSACTION; --statement1 ...
            0 0 1795
            分享
          •   苹果可能计划停产硅橡胶和氟橡胶配件,代之以更环保的下一代材料。此举预计将包括带 MagSafe 的 iPhone 硅胶套、运动手环、Solo Loop 和 AirTag Loop 等配件。该传言来自苹果设备收集者和泄密者"Kosutami",他此前曾分享过有关 iPhone 15 的编织 USB-C 数据线、MagSafe 充电器和不同颜色选择的 AirPods 等各种原型机的信息。  人们普遍预计,在推出 iPhone15 系列之后,苹果将停产皮质 iPhone 保护套,取而代之的是用一种名为"FineWoven"的材料制成的配件。硅胶配件的停产预...
            0 0 1115
            分享
      • 51testing软件测试圈微信