软件开发过程中质量如何把控,现在信息化的社会,用到软件的地方是越来越多了,面对这么大的使用量,每年全国上线耗费在软件开发上的费用是非常庞大的一个数字的,那么作为一家软件开发公司的话,在软件开发中,如何把控开发流程和各个环节呢,接下来我们来详细的看看。
一、软件产品质量的特点
软件的质量通常可以从以下六个方面去衡量或者定义:
·功用性(Functionality),即软件是否满足了客户功能要求;
·可靠性(Reliability),即软件是否能够一直在一个稳定的状态上满足可用性;
·可用性(Usability),即衡量用户能够使用软件需要多大的努力;
·效率(Efficiency),即衡量软件正常运行需要耗费多少物理资源;
·可维护性(Maintainability),即衡量对已经完成的软件进行调整需要多大的努力;
·可移植性(Portability),即衡量软件是否能够方便地部署到不同的运行环境中。
由此可见,同其它产品相比,软件产品的质量有其明显的特殊性。
第一,很难制定具体的、数量化的产品质量标准,所以没有相应的国际标推、国家标准或行业标淮。对软件产品而言,无法制定诸如"合格率"、"一次通过率"、"PPM"、"寿命"之类的质量目标。每千行的缺陷数量是通用的度量方法,但缺陷的等级、种类、性质、影响不同,不能说每千行缺陷数量小的软件,一定比该数量大的软件质量更好。至于软件的可扩充性、可维护性、可靠性等也很难量化,不好衡量。软件质量指标的量化手段需要在实践中不断总结。
第二,软件产品质量没有绝对的合格或者不合格的界限,软件不可能做到"零缺陷",对软件的测试不可能穷尽所有情况,有缺陷的软件仍然可以使用。软件产品的不完善可通过维护和升级来解决。
第三,软件产品之间很难进行横向的质量对比,很难说这个产品比那个产品好多少。不同软件之间的质量也无法直接比较,所以没有什么"国际领先"、"国内领先"的提法
第四,满足了用户需求的软件质量,就是好的软件质量。如果软件在技术上很先进,界面很漂亮,功能也很多,但不是用户所需要的,仍不能算软件质量好。客户的要求需双方确认,而且这种需求一开始可能是不完整、不明确的,随着开发的进行不断调整。
第五,软件的类型不同,软件质量的衡量标准的侧重点也不同。例如,对于实时系统而言,效率(Efficiency)会是衡量软件质量的首要因素,对于一些需要软件使用者(用户)与软件本身进行大量交互的系统,对可用性(Usability)就会提出较高的要求。
二、软件产品质量管理的特点
1.软件质量管理应该贯穿软件开发的全过程,而不仅仅是软件本身
软件质量不仅仅是一些测试数据、统计数据、客户满意度调查回函等等,衡量一个软件质量的好坏,应该首先考虑完成该软件生产的整个过程是否达到了一定质量要求。在软件开发实践中,软件质量控制可以依靠流程管理(如缺陷处理过程、开发文档控制管理、发布过程等),严格按软件工程执行来保证质量。例如:
·通过从"用户功能确认书"到"软件详细设计"过程的过程定义、控制和不断改善,确保软件的"功用性";
·通过测试部门的"系统测试"、"回归测试"过程的定义、执行和不断改善,确保软件的"可靠性"和"可用性";
·通过测试部门的"性能测试",确保软件的"效率";
·通过软件架构的设计过程及开发中代码、文档的实现过程,确保软件的"可维护性";
·通过引入适当的编程方法、编程工具和设计思路,确保软件的"可移植性"等等。
2 .对开发文档的评审是产品检验的重要方式
由于软件是在计算机上执行的代码,离开软件的安装、使用说明文档等则寸步难行,所以开发过程中的很多文档资料也作为产品的组成部分,需要像对产品一样进行检验,而对文档资料的评审就构成了产品检验的重要方式。
3 .运用技术手段保证质量
利用多种工具软件进行质量保证的各种工作,如用SVN软件进行配置管理和文档管理、用GIT软件进行代码分支管理。
4 .应用质量管理思想满足顾客需要
·缺陷预防
² 分析过去遇到过的缺陷并采用相应的措施以避免这些类型的缺陷以后再次出现。
² 规划缺陷预防活动。
² 找出并确定引起缺陷的通常原因。
² 对引起缺陷的原因划分优先级并系统地消除。
·紧紧扣住用户需求
用户分为两种顾客(Customer)和使用者(User)。前者是付钱的,而后者才是使用者。两者的要求有时是不同的。所以两方面的要求都要满足。
·采用快速原型法,尽快演示(Demo)给用户并及时获取用户的反馈,根据用户的反馈不断修改软件,而不是全部完工后再最后交给用户。否则,要改的地方可能很多,甚至推翻重来。
·充分设计之后再编码,防止因考虑不周而返工。
·牢牢控制对缺陷的修改。
要用专门的软件(如禅道),记录和跟踪软件缺陷的修复。缺陷跟踪记录包括:发现人、缺陷描述、修复人、修复记录、确认人、确认结论,通过后才关闭该记录。
·充分进行软件的系统测试
软件编码、单元测试、集成测试后,还要进行充分的系统测试、回归测试,待软件稳定、不再出现新的缺陷后,再考虑软件出厂。
· 恰当掌握软件的放行标淮
并不是零缺陷的软件才是质量高的软件,软件零缺陷几乎是不可能的,对遗留的缺陷要充分进行分析,只要能满足用户需求,软件遗留的缺陷可以在今后升级中解决。
三、质量管理与PDCA
在项目质量管理过程中,无论是对整个项目的质量管理,还是对项目的某一个质量问题所进行的管理,都需要经过从质量计划的制定到组织实施的完整过程。即首先要提出目标,也就是质量达到的水平和程度,然后需要根据目标制定计划,这个计划不仅包括目标,而且还包括为实现项目质量目标而需要采取的措施。计划制定后,就需要组织实施。在实施的过程中,需要不断检查,并将检查结果与计划进行比较,根据比较的结果对项目质量状况作出判断。针对质量状况分析原因并进行处理。这个过程可归纳为PDCA循环。这里的P表示计划(Plan)、D表示实施(Do)、C表示检查(Check)、A表示处理(Action)。这是由美国著名管理专家戴明博士首先提出的,所以也称为“戴明环”。
PDCA是一个不断循环的过程,也是一个阶梯式上升的过程。每一次PDCA循环的最后阶段,都需要总结经验和教训,研究改进和提高的措施,制定新的实施标准,并按照新的措施和标准组织实施,使下一个PDCA循环在新的基础上转动,从而达到更高的水平,使项目质量总是处于上升的趋势。即每经过一次PDCA循环,质量就能提高一步;不断循环,质量就能不断提高和上升。
我觉得,在我们平时的工作中,一定要遵循PDCA环,而这个过程的重点就是持续改进。
1、 当我们发现了工作中存在某些问题的时候,我们首先需要把这些问题记录下来,然后我们先将这些问题按照重要紧急程度设置好优先级。
2、 针对每一个问题,我们可以思考:我们手里拥有什么资源,可以协调什么资源来解决问题;如果因资源不足导致无法解决这个问题,可以请示领导,协调相关部门的资源来解决问题。
3、 协调好资源后,我们可以依照每一个问题的优先级,为每一个问题提供一个完备稳妥的解决方案。
4、 根据这个解决方案具体组织实施。
5、 在组织实施的过程中,如果又发现了新的问题,我们将回到1重新执行这个过程。如此循环往复,直至所有问题全部解决。
四、质量管理与CMMI
1、CMMI的实施对项目的质量管理有哪些促进作用?
1) 改进软件产品的质量
2) 改进项目满足预定目标的能力
3) 减少开发成本和周期
4) 降低项目风险
5) 更有效地控制供应商
6) 提高组织过程能力
7) 提高竞争力,市场占有率,效益
2、项目如何实施质量管理?
实施项目质量管理的手段有:
1) 质量保证(QualityAssurance)
2) 质量控制(QualityControl)
3) 质量工程的实践(QualityEngineering Practices)
3、质量保证(QA)和质量控制(QC)的区别?
质量保证和质量控制是比较容易混淆的一组概念。实施质量保证是执行过程组的一个过程,而质量控制是监控过程组的一个过程。
质量保证的定义是:审计质量要求和质量控制测量结果,确保采用合理的质量标准和操作性定义的过程。简单地说,质量保证关注的是质量活动相关的政策、制度、流程、规范等
质量控制的定义是:检测并记录质量活动的结果,从而评估绩效并建议必要变更的过程。质量控制活动可识别造成过程低效或者产品质量低劣的原因,并建议采取措施来消除这些原因。具体来说,质量控制是针对项目活动或者项目可交付成果的具体的质量问题、质量缺陷,发现并给予消除。
实施质量保证的对象更宏观,如果涉及整体项目,就是质量保证;质量控制的对象相对更具体,如果涉及项目的具体工作成果,就是质量控制。
涉及经验教训的汲取或者组织过程资产的更新,是在做质量审计,属于质量保证;如果涉及具体工作成果是否可以被接受,就是质量控制。
如果涉及对项目质量标准的重新评价,以确认它们是否仍然适用,就是质量保证(属于制度、政策层面);如果涉及具体工作成果是否符合具体的质量标准,就是质量控制。
如果在项目实施阶段,就是质量保证;如果在项目监控阶段,就是质量控制。
预防和检查是实施质量控制的工具。预防是保证过程中不出现错误;检查是确保错误被及早发现,不会落到客户的手中。
4、CMMI怎么用?
很多通过CMMI3认证的企业都会成立一个组织,即PMO(项目管理办公室)。由PMO来推行CMMI体系在企业中的施行。
如果没有这样的组织,测试负责人也可以自己研究CMMI,然后根据企业的实际情况进行裁剪,制定不同项目阶段需要出具的文档成果,以及使用的模板。
以下运作流程仅供参考:
5、如何开展CMMI的质量保证工作?
5.1. 制作质量保证计划
1. QA应在项目开始前在项目经理的协助下进行《质量保证计划》的编制。
2. 《质量保证计划》至少包括如下内容:
1) 角色与职责
2) 检查过程和工作产品的时间表
3) 不符合项的处理方法
4) QA工作报告制度
3. 质量保证计划是QA开展质量保证活动的重要依据和指引。
5.2. 制作QA检查单
1. 在质量保证活动开始前,QA需提前编写好QA检查单。
2. 制作《QA检查单》至少应包括以下内容:
1) 《QA检查单》包括《立项过程》、《计划过程》、《配置管理过程》、《需求分析过程》、《设计过程》、《编码过程》、《测试过程》、《上线过程》、《验收过程》等过程;
2) 对于每一个过程,都含有“序号”、“检查项”、“检查活动”、“检查对象”、“检查方法”、“判定依据”、“检查结果”等内容;
3) “检查项”、“检查活动”、“检查对象”、“检查方法”、“判定依据”、“检查结果”等项目应根据每个项目的实际情况来制定;
4) “检查项”、“检查活动”、“检查对象”、“检查方法”、“判定依据”、“检查结果”等项目可根据每个项目的特点来进行调整;
5) 制作《QA检查单》的具体标准可参考公司的流程规范。
3. QA检查单是QA检查项目组工作的重要依据和标准。
5.3. 检查项目组
1. QA根据《质量保证计划》和《QA检查单》对项目的过程及工作产品进行检查。
2. 检查过程:
1) QA根据《质量保证计划》和《QA检查单》,对项目过程的执行情况进行检查。
2) 检查时机:
QA参与项目每个过程的重要活动;
QA参与项目计划、项目的相关标准的制定和评审;
QA参与项目组会议(如项目组例会、评审会等);
3) 检查方式:
检查相关文档和记录;
访问相关人员;
参加项目评审会或相关会议;
4) 项目经理和项目组成员有义务为检查过程提供足够的信息。
3. 检查工作产品:
1) QA根据《质量保证计划》和《QA检查单》,对项目的工作产品进行检查。
2) 检查时机:
工作产品完成或部分完成时;
工作产品发布之前。
3) 检查方式:
查相关文档和记录;
访问相关人员;
参加项目评审会或相关会议;
4) 项目经理和项目组成员有义务为检查工作产品提供足够的信息。
4. 检查项目组的过程和工作产品对公司流程规范的执行情况是QA进行质量保证活动的重要内容。
5.4. NC项清单
1. QA把对项目过程及工作产品的检查结果记录在《NC项清单》中,对发现的不符合项问题要持续进行跟踪,直至解决。
2. 关于NC项的处理方法:
1) QA进行质量保证活动后,如发现有不符合项应填写《NC项清单》;
2) 在质量保证活动完成时,QA需要向项目经理和项目主管报告检查结果。
3) 如果是检查的结论有错误或疏漏,QA需要修订相关的检查结果,并重新发送给相关人员。
4) 如何填写《NC项清单》请参考《广东机场白云信息科技有限公司XX项目NC项清单》。
3. 《NC项清单》是检查过程中一些不符合项的汇总,QA应根据检查的实际情况如实填写《NC项清单》。
5.5. 质量保证报告
1. 质量保证活动结束后QA应编写《质量保证报告》。
2. 具体方法:
1) 在检查的过程中,QA应详细记录过程和工作产品的检查情况,以便后续编写《质量保证报告》。
2) QA需每月编写《质量保证报告》并发送给项目主管。
3) QA编写《质量保证报告》请参考《广东机场白云信息科技有限公司XX项目质量保证报告》模板。
3. 《质量保证报告》是该项目质量保证活动的结论性、总结性的文档,QA应予以重视。
既然做网站一定要做像样的上档次的网站,现在互联网上的网站是很多的,但是真正有质量的,上档次的网站还真不多,都是一些连七八糟的,或者一些陈旧的常年没有人打理维护的网站那么多的,这都是好多公司的网站沉淀下来的成年诟病,但是即使这样,作为客户做网站的话,一定要做好的网站,高质量的网站才行,不能是个网站就行,这么讲究的用着最终损害的是自己公司的利益,网站说白了就是一个门面,如果你做好了,对你的公司的形象以及后期的宣传影响力地非常的大的,如果你做的不好,反而对公司的发展以及宣传造成了负面影响。
做网站一定要找一家专业的网站制作来制作,并且要站在一个制高点上来看待这个问题,不能以为的讲究,或者一些模板网站更是不能使用的,那些表面看起来是个网站,但是后期的问题是很多的,表面上看起来你是做了一个网站也没有花费多钱,实际上这样的网站就是废品,使用的使用越久,对你的公司的发展越不利,找个专业的网络公司,按照你的行业属性以及要求,定制开发属于你公司的门户网站吧,现在做还为时不晚,等到真正你意识到的那天就晚了。
西安网站建设中模板网站的劣势在哪里呢,在网站开发中,往往会出现很多的问题,因为在考虑整网站假造中我们所要考虑的就是在整个建设中的不同反应,就拿现在市场上面的网站建设来说,在客户要寻找网站时,往往都会在网上来查找,那么有的客户可能要求比较高,那么在建造网站时要回考虑很多的方面,还有就是要求的比较的少,可能想的就是尽量少花钱来建造一个,那么这样的客户往往可能就会考虑模板网站,那么这样的模板网站也是有着很多种的,那么就要看客户想要找什么样的公司了,有的公司会直接使用软件来生成一个网站,那么这样的网站在后期是没办法去修改的,因为这些都是非常混乱的,那么客户后期就会出现非常重要的麻烦吗,这个是得不偿失的。还有就是一种手写的代码模板。这样的模板可能给人家已经用过了,但是只要把里面的问题换个名称电话变下也是可以的,这样的网站至少在后期可以修改,因为代码多的整齐程度是非常好的,在一定的价格面前来看,选择一套手写的代码纸一个模板网站必不可少的关键点之一。
自助建站,就是这里点点鼠标,那里敲敲键盘,然后诸如表单、搜索、网站地图、留言薄、日历等等之类网站构成的诸多基本元素就表现出来了。而且,许多主机服务提供商不仅将自助建站工具与域名主机服务捆绑,还往往与网站推广、Email营销、搜索引擎优化和流量统计等后继推广工作都连带打包销售,这不仅为普通企业提供了专业、系统的服务,解决了他们作为不懂网络营销的企业实施网络营销的实际困难,从网站运营过程来看,一个很吸引人的地方就是长期成本较低,打包费用为了促销逐年递减,而且不用每年再分别交纳域名、主机、推广等费用,因此,自助建站的相对低成本进入也是吸引客户的一个重要原因。