|
知识路径: > 软件评测知识 > 软件测试过程模型 > 软件测试过程与管理 >
|
被考次数:2次
被考频率:低频率
总体答错率:43%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
相关知识点:74个
|
|
|
|
有效的测试方法可以识别和评价软件的各种风险,能把这些风险缩小到测试范围内,我们可以承受的风险,并制定测试计划实现这个目标。
|
|
|
|
风险承受的确定,从经济学的角度考虑就是确定需要完成多少测试以及进行什么类型的测试。经济学所做的判断确定了软件存在的缺陷是否可以接受,如果可以,能承受多少。测试的策略不再主要由软件开发人员和测试人员来确定,而是由商业的经济利益来决定的。
|
|
|
“太少的测试是犯罪,而太多的测试是浪费。”对风险测试得过少,会造成软件的缺陷和系统的瘫痪;而对风险测试得过多,就会使本来没有缺陷的系统进行没有必要的测试,或者是对轻微缺陷的系统所花费的测试费用远远大于它们给系统造成的损失。
|
|
|
测试费用的有效性,可以用测试费用—质量曲线(如下图所示)来表示。随着测试费用的增加,发现的缺陷也会越多,两线相交的地方是过多测试开始的地方,这时,排除缺陷的测试费用超过了缺陷给系统造成的损失费用。
|
|
|
|
|
|
在实际的软件测试中,资源条件是有限的,想要完成所有测试是不可能的。要么缺时间,要么缺钱和人,往往不知道实际测试成本有多少,也不知该怎样系统地降低成本。
|
|
|
测试工作的主要目标是使测试产能最大化,也就是,要使通过测试找出错误的能力最大化,而检测次数最小化。测试的成本控制目标是使测试开发成本、测试实施成本和测试维护成本最小化。
|
|
|
在软件产品开发过程中,各个阶段实施的测试成本并不很重要,有时可以看作是开发成本的一部分。但是,作为产品发布每一新版本而进行的重复性的测试所需的成本是主要考虑的问题。测试实施成本组成部分包括:测试准备成本、测试执行成本和测试结束成本。
|
|
|
|
测试准备成本控制的目标是使时间消耗总量、劳动力总量,尤其是准备工作所需的熟练劳动力总量最小化。准备工作一般包括:硬件配置、软件配置、测试环境建立,以及测试环境的确定等。
|
|
|
|
测试执行成本控制的目标是使总执行时间和所需的测试专用设备尽可能地减少。执行时间要求操作和用户进行手工操作执行测试时间应尽量减少,同时对劳动力和所需的技能也要尽量减少。如果需要重新测试,不同的选择会有不同的成本控制效果,重新测试的决策是在成本与风险的矛盾中进行的。
|
|
|
完全重新测试:将测试全部重新执行一遍,将风险降至最低,但加大了测试执行的成本。部分重新测试:有选择地重新执行部分测试,能减少执行成本,但同时加大了风险。
|
|
|
对部分重新测试进行合理的选择,将风险降至最低,而成本同样会很高,必须将其与测试执行成本进行比较,权衡利弊。利用测试自动化,进行重新测试,其成本效益是较好的。
|
|
|
|
①对由于程序变化而受到影响的每一部分进行重新测试;
|
|
|
|
其中,第一种办法风险要小一些,而第二种是一种主观制定的办法,是建立在对软件产品十分了解的基础上的。一般地,选择重新测试的策略建立在软件测试错误的多少(即软件风险的大小)与测试的时间、人力、资源投入成本的大小之间的折衷基础上。
|
|
|
|
测试结束成本的控制是进行测试结果分析和测试报告编制、测试环境的清除与恢复原环境所需的成本,使所需的时间和熟练劳动力总量减少到最低限度。
|
|
|
|
测试准备环境的配置是十分重要的,要求与软件的运行环境相一致。测试环境应建立在固定的测试专用硬软件及网络环境中,尽可能使用软件和测试环境配置自动化。
|
|
|
测试实施尽可能采用自动化的测试工具,减少手工辅助测试。若测试执行需要人工,最好是请初级技术人员,而不是测试工程师。测试工程师一般是作为测试项目经理。
|
|
|
测试结束编制测试报告时,测试结果与预期结果的比较采用自动化方法,以降低分析比较成本。
|
|
|
测试自动化的方法主要有:使用测试工具;测试用例的自动化执行;测试文档编制的模板自动化生成。
|
|
|
|
降低测试维护成本,与软件开发过程一样,加强软件测试的配置管理,所有测试的软件样品、测试文档(测试计划、测试说明、测试用例、测试记录、测试报告)都应置于配置管理系统控制之下。降低测试维护工作成本主要考虑:
|
|
|
|
|
. 定期检查维护所有测试用例,以获得测试效果的连续性。
|
|
|
保持测试用例效果的连续性是重要的措施,有以下几个方面:
|
|
|
. 每一个测试用例都是可执行的,即被测产品,功能上不应有任何变化;
|
|
|
. 基于需求和功能的测试都应是适合的,若产品需求和功能发生小的变化,不应使测试用例无效;
|
|
|
. 每一个测试用例不断增加使用价值,即每一个测试用例不应是完全冗余的,连续使用应是成本效益高的。
|
|
|
|
企业为了获得利润,需花费大量的资金进行测试。在质量方面的投资会产生利润,例如,提高产品质量会提高公司的声誉,使产品交付之后的维护成本减少,避免用户的报怨。测试是一种带有风险性的管理活动,减少企业在未来因为产品质量低劣而花费不必要的成本。
|
|
|
|
一致性成本(Cost of Conformance)
|
|
|
一致性成本是指用于保证软件质量的支出,包括预防成本(prevention cost)和测试预算,如测试计划、测试开发、测试实施费用。测试预算被称为审查费(appraisal cost):
|
|
|
CConformance=CPrevention+CAppraisal
|
|
|
非一致性成本(Cost of Nonconformance)
|
|
|
非一致成本是由出现的软件错误和测试过程故障(如延期、劣质的测试发布)引起的。这些问题会导致测试返工、补测、延迟。追加测试时间和资金就是一种由于内部故障引起的非一致成本。非一致成本还包括外部故障(软件遗留错误影响客户)引起部分。这些成本还包括技术支持小组预算,错误修正花费、产品收回、赔偿和销售成本。
|
|
|
CNonconformance=CInter-failure+CExter- failure
|
|
|
一般情况下,外部故障非一致成本要大于一致性成本与内部故障非一致成本之和。即:
|
|
|
CExter- failure>CPrevention+CAppraisal+CInter-failure
|
|
|
|
|
Cquality=CConformance+CNonconformance
|
|
|
缺陷探测率(DDP Defect Detection Percentage)
|
|
|
缺陷探测率DDP是另一个衡量测试工作效率的软件质量成本的指标。
|
|
|
|
其中,Bugstester为测试者发现的错误数;Bugscustomer为客户发现并反馈技术支持人员进行修复的错误数。
|
|
|
缺陷探测率越高,也就是测试者发现的错误多,发布后客户发现的错误就越少,降低了外部故障不一致成本,达到了节约总成本的目的,可获得较高的测试投资回报率(ROI)。因此,缺陷探测率是衡量测试投资回报的一个重要指标。
|
|
|
|
下面,通过一个案例来说明质量成本的概念。假设对一个开发的客户管理软件CRM进行测试。属于质量预防方面的一致性成本只考虑软件测试的投资,把发布之前和之后发现及修改的错误看成非一致性成本,假设发现的错误为300个,故障成本已知,测试过程的估算如下。
|
|
|
|
①在开发过程单元测试阶段,软件开发人员发现及修改一个错误需要50元;
|
|
|
②建立独立的测试进行集成和系统测试,测试人员发现错误,开发人员修改后,测试人员再确认,一个错误需要300元;
|
|
|
③在产品发布后,由客户发现,报告技术支持人员、相关开发人员修改,测试组再进行回归测试,一个错误需要2000元。
|
|
|
第1种情况,开发单位未建立独立测试队伍,由开发人员进行测试,发现100个错误,而产品发布后客户发现错误200个,只存在故障成本构成的总成本为405000元,缺陷探测率为33.30%。
|
|
|
第2种情况,开发单位建立了独立测试队伍,进行手工测试。投资预算人员费用为60000元,测试环境使用费为8000元,测试投资(一致性成本)为68000元;除了开发过程中开发人员发现并修改100个错误外,测试过程中测试人员发现错误150个,而产品发布后客户发现50个错误。总质量成本下降到218000元(如下表所示),手工测试总质量成本节约了187000元,即为利润。投资回报率(ROI)为275%,缺陷探测率为83.3%。
|
|
|
|
|
|
第3种情况,开发单位在独立测试中,采用自动测试工具,投资中增加10000元的工具使用费,测试投资为(一致性成本)78000元。由于使用测试工具,测试人员在测试中发现错误增加到190个,在产品发布后,客户发现错误下降到10个。总质量成本下降到160000元,比未建立独立测试前节约了245000元。投资回报率为314%,缺陷探测率为96.7%。
|
|
|
|
综上所述,建立独立的软件测试,选择好的测试方案,不但软件缺陷的探测率高,有效地控制软件的风险,提高软件质量,而且降低了软件的质量成本,测试的投资回报率也将随着明显提高。
|
|
|