软件测试概念

软件测试的概念:1 错误改正代价与发现的时间呈现指数增长的趋势 2 软件测试不仅仅限于程序编码之后,而应该贯穿于软件开发的全过程。软件测试并不等于程序测试,因

软件测试的概念:
1.错误改正代价与发现的时间呈现指数增长的趋势

2.软件测试不仅仅限于程序编码之后,而应该贯穿于软件开发的全过程。软件测试并不等于程序测试,因此,需求分析、概要设计、详细设计以及程序编码等各个阶段所得到的文档资料,包括需求规格说明、软件概要设计规格说明、软件详细设计规格说明以及源程序,都应作为软件测试的对象。

3.关键性分析、可跟踪性分析、评估和接口分析等都是验证和确认的主要活动。其中关键性分析的目的是为了保证资源的有效利用,尤其在需求资源得不到满足时,有必要在整体上分析整个系统的资源分配策略;可跟踪性分析就是标识原始需求和相应开发结果之间关系的能力,它的目的是保证规格说明中的每项需求被正确标识,当前阶段与前后阶段之间的跟踪是一致的。评估是不仅仅要对最终的软件产品进行评估,而是软件开发各个阶段都需要进行的.接口分析必须关注3种接口,即用户接口、硬件接口和软件接口。

4.软件质量保证活动的目标为:制定和规划软件质量保证的任务,客观地验证软件产品和各项任务是否遵循适用的标准、规程和需求,相关小组和个人保持良好的沟通,及时通知他们在软件质量保证方面的认识和结果,高层管理人员能够参与并帮助解决项目中不能解决的不相容问题。

5.软件验证和确认理论是测试过程的理论依据,验证是检查软件开发的各个阶段过程活动的结果是否满足规格说明的描述,证实各阶段之间的逻辑协调性、完备性和正确性。确认是证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。Bohem给出了一个经典定义:验证是检查我们是否正在正确地建造一个产品,它强调的是过程的正确性。而确认是检查我们是否在建成一个正确的产品,它强调的是产品的正确性。

6.软件生产的3个最重要因素是:质量、进度和费用。

7.由测试用例的原则第5条(设计测试用例时应该充分注意测试中的群集现象,即测试后程序中残存的错误数与已发现的错误数目成正比),故在测试时应当对错误群集的程序段进行重点测试,以提高测试的效率及测试投资的效益。目前,在软件测试领域流行一个“80-20原则”,认为80%的错误是在20%的模块中发现的,所以在测试时如果发现某一程序模块似乎比其他程序模块有更多的错误倾向时,则应当花费较多的时间和代价测试这个程序模块,从而提高测试的效率。

8.V模型反映出测试活动与分析设计活动的关系,强调了在整个项目开发过程中需要经历的不同测试级别,忽视了测试的对象不应该仅仅是程序,W模型是对V模型进行了补充,明确指出:测试的对象不仅仅是程序,需求、设计等同样需要进行测试,H模型指出软件测试是一个独立的流程,只要某个测试达到准备就绪点,测试执行活动就可以开展,软件测试贯穿于产品的整个生命周期,与其他流程可以并发进行。

9.软件测试过程体现了软件测试的流程和方法,与软件开发过程一样,都遵循软件工程原理,遵循管理学原理

10.Glenford J.Myers于1979年给出测试的定义为:软件测试是为发现错误而执行的一个程序或者系统的过程。同时他给出了三个关于测试的重要观点:· 测试是为了证明程序有错,而不是证明程序正确。· 一个好的测试用例在于它能发现以前未发现的错误。· 一个成功的测试是发现了以前未发现的错误的测试。

11.验收测试是以需方为主的测试,其对象是完整的、集成的计算机系统,技术依据是软件研制合同;软件验收测试工作应满足被验收测试的软件已通过系统测试。验收测试一般由软件的需方组织,由独立于软件开发的人员实施。如果验收测试委托第三方实施,一般应委托国家认可的第三方测试机构。

12.风险是指发生了可能给项目成本、进度和质量带来坏的影响的事情。风险有可能是可以避免的,可以采取措施避免其发生,也有可能是不可避免的,只能降低风险带来的损失。

13.TSM分为3个级别。第一级:弱(weak)。可测性支持,只提到很少的测试问题。第二级:基本(basc)。可测性支持,提到了基本的测试问题。第三级:强(strong)。可测性支持,提到了所有的测试问题

14.根据《GB/T 15532—2008计算机软件测试规范》,测试用例的设计应遵循下面原则:①基于测试需求的原则。②基于测试方法的原则。③兼顾测试充分性和效率的原则。④测试执行的可重复性原则。
     根据《GB/T 15532—2008计算机软件测试规范》,软件测试管理包括测试过程管理、配置管理和测试评审管理。

15.软件开发过程是一个自顶向下、逐步细化的过程,而软件测试过程则是相反的顺序自底向上、逐步集成的过程。

软件质量:
1.按照ISO/IEC 9126—1:2001,软件质量模型可以分为内部质量模型、外部质量模型和使用质量模型3种。

2.软件质量的度量主要是根据软件生存周期中对软件质量的要求所进行的一项活动。它主要分为三个方面:外部度量、内部度量和使用质量的度量。其中外部度量是在测试和使用软件产品过程中进行的,通过观察该软件产品的系统行为,执行对其系统行为的测量得到度量的结果;内部度量是在软件设计和编码过程中进行的,通过对中间产品的静态分析来测量其内部质量特性;使用质量的度量是在用户使用过程中完成的。

3.内部质量是表征软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力的产品属性的全体。内部质量是从内部的观点看软件产品的全部特性,内部质量需求包括静态模型、动态模型、其他文档和源代码等。

4.软件的使用质量属性分为4种:有效性、生产率、安全性和满意度。

5.外部质量是针对要求的满足程度而言的,是表征软件产品在规定条件下使用时,满足规定的和隐含的要求的程度;而内部质量则主要是根据软件产品的情况给出的,是表征软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力的产品属性的全体

健壮性测试:
1.健壮性测试常用的测试用例设计方法有:故障插入测试、变异测试和错误猜测法。失效恢复测试常用的测试用例设计方法有:规范导出法、错误猜测法、基于故障的测试和基于风险的测试

2.健壮性测试又称为容错性测试,其目的是检查系统能否自动从故障中恢复以及自我修复的能力,这就要求系统本身对运行状态可能出现的异常进行充分估计,并提前进行预案设计,以保证系统能够从错误中恢复。常用的测试用例设计方法有:故障插入测试、变异测试和错误猜测法。而规范导出法是失效恢复测试常用的用例设计方法。
软件集成测试的目的是检验单元之间、软件单元和已集成的软件系统之间的接口关系,并验证已集成软件系统是否符合设计要求。


软件缺陷:
1.在软件缺陷中,打开是属于活动状态,而解决与关闭都属于非活动状态。

2.通常来说,软件缺陷大多数是来自软件开发项目的需求和设计阶段的。

3.从测试观点可以将软件缺陷分为5类,分别为:功能缺陷、系统缺陷、加工缺陷、数据缺陷、代码缺陷。其中功能缺陷的表现有:规格说明书缺陷、功能缺陷、测试缺陷和测试标准引起的缺陷。控制与顺序缺陷属于系统缺陷。