软件质量_软件质量标准 - CSDN
精华内容
参与话题
  • 软件质量基本概念

    千次阅读 2012-11-28 08:45:24
    如何理解软件质量 什么是质量? 词典的定义是:① 典型的或本质的特征;② 事物固有的或区别于其他事物的特征或本质;③ 优良或出色的程度。 CMM对质量的定义是:① 一个系统、组件或过程符合特定需求的程度;...
    如何理解软件的质量
    什么是质量?
    词典的定义是:① 典型的或本质的特征;② 事物固有的或区别于其他事物的特征或本质;③ 优良或出色的程度。
    CMM对质量的定义是:① 一个系统、组件或过程符合特定需求的程度;② 一个系统、组件或过程符合客户或用户的要求或期望的程度。
    上述定义很抽象,软件开发人员看了准会一脸迷惘。软件的质量不容易说清楚,但我们今天非得把它搞个水落石出不可。
    就以健康做类比吧。早先人们以为长得结实、饭量大就是健康,这显然是不科学的。现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等。如果上述因素都合格,那么表明这人是健康的。如果某个因素不合格,则表明此人在某个方面不健康,医生会对症下药。同理,我们也可以通过考察软件的质量属性来评价软件的质量,并给出提高软件质量的方法。
    一提起软件的质量属性,人们首先想到的是“正确性”。“正确性”的确很重要,但运行正确的软件就是高质量的软件吗?不见得,因为这个软件也许运行速度很低,并且浪费内存,甚至代码写得一塌糊涂,除了开发者本人谁也看不懂,也不会使用。可见正确性只是反映软件质量的一个因素而已。
    软件的质量属性很多,如正确性、精确性,健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。除此之外还可以列出十几个,新词可谓层出不穷。
    上述这些质量属性“你中有我,我中有他”。如果开发人员每天都要面对那么多的质量属性咬文嚼字,不久就会迂腐得像孔乙己,因此我们有必要对质量属性做些分类和整合。质量属性可分为两大类:“功能性”与“非功能性”,后者有时也称为“能力”(Capability)。
    从实用角度出发,本章将重点论述“10大”质量属性,如表1-1所示。
    表1-1 “10大”软件质量属性

    功 能 性
    正确性(Correctness)
    健壮性(Robustness)
    可靠性(Reliability)
    非 功 能 性
    性能(Performance)
    易用性(Usability)
    清晰性(Clarity)
    安全性(Security)
    可扩展性(Extendibility)
    兼容性(Compatibility)
    可移植性(Portability)

     
    其中,功能性质量属性有3个:正确性、健壮性和可靠性;非功能性质量属性有7个:性能、易用性、清晰性、安全性、可扩展性、兼容性和可移植性。
    为什么碰巧是“10大”呢?
    不为什么,只是方便记忆而已(如同国际、国内经常评“10大”那样)。
    为什么“10大”里面不包括可测试性、可维护性、灵活性呢?它们不也是很重要的吗?
    它们是很重要,但不是软件产品的卖点,所以挤不进“10大”行列。我认为如果做好了上述“10大”质量属性,软件将会自然而然地具备良好的可测试性、可维护性。人们很少纯粹地去提高可测试性和可维护性,勿要颠倒因果。至于灵活性,它有益处也有坏处,该灵活的地方已经被其他属性覆盖,而不该灵活的地方就不要刻意去追求。
    根据经验,如果你想一股脑儿地把任何事情都做好,结果通常是什么都做不好,做事总是要分主次的。什么是重要的质量属性,应当视具体产品的特征和应用环境而定,请读者不要受本书观点的限制。最简单的判别方式就是考察该质量属性是否被用户关注(即卖点)。
    提高软件质量的基本方法
    质量的死对头是缺陷,缺陷是混在产品中的人们不喜欢、不想要的东西。缺陷越多质量越低,缺陷越少质量越高。
    Bug是缺陷的形象比喻,人们喜欢说Bug是因为可以把Bug当作“替罪羊”。软件的缺陷明明是人造成的,有了Bug这个词后就可以把责任推给Bug——“都是Bug惹的祸”。唉,当一只Bug真是太冤枉了!
    软件存在缺陷吗?是的,有以下典故为证。

    错误是严重的缺陷。医生犯的错误最终会被埋葬在地下,从此一了百了。但软件的错误不会自动消失,它会一直骚扰用户。据统计,对于大多数的软件产品而言,用于测试与改错的工作量和成本将占整个软件开发周期的30%,这是巨大的浪费。如果不懂得如何有效地提高软件质量,项目会付出很高的代价,你(开发人员)不仅没有功劳,也没人欣赏你的苦劳,你拥有最多的将只是疲劳。
    怎样才能提高软件的质量呢?
    还是先来听一个中国郎中治病的故事吧!

    提高软件质量的基本手段是消除软件缺陷。与上述三个郎中治病很相似,消除软件缺陷也有三种基本方式:
    (1)在开发过程中有效地防止工作成果产生缺陷,将高质量内建于开发过程之中。这就是“预防胜于治疗”的道理,无疑是最佳方式,但是要求开发人员必须懂得正确地做事(门槛比较高)。我们学习“高质量编程”的目的就是要在干活的时候一次性编写出高质量的程序,而不是在程序出错后才去修补。
    (2)当工作成果刚刚产生时马上进行质量检查,及时找出并消除工作成果中的缺陷—这种方式效果比较好,人们一般都能学会。最常用的方法是技术评审、测试和质量保证等(详见本章1.4节),已经被企业广泛采用并取得了成效。
    (3)当软件交付给用户后,用着用着就出错了,赶紧请开发者来补救,这种方式的代价最高。可笑的是,当软件系统在用户那里出故障了,那些现场补救成功的人倒成了英雄,好心用户甚至还寄来感谢信。J
    “零缺陷”理念
    质量的最高境界是什么?是尽善尽美,即“零缺陷”。
    “零缺陷”理念来源于国际上一些著名的硬件厂商。尽管软件的开发与硬件生产有很大的区别,但我们仍可以借鉴,从中得到启迪。
    人在做一件事情时,由于存在很多不确定的因素,一般不可能100%地达到目标。假设平常人做事能完成目标的80%。如果某个人的目标是100分,那么他最终成绩可达80分;如果某个人的目标只是60分,那么他最终成绩只有48分。我们在考场上身经百战,很清楚那些只想混及格的学生通常都不会及格。即使学习好的学生也常有失误,因而捶胸顿足。
    做一个项目通常需要多人协作。假设某系统的总质量是10个开发人员的工作质量之积,即最高值为1.0,最低值为0。如果每个人的质量目标是0.95,那么10个人的累积质量不会超过0.598。如果每个人的质量目标是0.9,那么10个人的累积质量不会超过0.35。只有每个人都做到1.0,系统总质量才会是1.0。只要其中一人的工作质量是0,那么系统总质量也就成了0。因系统之中的一个缺陷而导致机毁人亡的事件已不罕见。
    上述比喻虽然严厉了一些,但从严要求只有好处没有坏处。如果不严以律己,人的堕落就会很快。如果没有“零缺陷”的质量理念,也许缺陷就会成堆。
    从理念到行动还是有一定距离的,企业在开发产品时应当根据自身实力和用户的期望值来设定可以实现的质量目标。过低的质量目标会毁坏企业的声誉,而过高的质量目标则有可能导致成本过高而拖累企业(请参见本章1.3节)。
     
     
    本文节选自《高质量程序设计指南:C++/C语言》

    林锐,韩永泉编著
    电子工业出版社出版
    展开全文
  • 什么软件质量/如何评价软件的质量

    万次阅读 2010-01-07 09:45:00
    1. 软件质量: 软件质量是软件的生命,它直接影响着软件的使用和维护。通常软件的质量有下面几个方面来评价质量的优劣: (1) 软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量。设计的软件应在...

     

    1.       软件质量:

             软件质量是软件的生命,它直接影响着软件的使用和维护。通常软件的质量有下面几个方面来评价质量的优劣:

                      (1)   软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量。设计的软件应在功能、性能等方面都符合要求,并能可靠地运行。

                      (2)   软件结构良好,易读、易于理解,并易于修改、维护。

                      (3)   软件系统具有友好的用户界面,便于用户使用。

                      (4)   软件生存周期中各阶段文档齐全、规范,便于配置、管理。

     

    2.       如何评定软件质量(评价模型):

              一个软件,我们如何评定呢?最通用的一个规范标准就是使用ISO/IEC 9126-1991 标准规定的软件质量度量模特。这个标准在网上很容易down到,它不仅对软件质量做了定义,还涉及了整个软件测试的一些规范流程等等,设计测试计划的撰定,测试用例的设计。

     

         ISO/IEC 91261991标准规定的软件质量度量模型,它由3层组成,其中第1层称为质量特性,第2层称为质量子特性,第3层称为度量。

     

    1ISO软件质量度量模型

     

     

    3.       软件评价的过程(流程):

            软件质量评价的目的是为了直接支持开发并获得能满足用户要求的软件。最终目标是保证产品能提供所要求的质量,即满足用户明确的和隐含的要求。软件产品的一般评价过程是,确定评价需求,然后规定、设计和执行评价,如图所示。

     

     

    2:软件评价过程

     

     

    4.       怎么去保证软件的质量(执行评价):

             为了在软件开发过程中保证软件的质量,软件的质量保证活动应贯穿整个软件生存周期的每一个阶段。软件的质量保证的措施主要有检查、评审和测试。如图所示,软件质量保证的工作从项目一开始就应介入。

       

          图3:质量保证活动

     

               个人理解:检查和评审一般是由客户,有经验的PM,产品经理,软件测试人员等等(广义的QA)参与进来的活动,如项目中demo例会,在demo的同时,大家及时发现问题并讨论分析,以这种方式发现软件的问题。而测试一般是由QA(狭义的QA)参与进来的活动,它是一种普遍的测试行为,QA根据需求分析,设计test plantest case,然后根据项目的schedule去执行测试流程,当然对于测试,不一定就是专业的测试人员,PM,产品经理,customer也会参与进来。例如在软件Beta阶段,往往有客户参与进来。

     

    5.        软件测试 (图3中的第四步)

     

              简单地说,软件测试就是为了发现错误而执行程序的过程。在IEEE提出的软件工程标准术语中,软件测试被定义为:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。 软件测试是与软件质量密切联系在一起的,归根结底,软件测试是为了保证软件质量。

     

             软件测试是一个找错的过程。软件测试的过程亦是程序运行的过程。程序运行需要数据,为测试设计的数据称为测试用例。测试用例的设计原则是尽可能暴露程序中的错误。

     

             软件是由人来完成的,所有由人做的工作都不会是完美无缺的。软件开发是个很复杂的过程,期间很容易产生错误。无论是软件从业人员、专家和学者做了多大的努力,软件错误仍然存在。因而大家也得到了一种共识:软件中残存着错误,这是软件的一种属性,是无法改变的。所以通常说软件测试的目的就是为了发现尽可能多的缺陷,并期望通过改错来把缺陷统统消灭,以期提高软件的质量一个成功的测试用例在于发现了至今尚未发现的缺陷。

     

              软件测试的目的是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。

     

    具体软件测试的流程,方法,规范等等略。

     

    展开全文
  • 软件质量的六个特征

    万次阅读 2015-09-08 10:21:47
    可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时能继续运行的程度。 3. 易使用性:对于一个软件,用户学习、操作、准备输入和理解输出
     
    1. 功能性:软件所实现的功能满足用户需求的程度.功能性反映了所开发的软件满足用户称述的或蕴涵的需求的程度,即用户要求的功能是否全部实现了。
    2. 可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时能继续运行的程度。
    3. 易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。
    4. 效率:在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。效率反映了在完成功能要求时,有没有浪费资源,此外"资源";这个术语有比较广泛的含义,它包括了内存、外存的使用,通道能力及处理时间。
    5. 可维修性:在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维修性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。
    6. 可移植性:从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。
     
     
     
     
     
    软件质量的六个特征
     

    1 软件质量的有关概念 

        软件质量是“软件产品具有满足规定的或隐含要求能力要求有关的特征与特征总和”。根据软件质量国家标准GB-T8566--2001G,软件质量评估通常从对软件质量框架的分析开始。 

        1.1 软件质量框架模型 

        如图1所示,软件质量框架是一个“质量特征—质量子特征—度量因子”的三层结构模型。 

        在这个框架模型中,上层是面向管理的质量特征,每一个质量特征是用以描述和评价软件质量的一组属性,代表软件质量的一个方面。软件质量不仅从该软件外部表现出来的特征来确定,而且必须从其内部所具有的特征来确定。 

        第二层的质量子特征是上层质量特征的细化,一个特定的子特征可以对应若干个质量特征。软件质量子特征是管理人员和技术人员关于软件质量问题的通讯渠道。 

        最下面一层是软件质量度量因子(包括各种参数),用来度量质量特征。定量化的度量因子可以直接测量或统计得到,为最终得到软件质量子特征值和特征值提供依据。 

        图1 软件质量框架模型

        1.2 软件质量特征

        按照软件质量国家标准GB-T8566--2001G,软件质量可以用下列特征来评价:

        a.功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。

        b.可靠特征:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。

        c.易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。

        d.效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。

        e.可维护特征:与进行指定的修改所需的努力有关的一组属性。

        f.可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。

        其中每一个质量特征都分别与若干子特征相对应。

        2 评估指标的选取原则

        选择合适的指标体系并使其量化是软件测试与评估的关键。评估指标可以分为定性指标和定量指标两种。理论上讲,为了能够科学客观地反映软件的质量特征,应该尽量选择定量指标。但是对于大多数软件来说,并不是所有的质量特征都可以用定量指标进行描述,所以不可避免地要采用一定的定性指标。

        在选取评估指标时,应该把握如下原则:

        a.针对性

        即不同于一般软件系统,能够反映评估软件的本质特征,具体表现就是功能性与高可靠性。

        b.可测性

        即能够定量表示,可以通过数学计算、平台测试、经验统计等方法得到具体数据。

        c.简明性

        即易于被各方理解和接受。

        d.完备性

        即选择的指标应覆盖分析目标所涉及的范围。

        e.客观性

        即客观反映软件本质特征,不能因人而异。

        应该注意的是,选择的评估指标不是越多越好,关键在于指标在评估中所起的作用的大小。如果评估时指标太多,不仅增加结果的复杂性,有时甚至会影响评估的客观性。指标的确定一般是采用自顶向下的方法,逐层分解,并且需要在动态过程中反复综合平衡。
    3 软件质量评估指标体系

        通常,我们在软件的测试与评估时,主要侧重于功能特征、可靠特征、易用特征和效率特征等几个方面。在评价活动的具体实施中,应该把被评估软件的研制任务书作为主要依据,采用自顶向下逐层分解的方法,并参照有关国家软件质量标准。

        3.1 功能性指标

        功能性是软件最重要的质量特征之一,可以细化成完备性和正确性。目前对软件的功能性评价主要采用定性评价方法。

        a.完备性

        完备性是与软件功能完整、齐全有关的软件属性。如果软件实际完成的功能少于或不符合研制任务书所规定的明确或隐含的那些功能,则不能说该软件的功能是完备的。

        b.正确性

        正确性是与能否得到正确或相符的结果或效果有关的软件属性。软件的正确性在很大程度上与软件模块的工程模型(直接影响辅助计算的精度与辅助决策方案的优劣)和软件编制人员的编程水平有关。

        对这两个子特征的评价依据主要是软件功能性测试的结果,评价标准则是软件实际运行中所表现的功能与规定功能的符合程度。在软件的研制任务书中,明确规定了该软件应该完成的功能,如信息管理、提供辅助决策方案、辅助办公和资源更新等。那么即将进行验收测试的软件就应该具备这些明确或隐含的功能。

        目前,对于软件的功能性测试主要针对每种功能设计若干典型测试用例,软件测试过程中运行测试用例,然后将得到的结果与已知标准答案进行比较。所以,测试用例集的全面性、典型性和权威性是功能性评价的关键。
    3.2 可靠性指标

        根据相关的软件测试与评估要求,可靠性可以细化为成熟性、稳定性、易恢复性等。对于软件的可靠性评价主要采用定量评价方法。即选择合适的可靠性度量因子(可靠性参数),然后分析可靠性数据而得到参数具体值,最后进行评价。

        经过对软件可靠性细化分解并参照研制任务书,可以得到软件的可靠性度量因子(可靠性参数)。

        a.可用度

        可用度指软件运行后在任一随机时刻需要执行规定任务或完成规定功能时,软件处于可使用状态的概率。可用度是对应用软件可靠性的综合(即综合各种运行环境以及完成各种任务和功能)度量。

        b.初期故障率

        初期故障率指软件在初期故障期(一般以软件交付给用户后的三个月内为初期故障期)内单位时间的故障数。一般以每100小时的故障数为单位。可以用它来评价交付使用的软件质量与预测什么时候软件可靠性基本稳定。初期故障率的大小取决于软件设计水平、检查项目数、软件规模、软件调试彻底与否等因素。

        c.偶然故障率

        指软件在偶然故障期(一般以软件交付给用户后的四个月以后为偶然故障期)内单位时间的故障数。一般以每1000小时的故障数为单位,它反映了软件处于稳定状态下的质量。

        d.平均失效前时间(MTTF)

        指软件在失效前正常工作的平均统计时间。

        e.平均失效间隔时间(MTBF)

        指软件在相继两次失效之间正常工作的平均统计时间。在实际使用时,MTBF通常是指当n很大时,系统第n次失效与第n+1次失效之间的平均统计时间。对于失效率为常数和系统恢复正常时间很短的情况下,MTBF与MTTF几乎是相等的。

        国外一般民用软件的MTBF大体在1000小时左右。对于可靠性要求高的软件,则要求在1000~10000小时之间。

        f.缺陷密度(FD)

        指软件单位源代码中隐藏的缺陷数量。通常以每千行无注解源代码为一个单位。一般情况下,可以根据同类软件系统的早期版本估计FD的具体值。如果没有早期版本信息,也可以按照通常的统计结果来估计。“典型的统计表明,在开发阶段,平均每千行源代码有50~60个缺陷,交付后平均每千行源代码有15~18个缺陷”。

        g.平均失效恢复时间(MTTR)

        指软件失效后恢复正常工作所需的平均统计时间。对于软件,其失效恢复时间为排除故障或系统重新启动所用的时间,而不是对软件本身进行修改的时间(因软件已经固化在机器内,修改软件势必涉及重新固化问题,而这个过程的时间是无法确定的)。

        3.3 易用性指标

        易用性可以细化为易理解性、易学习性和易操作性等。这三个特征主要是针对用户而言的。对软件的易用性评价主要采用定性评价方法。

        a.易理解性

        易理解性是与用户认识软件的逻辑概念及其应用范围所花的努力有关的软件属性。该特征要求软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。

        b.易学习性

        易学习性是与用户为学习软件应用(例如运行控制、输入、输出)所花的努力有关的软件属性。该特征要求研制方提供的用户文档(主要是《计算机系统操作员手册》、《软件用户手册》和《软件程序员手册》)内容详细、结构清晰以及语言准确。

        c.易操作性

        易操作性是与用户为操作和运行控制所花的努力有关的软件属性。该特征要求软件的人机界面友好、界面设计科学合理以及操作简单等。

        3.4 效率特征指标

        效率特征可以细化成时间特征和资源特征。对软件的效率特征评价采用定量方法。效率特征分解如图2所示。

        图2 效率特性分解图

        a.输出结果更新周期

        输出结果更新周期是软件相邻两次输出结果的间隔时间。为了整个系统能够协调工作,软件的输出结果更新周期应该与系统的信息更新周期相同。

        b.处理时间

        处理时间是软件完成某项功能(辅助计算或辅助决策)所用的处理时间(注意:不应包含人机交互的时间)。

        c.吞吐率

        吞吐率是单位时间软件的信息处理能力(即各种目标的处理批数)。未来的社会情况复杂、信息众多,软件必须具有处理海量数据的能力。吞吐率就是体现该能力的参数。随着信息的泛滥,要求软件的吞吐率应该达到数百批。

        d.代码规模

        代码规模是软件源程序的行数(不包括注释),属于软件的静态属性。软件的代码规模过大不仅要占用过多的硬盘存储空间,而且显得程序不简洁、结构不清晰,容易存在缺陷。

        因为这些参数属于软件的内部表现,所以需要用专门的测试工具和特殊的途径才可以获得。将测试数据与研制任务书中的指标进行比较,得到的结果可以作为效率特征评价的依据。

        4 结束语

        随着计算机技术、数据融合技术、网络技术和通信技术的飞速发展,对软件功能提出的要求也越来越高,如何评估软件质量已成为一个迫切需要解决的课题。选择合适的指标体系并使其量化是做好软件质量评估的关键。当然,由于软件的评估具有其特有的规范和要求,其评估指标涉及面广、不确定性因素较多、量化困难,至今还没有统一的标准。

        我们相信,通过建立科学合理的软件质量评估指标体系,充分考虑到软件的特殊性,借鉴其他学科的质量评估理论,是可以全面真实客观地评估软件质量的

    展开全文
  • 什么是软件质量

    千次阅读 2018-06-10 23:26:33
    如何提高软件质量? 为测试正名 开发中的常见问题和偏见 如何提高自身的软件设计能力? 一说到软件质量,很容易想到软件缺陷。因此,缺陷少就潜移默化地成为了高质量软件的代名词。但这种认识是片面的。 ...

    一说到软件质量,很容易想到软件缺陷。因此,缺陷少就潜移默化地成为了高质量软件的代名词。但这种认识是片面的。

    从用户角度来看

    • defect 和 bug 的数量越少以为着质量越好

    从开发的角度来看

    • 整体架构设计易于扩展
    • 模块之间耦合性低,易于复用
    • 代码简洁易懂,易于维护

    之所以将软件质量分成两个级别,是因为设计质量的外部不可见性。如果我们只从用户级别来考察软件质量,就会忽略设计质量的重要性,也就只局限在“只要功能正常就是好软件”这一认识范围内。

    如何提高软件质量?

    主导设计一旦确立了以后,产品的质量水准就基本确定了。尽管验证阶段对于产品质量很重要,但是验证工作做得再好也不能从本质上改变软件产品的质量水准了。

    那么,问题来了。我们如何保证软件质量呢?

    • 编码前,架构设计质量必须得到保证
    • 编码时,代码质量必须得到保证
    • 编码后,测试质量必须得到保证

    这里写图片描述

    事先进行架构设计可以时软件往更加模块化,并且设计好特定的接口。会软件的扩展性和可维护性更加好。

    如何保证设计质量?很容易让人想到通过开发流程和认证,比如敏捷软件开发方法、CMMI认证等。其实认证的本质还是流程。
    但是,高设计质量是不能简单地通过流程而获得的,因为流程所控制的游行的因素,而软件设计过程很多内容是悟性的。由于软件设计中艺术成分的非直观性,造成设计质量不易被量化以便加以评估。

    为测试正名

    在需求分析结束后,测试人员就需要接入项目
    - 根据需求分析进行功能测试用例的设计
    - 根据架构设计进行模块测试用例的设计
    - 根据产品标准进行压力测试用例的设计
    - …

    一个注重产品质量的公司,就越注重测试。因为多数BUG是由测试人员进行各种测试,得到的。但是并不是说可以完全吧所有BUG消除。

    开发中的常见问题和偏见

    • 测试时替罪羊或救命稻草
    • 但凡出现BUG,就是测试不给力
    • 资源永远不足
    • 现在没有时间和精力去做重构
    • 不改变就可以规避风险
    • 虽然有缺陷,但是功能不受影响,不做改变。

    如何提高自身的软件设计能力?

    • 对架构的完美性有精神上的追求,不满足功能正确
    • 积极思考方案,不停烦死是否能做得更好
    • 勇于实践与模仿,进而形成自己的风格和思想
    • 推敲前辈们的经典设计,尝试用于自己的项目
    • 总结设计原则,体会各个设计原则的内涵
    • 软件设计不是原则的叠加,而是一个平衡利弊的过程。
    展开全文
  • 软件质量基础知识

    千次阅读 2018-11-27 13:21:49
    软件质量模型 测试技术类型 测试流程规范 研发质量规范 问题交流   二、软件质量模型 1、好的架构 2、充分了解了用户需求 3、尽量少的bug 4、性能好     软件质量模型 功能性 可靠性 可移植性 易用...
  • 软件质量指标

    千次阅读 2019-06-19 18:00:30
    外部质量因素影响用户,内部质量因素影响软件本身和它的开发者,外部质量取决于内部质量 外部质量: Correctness 正确性:按照spec执行,得到正确的结果,软件的行为要严格符合规约中定义的行为 保证正确性:测试和...
  • 软件质量模型详解

    万次阅读 2019-07-04 19:54:24
    软件质量模型有6大特性、27个子特性组成。 功能性:满足用户明确的和隐含的需求功能 易用性;软件在指定的条件下,维护规定的性能级别的能力。 可靠性有“三规”:指定的环境,规定的时间,规定的性能。 可靠...
  • 第六章 软件项目质量管理

    万次阅读 多人点赞 2018-07-02 13:48:40
    本章内容提要软件质量管理的基本概念全面软件质量管理缺陷跟踪缺陷移除和预防软件质量的常用度量案例分析第一节 软件质量管理的基本概念软件质量就是软件与用户需求相一致的程度。具体地说,软件质量是软件符合明确...
  • 软件质量浅谈

    2019-07-05 10:24:24
    软件质量浅谈转载自共创软件联盟 随着社会生产力的发展和科学技术的进步,全球性贸易竞争日益加剧,用户对质量提出了越来越严格的要求。如果企业想在竞争中生存,更不用说获利了,那么除了接受质量观念外就别无选择...
  • 软件质量:反应一个实体满足明确的和隐含的需求能力的特性总和(满足用户明确的或隐含需求的程度) 根据软件定义就会发现软件质量是一个多层次的概念: 用户角度角度:质量既符合需求又满足用户需求 软件产品角度...
  • 软件中的质量属性(一)

    千次阅读 2017-06-30 09:56:10
    开发高质量软件是一件极具挑战的工作。其中一个重要的原因就是对于“质量”的定义各不相同,变化莫测。 杰拉尔德温伯格在他的四部曲巨作《质量软件管理》的第一卷第一章中就谈到了什么是质量以及质量的重要性。...
  • 软件质量属性包括哪些

    万次阅读 2011-08-18 09:34:12
    软件质量属性划分为运行期质量属性和开发期质量属性两大类。开发期质量属性其实包含了和软件开发,维护和移植这三类活动相关的所有质量属性,这些是开发人员,开发管理人员和维护人员都非常关心 的,对最终用户而言...
  • ISO 9126质量模型:软件质量模型的6大特性和27个子特性  ISO9126软件质量模型是评价软件质量的国际标准,由6个特性和27个子特性组成,建议大家深入理解各特性、子特性的含义和区别,在测试工作需要从这6个特性和...
  • 软件质量管理

    万次阅读 多人点赞 2012-10-21 09:00:57
    只要我们的软件质量过关才会得到用户的肯定,所以从质量这个角度看,我们该如何管理呢?这篇博客,总结了软件质量管理的相关知识。    首先,总的了解一下,需要我们知道一些相关概念;然后是我们软件质量该如何...
  • 学习、实践、理解:软件质量模型的6大特性和27个子特性
  • 软件质量保证和管理》电子课件下载

    万次阅读 热门讨论 2008-04-23 21:07:00
    软件质量保证和管理》 电子课件业已完成,可去“Kerry Zhu CSDN下载频道" 下载:《软件质量保证和管理》电子课件之一 《软件质量保证和管理》电子课件之二如有问题直接和我联系。目 录 第1章 质量1.1 质量 ...
  • McCall的软件质量模型

    万次阅读 2016-01-08 15:58:48
    McCall等认为,特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的优劣 McCall认为软件的质量模型应该包括 产品的修正、产品的转移,产品的运行 而产品的修正又包括 可维护性...
  • 软件测试和质量保证的关系

    万次阅读 2014-07-31 15:16:10
    软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试仅处于编码之后、运行维护阶段之前,是软件产品交付用户使用之前软件质量保证的最后手段。这是一种误导,软件生命周期每一阶段中都应包含测试...
  • 和朋友谈到软件质量工作时,经常会提及到软件质量控制、质量保证和质量管理。我想对于这三者,很多人也就仅仅是知道而已,有多少人认真的思考过这三者的区别? 其实质量控制、质量保证、质量管理代表软件质量工作...
  • 衡量软件测试质量的常用指标
1 2 3 4 5 ... 20
收藏数 396,227
精华内容 158,490
关键字:

软件质量