Basic Theory -system test

系统测试:

将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用))环境下,对计算机系统进行一系列的组装测试和确认测试。

目的:
发现功能错误或遗漏;
界面错误;
数据结构或外部数据库访问错误;
性能错误;
初始化和终止错误;
意义:
功能是否有效;
任何类型数据输入是否可以;
对输入数据是否敏感;
数据是否有边界;
能够承受何种数据率和数据量;
特定的数据组合是否可以
常用的测试技术:
1.功能性测试:是系统测试中最基本的测试,它不管软件内部的实现逻辑,主要根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品需求规格。
    主要发现几类错误:是否有不正确或遗漏了的功能?功能实现是否满足用户需求和系统设计的隐藏需求?能否正确的接受输入?能否正确的输出结果?
    测试需要注意的要点:多考虑用户是在什么情况下如何来使用该功能的,比如网络断掉的时候访问网站;多考虑用户对多个功能的组合运用;对于服务器软件考虑多用户同时访问、操作的情况
2.性能测试:来测试软件在集成系统中的运行性能的
一般性能信息:CPU使用情况;IO使用情况;每个指令的IO数量;信道使用情况;主要存储内存使用情况;第二存储内存使用情况;每个模块执行时间百分比;一个模块等待IO完工的百分比时间;模块使用在主存储上的时间百分比;指令随时间的跟踪路径;控制从一个模块到另一个模块的次数;遇到每一组指令等待的次数;系统反应时间;系统吞吐量,即每个时间单元的处理数量;所有主要指令的单元执行时间;
测试要点:验证系统实现的性能是否与性能需求完全一致;检测系统实现的具体性能到底怎样;
3.压力测试:调查系统在起资源超负荷的情况下的表现。
4.容量测试:使系统承受超额的数据容量来发现它是否能够处理的数据容量。
5.安全性测试:验证集成在系统内的保护机制是否能够在实际中保护系统不受到非法的侵入。
6.GUI测试:图形化用户接口GUI测试
测试要点:界面的显示;控件的功能
7.可用性测试:为了检测用户在理解和使用系统方面到底有多好;
8.安装测试
9.配置测试:测试系统在各种软硬件配置、不同参数配置下系统具有的功能和性能,可以说是兼容性测试;
10.异常测试:系统容错和可恢复性测试,通过人工干预手段使系统产生软硬件异常,通过验证系统异常前后的功能和运行状态,达到检测系统的容错、排除和恢复的能力;
测试要点:系统断电、系统断网、系统死掉、系统数据丢失、杀掉进程;
11.备份测试
12.稳定性测试:评价系统在一定负荷情况下,长时间运行的情况;
13其他测试:负载测试、恢复性测试、标杆测试、可靠性测试;
优点:

对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高;测试人员不需要了解实现的细节,包括特定的编程语言;测试人员和编码人员是彼此独立的;从用户角度进行测试,很容易被大家理解和接受;有助于暴露任何规格不一致或有歧义的问题;测试用例可以在规格完成之后马上进行

缺点:

只有一小部分可能的输入被测试到,要测试每个可能的输入流几乎是不可能的;没有清晰的和简明的规格,测试用例是很难设计的;如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会不存在不必要的重复;会有很多程序路径没有测试到;不能直接针对特定的程序段,这些程序可能非常复杂;

测试用例设计方法:
1.等价类划分法:是指某个输入域的子集合,在该子集合中,各种输入数据对于揭露软件中的错误都是等效的;
有效等价类:是指对于系统的规格说明来说是合理的,有意义的输入数据构成的集合
无效等价类:是指对于系统的规格说明来说是不合理或无意义的输入数据构成的集合
常见的能够划分等价类的地方:数值范围、重复次数、字符串长度、字符串组中字符串的个数、文件命名、文件大小、可用内存大小、屏幕分辨率、屏幕颜色种类、操作系统版本、超时时间
2.边界值分析法:假定大多数错误是发生在各种输入条件的边界上,如果在边界福建的取值不会导致程序出错,那么其它的取值导致程序错误的可能性很小;
使用条件:输入条件明确了一个值的取值范围或是规定了值的个数、输入条件明确了一个有序集合
边界点定义:上点(边界上的电,域的边界是封闭的,在域的范围内,域的边界是开放的,就在域的范围外)、离点(离上点最近的那个点,域的边界是封闭的,离点就在域范围外,域的边界是开放的,在域范围内)、内点(在域范围内的任意一点)
边界值分析原则:输入(输出)条件规定了取值范围,以该范围的边界内及边界附近的值作为测试用例;输入(输出)条件规定了值的个数,用最大个数,最小个数,比最小个数少1,比最大个数大1作为测试数据;程序规格说明中提到的输入或输出是一个有序集合,选取有序集合的第一个和最后一个作为测试数据;程序中使用了一个内部数据结构,选择这个内部数据结构的边界上的值作为测试数据;
一般和等价类划分法结合使用
3.判定表法:是分析和表达多种输入条件下系统执行不同动作的工具。
条件桩:列出系统所有的输入,次序无关紧要
动作桩:列出系统可能采取的操作,排列顺序没有约束
条件项:列出针对左列输入的取值,在所有可能情况下的真假值
动作项:列出在输入项的各种取值情况下应该采取的动作
动作项和条件项一起,指出了在条件项的各种取值情况下应该采取的动作,在判定表中贯穿条件项和动作项的一列就是一条规则,可以针对每个合法输入组合的规则设计用例进行测试
该方法普遍适用于各种类型特性的测试设计;
优点:充分考虑了输入条件间的组合,对组合情况覆盖充分;最终每个用例覆盖多种输入情况,有利于提高测试效率;设计过程中,对输入条件间的约束关系做了考虑,避免了无效用例,用例的有效性高;能同时得出每个测试用例的预期输出
缺点:当测试特性输入较多时,判定表的规模将会非常庞大;输入之间的约束条件不能有效区分输入是否确实需要进行组合测试,会造成不需要组合测试的输入做了组合,从而产生用例冗余;
4.因果图法:描述系统的输入输出、以及输入和输出之间的因果关系、输入和输入之间的约束关系。因果图绘制过程是被测系统外部特征的建模过程,根据系统输入输出间的因果图可以得到判定表,从而规划出测试用例。因果图和判定表两种方法在实际使用中结合紧密,一般同时使用,此时可以理解因果图为判定表的前置过程
四种关系:恒等关系(当输入项发生,会产生对应输出,当输入项不发生,不会产生对应的输出)、非关系(与恒等相反)、或关系(多个输入条件中,只要有一个发生,则产生对应输出)、与关系(多个输出条件中,只有所有输入项发生时,才会产生对应输出)
输入与输入之间的约束关系:异(所有输入中至多一个输入条件发生)、或(所有输入中至少一个输入条件发生)、唯一(所有输入中有且只有一个输入条件发生)、要求(所有输入中只要有一个输入条件发生,则其他输入也会发生)
5.正交实验法:挑选出适量的,有代表性的因子(输入),基于伽罗瓦理论的正交表,高效率、快速、经济的试验设计方法。通常把判断试验结果优劣标准叫做试验的指标,把所有影响试验指标的条件称为因子,而影响试验因子的叫做因子的状态。
正交实验法能借助于正交表快速设计测试用例,在工作中有着广泛的应用,但需要注意由于正交表是数学推导出来的,因此其中包含的组合并不考虑实际取值的意义,因此可能出现正交表中包含的组合不一定是用户常用的或者用户常用的组合并未包含在正交表中。
6.状态迁移法:被测系统,抽象出它的若干个状态,以及这些状态之间的切换条件和切换路径,那么我们可以从状态迁移路径覆盖的角度来设计用例对该系统进行测试。状态迁移法的目标设计足够的用例达到对系统状态的覆盖、状态-条件组合的覆盖以及状态迁移路径的覆盖
状态迁移图法实际上是测试了各种状态的转换,这些状态转换的测试在实际工作中是容易遗漏的。只要能将这些状态的转换测试到,是不是采用状态迁移图法并不重要,因为状态迁移图法只不过是给出一种将多个状态的转换串起来进行测试的思路而已。
7.流程分析法:流程分析法主要针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,这是从白盒测试中路径覆盖分析法借鉴过来的一种很重要的方法。
流程分析主要用于有先后顺序的测试:业务流程的测试、安装流程的测试
流程分析法的重点在测试流程,因此每个流程用一个测试用例验证即可,流程测试没有问题并不能说明系统功能就没有问题了,还需要针对单步功能进行测试,只有这两者都测试到了,才能算是比较充分的测试。
8.输入域测试法:是一种综合的方法,综合了前面的等价类划分法、边界值分析法等方法。
主要考虑三个方面:极端测试(需要选择测试数据覆盖输入域的极端情况)、中间范围测试(选择内部数据进行测试)、特殊值测试(要根据计算功能特性的基础来选择测试数据)
9.输出域分析法:由于系统输出和输入之间并不是线性关系,所以从输出域角度来看,对输出域进行等价类边界值分析,确定要覆盖的输出样点,然后反推应该输入的输入值。
10.异常分析法:针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,以此设计测试用例;主要针对系统的容错能力、故障恢复能力进行测试,简单说就是人为让系统出现故障,然后检查系统的故障恢复能力
常见故障:断电、断网、硬件损坏、数据损坏、内存不够、程序崩溃、服务挂掉。。。。
11.错误猜测法:依靠经验和直觉推测系统中可能存在的各种错误,从而针对性地编写检查这些错误的例子。
常见错误猜测:
a.软件特性错误特点:
历史版本错误易发生:继承版本的数据配置一致性处理错误很多、继承版本的数据库倒换备份容易出现问题;
开发人员错误易发点:开发人员容易忽略并行处理、输出英文信息常有错误;
用户接口:应用输入强制产生所有错误信息、施加强制软件建立有默认值的输入、探究允许的字符集合和数据类型、输入缓冲区溢出、找出可能会相互作用的输入及其组合、多次重复同样的输入和输入序列、使用不同的初始条件施加输入、强制每个输入产生不同的输出、强制无效输出、强制改变输出属性、强制屏幕刷新、输给无效文件名、改变文件访问许可、更改或破坏文件内容;
系统接口:模拟能执行所有错误处理代码并经历所有异常的故障、强制数据结构存储过多或过少的值、发现不充分地分享数据或交互的功能部件、考察内部数据约束(大小、维数、类型、形状、状态、位置)或系统的指标相关限制、按容量填满文件系统、强制介质忙或不可用、毁坏介质、内存耗尽处理、网络故障处理;
硬件、模块异常:资源限制极限模拟(CPU、内存等)超负荷运行、强制系统某个硬件模块失效、强制系统某个软件模块(进程级)失效或不能完全正常工作、根据产品内部模块间的耦合关系,强制子系统(某几个模块的组合)失效来观察系统的运行状况、对模块间(特别是互为备份的模块间)的通讯进行强制异常或失效、负荷分担方式下,验证系统对负荷异常增加时运行的情况、系统/模块失效或断电后系统恢复(双线结构系统总线失效、双平面结构系统的单平面内部件失效;
信息冗余类的异常测试:数据库事务完整性异常、数据库锁的异常处理、数据库的备份与恢复异常(各种备份方式及条件)、存储物理设备异常恢复(心跳线异常、网络中断、网络风暴、掉电)、协议消息IE(信元)异常、协议消息时序异常;
时间冗余类异常:握手中断(重发和握手)、定时器异常;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值