微信小程序制作
  • 什么是软件的证明周期

    什么是软件的证明周期...2018-12-21

    软件生命周期这个词,对于大部分人应该比较陌生,但却不容忽视!正因为它的重要性,才有许多不同的软件开发生命周期模型,但是它们都有一个共同的特点,那就是在生命周期中的某一时刻,软件都会被测试。今天我就和大家聊聊一些常用的软件生命周期模型,并重点强调了在各个模型中的测试工作,来帮助大家更好的了解软件生命周期。
    软件测试生命周期分哪几个阶段?
    大致分为:计划分析阶段、设计构建阶段、测试周期阶段、最后测试、实施阶段、测试后阶段,下面我们就来详细介绍这些阶段。

    1、计划分析阶段

    根据平常软件使用的特点,以及出现错误的频率及严重程度来做一个衡量的标准。大致分析出问题出现时间的范围,根据软件测试用例进行采用手工干涉或自动化检测干涉的措施。

    2、设计构建阶段

    依据已分析出的问题来进行设计方法,并建立出文档。比如说产品的规格,产品的内部文档,产品的业务需求文档,产品的说明书等,构建出具体步骤。

    3、测试周期阶段

    依据用例的估计时间和优先权来确定每个周期所需要的测试用例,从而来估计单元测试所需要的资源。

    4、测试和实施阶段

    就是依据测试报告和测试周期阶段所确定的用例和资源,来进行干预和实施来解决问题,保证质量的标准。

    5、测试后阶段

    实施后开展评估会议并回顾整个过程,依据这些经验所得出的一系列数据并准备最终的相关确定的缺陷报告以及相关的度量单位,并由此来制定出相应的解决策略用来防止这些问题的重复发生。

    软件测试生命周期我们归类的这五个阶段,都是相互联系,相互依辅,紧密关联的,每一步骤都缺一不可,我们大家认识了生命周期也就方便了我们的工作。

    软件生命周期模型

    1、顺序生命周期模型

    通常用V型生命周期模型和瀑布生命周期模型来表示这种顺序的开发过程。而事实上,这两种生命周期模型有许多不同的形态,将不同的阶段引入生命周期模型,并在不同阶段之间设立边界。以下介绍的生命周期模型的各个阶段是经过许多最有经验的开发者经过反复实践而得来的。

    * 需求分析阶段

    这个阶段主要是收集并分析用户的需求,并且根据软件需求建立完整而明确的需求说明书。

    * 概要设计阶段

    在这个阶段,针对用户需求的软件结构将会被设计,并确定软件内部各个部件的相关联系。

    * 详细设计阶段

    软件各个部件的执行功能将被详细说明。

    * 遍码与单元测试阶段

    在本阶段,将对软件的各个部件进行编码,并且进行单元测试以确定各个部分确实执行了详细设计阶段所制定的目标。

    * 软件集成阶段

    这个阶段被测试过的各个部件被逐渐集成起来测试直到构成了一个完整的软件。

    * 系统集成阶段

    这个阶段将软件程序集成起来,构成产品并进行测试。

    * 验收测试阶段

    这个阶段将进行测试以验证软件确实完整的执行了用户的需求。

    2、 渐进开发生命周期模型

    软件开发所具有的一个问题就是用户急需软件产品,但是开发者却要花费很长的时间去完整地进行开发。那么取一个折中的解决方法就是节省一些时间,但在功能上打一点折扣——开发出一个功能有所缩减的试用版给用户,作为完整版发布前的一个跳板。也可以将这个跳板作为软件减少软件开发风险的一种方式。

    通常将这种方法称为渐进开发或是执行阶段。与之相对应的生命周期模型被称为渐进开发生命周期模型。在渐进开发的生命周期之中,每一个独立的阶段都将遵从V型和瀑布型生命周期模型。

    每一个软件的发布都会经过验收测试以证明软件的各个部分所构成的整体确实实现了需求。但是每个阶段的测试和集成将会耗费大量的时间和精力。由于过多的开发周期会增加成本,耗费时间,所以应该经过认真估算,尽早地规划好到底应该使用多少个周期来进行软件的开发。

    3、 迭代生命周期模型

    迭代生命周期模型并不是一开始就完全适应需求,而是先根据说明先开发软件的部分些可执行部件。而是先开发一些具有部分功能的部件,这些部件要求能够通过审查以确定更进一步的需求。不断重复这个过程,为此模型的每一个周期遍写出更新版本的软件。

    一个迭代周期模型由下图的四个连续部分组成不断重复组成。

    *需求分析阶段

    在这个阶段,主要是收集并分析用户的需求,并且制定这个迭代模型最终并且完整的需求说明书。

    *定义阶段

    在这个阶段,设计出适应需求的软件解决方案。这有可能是一个全新的设计,也有可能是原来设计的一个延伸。

    *执行、测试阶段

    在这个阶段,将对软件进行编码,集中并进行测试。

    *审查阶段

    在这个阶段,将对软件进行评估,对目前的需求进行审查,并对其进行修改和更新。

    在迭代模型的每一个周期,都要作出一个决定:要将编写出的软件抛弃,还是作为下一个周期的起点。如果软件完全符合了需求,那么就可以进行发布,否则就是一个失败的开始。

    迭代模型的前三个阶段就好比是简化版本的V型模型或是瀑布模型。迭代模型中的每一个周期所编写出来的软件都要为软件的集中,系统集中和验收进行单元测试。在迭代模型中软件的开发经历了多少个这样的周期,那么就要进行多少次这样的测试。

    总结:

    无论何种生命周期模型被用于软件的开发,都会对软件进行测试。质量、功能都很完美的软件产品需要在其软件开发生命周期的早期进行测试,并且无论发生什么变故,都要进行完善的回归测试。

    在渐进、迭代生命周期中,这种行为显得尤为重要。重复测试对于软件质量的控制,在渐进、迭代模型中相比于传统的顺序生命周期模型也显得尤为重要。

    回归测试是对软件进行维护的重要手段。在软件开发之中,由于不能完全预料到最终的结果,会进行诸多的修改。但如果不对软件使用完善回归测试,就会导致产品质量的下降。

    软件开发管理中常犯的一个错误就是在V型模型或是瀑布模型开发的起始阶段,采用了不完善的管理制度,那最终就会引起问题的累积而使局势无法得到控制。这就是使软件开发走向失败的另一种情形。
  • 软件开发过程中质量如何把控

    软件开发过程中质量如何把控...2018-12-21

    软件开发过程中质量如何把控,现在信息化的社会,用到软件的地方是越来越多了,面对这么大的使用量,每年全国上线耗费在软件开发上的费用是非常庞大的一个数字的,那么作为一家软件开发公司的话,在软件开发中,如何把控开发流程和各个环节呢,接下来我们来详细的看看。

    一、软件产品质量的特点
    软件的质量通常可以从以下六个方面去衡量或者定义:

    ·功用性(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应予以重视。

  • «
  • 1
  • 2
  • ...
  • 86
  • 87
  • 88
  • 89
  • 90
  • »
  • 029-86195145 180 6652 8545 西安嘉瑞德网络科技公司
    工作时间:周一到周六 8:30-18:30
    邮箱:2528823962@qq.com
    QQ:2528823962
    地址:陕西省西安市未央元朔路明丰伯马都A座10820室
    • 微信小程序制作微信二维码
      扫码咨询
    Copyright © 2015 西安嘉瑞德网络科技有限公司 陕ICP备17015187号-1