测试复习
上一篇 / 下一篇 2009-05-22 07:55:38 / 个人分类:知识积累
系统测试的定义和目的:系统测试是对已经集成好的软件系统,做为一个整体基于计算机系统的一个元素,与计算机的硬件,外部设备,支持的软件,数据和人员等结合在一起,在实际的环境下进行的测试活动。目的是通过与系统的需求做比较,发现软件与系统定义的不符合或与之矛盾的地方。
测试的对象:是一个软硬件相结合的系统,尽可能的在实际的环境下测试。
测试的类型:总共有16项,
功能测试:根据需求说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。【不正确,遗漏,满足隐性需求,输入输出是否正确等】
性能测试:测试软件在集成系统中的运行性能的。【CPU的使用,IO,内存,信道,执行时间,等待IO完工的百分比,系统反应时间,吞吐量等】
压力测试:调查系统在超负荷的情况下的表现,【系统处理的时间等】
容量测试:使系统承受超额的数据容量来测试它是否正确的处理。
安全性测试:验证系统是否在实际中保护系统不受到非法入侵。【没有口令可以登陆,权限划分,错误和访问是否被记录,数据的保持和异常时数据的恢复】
GUI测试:针对软件的界面测试。【外观,界面元素的行为,布局,友好功能】
可用性测试:
安装性测试,
配置测试,
异常测试:测试系统的容错性和可恢复性。
备份测试
健壮性测试
稳定测试
在线帮助测试
网络测试:
稳定性测试
测试过程:
计划阶段:完成测试计划的写作,评审。
设计阶段:完成测试方案的写作,评审。
实现阶段:完成测试用例的写作,测试规程,系统测试预测项。
执行阶段:执行系统测试预测试项,测试用例,修改发现的问题并进行回归测试。提交预测试报告,测试报告,缺陷报告。
测试执行的概念:按一定的系统测试计划,依据测试用例,完成各项测试任务。包括环境准备,测试操作,测试记录,测试报告。
白盒测试的概念:是依据被测试软件分析程序内部的构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能的实现情况。基于程序内部构造的逻辑驱动测试。
白盒测试的意义:通过达到一定的逻辑覆盖率指标,是软件的内部逻辑控制结构上的问题得到消除,能够给与软件代码质量更多的保证,发现问题后解决的成本低。
白盒的测试方法:静态分析【控制流分析:,数据流分析,信息流分析】
动态分析:逻辑覆盖率,程序插装等。
白盒测试的特点:需要了解软件的实现,可以检测代码中的每条分支和路径,
揭示代码中的问题,测试比较彻底,实现代码的优化,投入大,成本高,不验证规格的正确性。
黑盒测试的定义:把测试对象看成一个黑盒,只考虑整体特性,不考虑其内部具体的实现情况。
黑盒测试的对象可以是一个系统,一个子系统,一个子模块,一个函数等。
黑盒测试是基于规格的测试。
黑盒测试的类型:功能性测试,容量测试,负载测试,恢复性测试。
黑盒测试的方法:等价类划分,边界值,因果图,判断表等。
黑盒测试的特点:比白盒测试的效率高,不需了解实现的细节,从用户的角度进行测试,有助于暴露任何于规格不一致或有歧义的问题。没有清晰的和简明的规格,用例难设计,不能控制内部执行路径,会有路径不能测试到。不能直接针对特定的程序段,
需求跟踪:
需求分配……需求评审……建立基线……需求跟踪 【变更控制,从需求分配开始】
测试用例:测试用例包括:编号,测试项目,标题,重要级别,预置条件,输入,操作步聚,预期输出。日期,作者等。
缺陷管理:
缺陷管理的目的:保证信息的一致性,保证缺陷得到有效的跟踪,解决,获取正确的BUG信息,用在缺陷分析和产品度量。
缺陷跟踪单的写作准则:
准确,清晰,简洁,完整,一致。
逻辑覆盖的主要类型:
语句覆盖:在测试时运行被测试程序后,程序中被执行到的可执行语句的比率。
分支覆盖:也叫判断覆盖,在测试时运行被测试程序后,程序中所有的判断语句的取真分支和取假分支被执行到的比率。
条件覆盖:在测试时运行被测试程序后,所有的判断语句中每个条件的可能取值出现的比率。
分支—条件覆盖率:所有判断语句中的每个条件的所有可能值和每个判断本身的判定结果出现的比率。
路径覆盖:程序中所有可能的路径被执行过的比率。
定义:单元测试是对软件基本组成单元进行的测试,如函数或一个类的方法。
目的:单元测试的目的在于发现各模块内部可能存在的各种错误,验证代码是与设计相符合的,发现设计和需求中存在的错误,发现在编码过程中引入的错误。
关注的重点:出错处理,单元接口,独立路径,边界条件,局部数据结构。
测试环境:单元测试不是一个独立的程序,必须为每个单元测试看法驱动单元和桩单元。
测试策略:
孤立的测试策略:不考虑模块与模块之间的关系,为每个模块开发桩和驱动。
简单,易操作,覆盖率高,桩和驱动开发量打,效率低。
自顶向下:先对顶层的单元进行测试,
可以节省驱动的开发,测试效率高,测试越来越复杂,开发和维护成本高。
自底向上:从底层测试,开发驱动。
可以节省桩的开发,效率高。底层函数的测试质量对上层的测试将产生影响。
回归测试:
完全回归和选择性回归.。
覆盖修改法,周边影响法,指标达成法。
测试用例的设计方法:
目 录
一、测试用例格式以及写作要点
二、系统测试用例设计方法
1、等价类划分法
2、边界值分析法
3、判定表法
4、因果图法
5、状态迁移图法
6、流程分析法
7、正交试验法
8、错误推测法
测试用例格式以及写作要点
测试用例编号
测试项目
测试标题
重要级别
预置条件
输入
操作步骤
预期输出
以上是一般的测试用例格式,可以根据公司具体要求删除一些或加入其它项。
测试用例编号
测试用例编号是由字母和数字组合而成的,用例的编号应该具有唯一性,易识别性。比如可以采用统一的约定,产品编号—ST—系统测试项名—系统测试子项名—编号。这样看到编号就可以知道是做的什么测试,测试的对象是什么。也方便维护。
测试项目
你现在这个测试用例所测的项目名,可以是测试用例所属的大类,被测需求,被测的模块,或者是被测的单元。例如:计算器加法功能。
测试标题
测试标题是对测试用例的简单描述。用概括的语言描述该测试用例的测试点。每个测试用例的标题不能够重复,因为每个测试用例的测试点是不一样的。例如:手机在没有SIM卡的情况下,拨打119。
重要级别
重要级别分为高中底三等:
高:保证系统基本功能、重要特性、实际使用频率比较高的用例;
中:重要程度介于高和底之间的测试用例;
底:实际使用频率不高、对系统业务功能影响不大的模块或功能的测试用例。
注:一般情况下,重要级别为高的测试用例,一个测试子项里有且尽有一个,大多数都是重要级别为中的测试用例。因为一般我们会进行一个系统测试预测试,如果重要级别为高的太多,则就失去了预测试的实际意义。
预置条件
就是执行当前测试用例的前提条件,如果不满足这些条件,则无法进行测试。
输入
测试用例执行时,需要输入的外部信息。例如某一个文件,数据记录等。
操作步骤
执行当前测试所要经过的操作步骤,需要给出每一步操作的描述,测试人员根据测试用例操作步骤,完成测试用例的执行。
预期输出
当前测试用例的预期输出结果。用来与实际结果比较,如果相同则该测试用例通过,否则该测试用例失败。
等价类划分法
何为等价类,某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。
等价类分为有效等价类和无效等价类,有效等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成的集合;无效等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。
划分等价类的方法:下面给出六条确定等价类的原则。
1、在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
3、在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
6、在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
根据等价类划分原则,将等价类填如下表。
根据等价类表,然后从划分出的等价类中按以下三个原则设计测试用例:
1、为每一个等价类规定一个唯一的编号。
2、设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
3、设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
举例:
拿PowerPoint的打印功能界面做例子,用等价类方法,划分等价类。
边界值分析法
测试经验丰富的前辈们公司我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对个中边界情况设计测试用例,可以查处更多的错误。
首先来了解一下边界点的定义,边界点分为上点、内点和离点。如图:
结合上面的图示。
上点,就是边界上的点,不管它是开区间还是闭区间,就是说,如果该点是封闭的,那上点就在域范围内,如果该点是开放的,那上点就在域范围外;
内点,就是在域范围内的任意一个点;
离点,就是离上点最近的一个点,如果边界是封闭的,那离点就是域范围外离上点最近的点,如果边界是开放的,那离点就是域范围内离上点最近的点。
现在大家都知道边界点了,那接下来就讲一下,边界值分析方法的原则:
1、 如果输入(输出)条件规定了取值范围,则应该以该范围的边界值及边界附近的值作为测试数据;
2、 如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据;
3、 如果程序规格说明书中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试数据;
4、 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据。
举例:
闭区间[50,100]的上点为50和100,离点是49和101,在域范围内的都是内点;
半开半闭区间(50,
TAG: