软件评测师知识点12-18

十二、软件测试基础

经典定义:为了发现软件中的错误而执行程序
对象
目的:提高软件质量,成功的测试用例就是能发现迄今为止尚未发现的错误
★软件测试只能证明软件存在错误,不能证明软件没有错误
★资料表明: 60%以上的软件错误并不是程序错误,而是分析和设计错误

软件测试的原则

★所有的测试都应追溯到用户需求
★应尽早并不断地进行测试
★测试工作应避免由原开发软件的人或小组来承担(单元测试除外)
★穷举测试是不可能的,测试需要终止
★充分重视测试中的群集现象 : 1、就是在一个部分发现的缺陷比其他地方都多,该模块的缺陷率会高;2、某个程序员能力问题
★严格按照测试计划来进行,避免随意性

软件质量

软件特性的总和,软件满足规定或潜在用户需求的能力;也是软件特性具备"能力" 的体现
组成( IS09126 )
★内部质量 是从内部观点出发的软件产品特性的总体
★外部质量 是从外部观点出发的软件产品特性的总体
★使用质量 是从用户观点出发,来看待软件产品用于特定环境和条件下的质量

软件测试与质量保证

质量保证( QA )
其重要工作通过预防、检查与改进来保证软件质量
开展质量保证工作;采用“全面质量管理"和"过程改进"的原理
★着眼于软件开发活动中的过程、步骤和产物 --从开始到结束,全方位,范围广
软件测试
不关心过程的活动,而是对过程的产物以及开发出的软件进行剖析
★重要工作:问题的分析、追踪与回归测试
★是软件质量保证的一个重要环节 —不关心过程,质量保证的一个子过程

在这里插入图片描述
在这里插入图片描述
单元测试就是从最小的开发单位进行测试
桩模块:在测试上层模块的时候,需要底层模块接收数据;需要模拟一个底层模块接收数据即可
驱动模块:在测试底层模块的时候,需要上层模块的调用

在这里插入图片描述
在这里插入图片描述
一次性组装:所有模块全部组装在一起,优点:成本较低,缺点是难以定位问题
增殖式组装方式:先测一部分,测好了测另一部分
自顶向下优点:一开始即可发现控制的问题,缺点是问题常发生在底层模块
自底向上优点:可发现底层模块的问题,但是最后才会发现控制的问题
混合增值方式:同时使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
确认测试时确认系统是否满足需求;验收测试是验证软件是否满足要求,如果满足就接收,不满足就拒收

在这里插入图片描述

测试模型

在这里插入图片描述
底层测试指的是单元测试+集成测试,对编码进行测试
确认测试和验收测试是包含了底层和高层,是对需求进行测试
V模型缺点:测试相当于扫尾阶段,与测试应该尽早的进行原则相违背,当需求发生错误或变更,成本较大

在这里插入图片描述
局限性:测试是一个不完整不独立的过程,没有反馈机制

在这里插入图片描述
尽早准备尽早执行

在这里插入图片描述
在这里插入图片描述
使验收测试独立于技术测试;开发与测试紧密结合在一起

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记住软件测试的三类输入即可
在这里插入图片描述
概要设计说明书评测
评测的主要内容
★可追溯性:即分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成份是否可追溯到某一项需求
★接口:即分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否已经明确定义
★风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现
★实用性:即确认该软件设计对于需求的解决方案是否实用
★技术清晰度:即确认该软件设计是否以一种易于翻译成代码的形式表达
★可维护性:从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护
★质量:即确认该软件设计是否表现出良好的质量特征
★各种选择方案:看是否考虑过其他方案,比较各种选择方案的标街
★限制:评估对该软件的限制是否现实,是否与需求一致
★其他具体问题:对于文档、可测试性、设计过程等进行评估

软件失效分类与管理

在这里插入图片描述
软件错误是测试过程中发生的不希望的人为的错误,错误的发生会导致缺陷
软件缺陷是软件中出现的不希望的偏差,可能会导致软件故障
软件故障是软件中不希望出现的内部状态,会导致软件失效
软件失效是不希望或者不可接受的外部行为结果
在这里插入图片描述

软件错误的状态 — 记忆

★新信息(New)
★打开(Open)
★修正(Fix)
★拒绝(Declined )
★延期(Deferred)
★关闭(Closed )
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

======================================================================

十三 软件测试过程与管理

主要议题

★软件测试过程
★配置管理
★软件测试风险分析
★软件测试的成本管理
★DDP

软件测试过程

★测试过程的质量决定了软件测试的质量和有效性
★软件测试过程的管理是保证测试过程质量、控制测试风险的重要活动
★软件测试过程一般分成测试计划、测试设计与开发、测试实施、测试评审、测试结论
★遵循GB/T18905 ( ISO 14598.5 )《评价者用的过程》中定义的评价过程模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

软件测试的成本管理

降低测试实施成本
◆测试准备环境配置
◆测试实施尽可能采用自动化
◆测试结果与预期结果比较采用自动化方法
总结为:
准备:时间和劳动力方面
实施:准时间和专业设备
结束:时间和熟练劳动力

软件测试的成本管理

降低测试维护成本
◆主要考虑
对于测试中出现的偏差要增加测试
采用渐进式测试以适应新变化的测试
定期检查维护所有测试用例,以获得测试效果的连续性
◆保持测试用例效果的连续性的措施
每一个测试用例都是可执行的
基于需求和功能的测试都应是适合的
每一个测试用例不断增加使用价值

软件测试的成本管理

质量成本要素
◆质量成本=一致性成本+非一致性成本
非一致性成本:
内部故障引起的:追加测试时间和资金
外部故障(软件遗留错误影响客户)引起的:技术支持小组预算,错误修正花费,产品收回,赔偿和销售成本
◆一般情况下:外部故障非一 致成本要大于致性成本与内部故障非一 致成本之和

在这里插入图片描述
DDP中,软件开发人员测出的缺陷,需要加入到tester中作为计算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

===========================================================================

十四、黑盒测试

主要议题

★测试用例概述
★黑盒测试能发现的问题
★黑盒测试的分类
★等价类划分法
★边界值分析法
★因果图法
★判定表驱动法
★正交试验设计法
★功能图法
★场景法

测试用例设计

测试用例

  • 是将软件测试的行为活动,作一个科学化的组织归纳
  • 设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果
    测试用例的好处
  • 可以避免盲目测试并提高测试效率
  • 令软件测试的实施重点突出、目的明确
  • 软件版本更新后,只需少量修正便可进行测试,降低工作强度,缩短项目周期
  • 测试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升

在这里插入图片描述

黑盒测试方法
依据需求规格说明书进行测试

等价类划分法
概念
原因
价值
相关概念
等价类
有效等价类
无效等价类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常用前面四条规则

在这里插入图片描述

边界值分析法
  • 概念
  • 价值
  • 与等价类的区别
  • 生成测试用例的步骤
    首先确定边界情况
    选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值
    在这里插入图片描述
    如果输入值的有效范围是-1.0至+1.0,取-1.0,-1.1,+1.0,+1.1
    在这里插入图片描述
    看看
    错误推测法
    基本思想
    是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例
    如:程序只能输入数字,测试时可以输入字母进行测试

因果图法
概念
原因
价值
在这里插入图片描述
在这里插入图片描述
因果图导出测试用例的步骤

  • 分析程序规格说明的描述中:原因和结果
  • 分析程序规格说明描述中语义的内容,并将其表示成连接各个原因与
  • 各个结果的“因果图”
  • 标明约束条件
  • 把因果图转换成判定表
  • 为判定表中每一列表示的情况设计测试用例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
标N意思是无论这个数值怎么变都不会影响结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
正交法:从大量数据中挑选具有代表性的验证,理解概念并看得懂公司即可

正交试验法

◆设计测试用例的步骤
提取功能说明,构造因子“–” 状态表
加权筛选,生成因素分析表
利用正交表构造测试数据集,正交表的推导依据Galois理论
◆优点
节省测试工作工时
可控制生成的测试用例的数量
测试用例具有一定的覆盖率
在这里插入图片描述
功能图发,看看就好了

在这里插入图片描述
在这里插入图片描述
场景法生成测试用例的步骤
√ 根据说明,描述出程序的基本流及各项备选流
√ 根据基本流和各项备选流生成不同的场景
√ 对每一个场景生成相应的测试用例
√ 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据

等价类、边界值和场景法是重点,其中场景法是前几年常考的,但是近几年重点在等价类和边界值

=========================================================================

十五、白盒测试

白盒测试和黑盒测试都是下午题的重点内容
白盒测试的重点是逻辑覆盖和基本路径覆盖

白盒测试 结构测试对程序内部结构的分析、 检测来寻找问题
原则 — 记一记
+ 保证一个模块中的所有独立路径至少被使用一次
+ 对所有逻辑值均需测试True和False
+ 在上下边界及可操作范围内运行所有循环
+ 检查内部数据结构以确保其有效性
方法
基本路径测试法
逻辑覆盖法
代码检查法
其中逻辑覆盖和基本路径测试法是重点

在这里插入图片描述

逻辑覆盖法

类型 — 都要掌握
语句覆盖
判定覆盖
条件覆盖
判断条件覆盖
多条件覆盖
修正判定条件覆盖

约定是以最小的测试用例去覆盖
在这里插入图片描述
语句覆盖:设计足够多的测试用例,使得每个语句至少被覆盖一次
上图的语句总共有4条,为判断语句和执行语句

在这里插入图片描述
语句覆盖存在的问题:如果程序写错时判断不出来是逻辑与还是逻辑或;覆盖程度低,以上图为例,垂直的流程并没有覆盖

判断(分支)覆盖:每一个真分支和假分支都需要覆盖到
分支覆盖的覆盖率较高,但是存在的问题也是逻辑与和逻辑或区分不出来

在这里插入图片描述

条件覆盖:设计足够多的测试用例,使得每一个判定中条件的真假值都要出现过一次
条件覆盖值关注条件的真假,比如a的y>1&&z==0,此时需要对y取T/F,z也可取T或F
条件覆盖的问题也是:覆盖的分支不全,当y取T,z取F时走假分支,当y取F和z取T时,走的也是假分支
当y和z都取T或者取F时,逻辑与和逻辑或区分不出来

**条件判断组合覆盖(CDC):**既要满足条件覆盖的要求,也要满足判断覆盖的要求每一个条件的T和F都需要出现一次,每一个判断语句的真/假结果也要出现一次
第一个判断只能用TT和FF,用TF和FT会导致只走了假的,第二个条件判断语句同理
故有如图所示的路径覆盖

多条件覆盖:判断多条件的用例,使得判定中的各个条件的各种组合,判定中的各种组合至少出现一次即TT、TF、FT、FF
在这里插入图片描述
修正判定条件覆盖:当a&&b&&c时,当b和c的值不变,改变a的值为T,结果变为T;改变a的结果为F,结果改变为F;此时可以将这两个作为条件a的测试用例,条件a对于判定结果独立

修正判定条件覆盖( MCDC ) — 条件对判定结果是独立的
MC/DC首先要求实现条件覆盖、判定覆盖
在此基础上,对于每一个条件C ,要求存在符合以下条件的两次计算:
1 )条件C所在判定内的所有条件,除条件C外,其他条件的取值完全相同
2 )条件C的取值相反
3 )判定的计算结果相反
在这里插入图片描述
在这里插入图片描述

基本路径测试法

在这里插入图片描述
如1256、12356、1234、1235、1254等
其中圆圈表示无分支的语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
V(G)推荐使用区域数来计算,但是三种方法都需要记住
V(G)的含义是进行基本路径测试时,我们的最大用例数量是多少,测试用例的上限值
V(G) = 线性无关路径,线性无关路径就是至少包含一条其他路径没有的边
对于循环结构,第一条线性无关路径写0次循环的路径,即没有进入循环体的路径
在这里插入图片描述
画控制流图的时候复杂路径需要拆分
在这里插入图片描述

不同阶段的测试重点

单元测试阶段
●以代码检查、逻辑覆盖为主
集成测试阶段
●需要增加静态结构分析、静态质量度量
系统测试阶段
●应根据黑盒测试的结果,采取相应的白盒测试

================================================================

十六、面向对象的软件测试技术

在这里插入图片描述

面向对象分析( OOA )的测试 — 稍微记一下

对OOA阶段的测试划分为5个方面:
对认定的对象的测试
对认定的结构的测试
对认定的主题的测试
对定义的属性和实例关联的测试
对定义的服务和消息关联的测试

面向对象设计( OOD )测试

面向对象设计( OOD )测试考虑的3方面
对认定的类的测试
对构造的类层次结构的测试
对类库的支持的测试

面向对象在每次迭代后的评审

评审主要针对的2个方面
正确性
-致性

面向对象编程( OOP )的测试

面向对象编程( OOP )测试的2个方面
数据成员是否满足数据封装的要求
类是否实现了要求的功能

面向对象单元测试 ----- 下午题的重要考点

继承的成员函数是否都不需要测试
需要测试:1 :继承的成员函数在子类中做了改动
2 :成员函数调用了改动过的成员函数的部分
对父类的测试是否能照搬到子类:看是否有改动,没有改动就可以照搬
几种情况要测:
1.子类重新定义,发生了变更
2.父类没有,子类中增加的方法
3.父类和子类没发生变化,但是调用了其他改动过的方法
4.多态的情况下,需要变更基类测试用例的参数
在这里插入图片描述
在这里插入图片描述

测试方法

可以使用传统的方法
基于故障的测试
基于场景的测试
OO类的随机测试
类层次的分割测试
由行为模型(状态、活动、顺序和合作图)导出的测试

=================================================================

十七 应用负载压力测试

早些年常考,但是近几年没考,因为题目答题模式一样
主要记住那几个概念,什么是负载测试等,
第一问可能会需要去分类属于负载压力测试的哪些类,有可能有不属于负载压力测试的指标
第二问:问测试结果有没有符合用户的指标要求,做对比判断符不符合,问为什么不符合,就拿数据做对比即可
第三问:有这些问题,可以从哪些方面优化,参考故障分析的解题思路

负载压力测试

目的
◆在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况
◆预见系统负载压力承受力,在应用实际部署之前,评估系统性能
◆分析系统瓶颈、优化系统

	开发过程中尽可能早地进行负载压力测试
	负载压力测试是性能测试的重要组成部分		

性能测试
◆性能评测主要内容
评估并报告整个系统的性能(真实环境)
对系统的未来容量作出预测和规划
◆性能调优主要步骤
查找形成系统瓶颈或故障的根本原因
进行性能调整和优化
评估性能调整的效果
◆性能评测是性能调优的基础

相关概念 ----- 重要

负载测试:测试系统的最大负载量
压力测试:不断的增加系统负载,在满足用户要求的情况下看系统在什么负载条件下处于失效状态
◆并发性能测试:基于方案的考虑角度分
应用在 客户端/网络上/服务器上 性能的测试
◆疲劳强度测试: 日常业务疲劳强度模拟 高峰业务疲劳强度模拟
◆大数据量测试: 独立数据量测试 综合数据量测试

产品生命周期中负载压力测试计划

■需求分析中充分关注负载压力性能
√主要的焦点是为系统中共享的和有限的资源进行需求分析
■从设计中得到负载压力性能指标
■开发阶段创建一个负载压力性能测试环境
■验收阶段在多等级范围内测试并调优
■运行阶段持续监控系统负载压力性能

负载压力测试指标

交易处理性能指标 与客户端相关
并发用户数指标
交易处理指标
Web请求指标
Web页面组件指标
交易处理性能评估指标

并发用户数指标 与服务器相关
交易响应时间
交易通过率
吞吐量
点击率

服务器操作系统资源占用监控指标
CPU
磁盘管理
内存
交换区SWAP
进程
安全控制
文件系统

服务器操作系统资源占用监控指标 — 看看
读写页面的使用情况
超出共享内存缓冲区的操作数
上一轮询期间作业等待缓冲区的时间
共享内存中物理日志和逻辑日志的缓冲区的使用率
磁盘的数据块使用情况以及被频繁读写的热点区域
用户事务或者表空间事务
数据库锁资源
关键业务的数据表的空间增长
SQL执行情况

中间件资源占用监控 — 看看
◆以IIS为例
◆%File Cache Hits 静态网站:应保持80%
◆Web Service部分
Bytes Total/sec
Connection Refused
NOT Found Errors

故障分析重点内容 —重点
CPU问题 :CPU不够用,可以换一个更快的或者增加一个
内存和高速缓存:增大内存,或者优化数据库等的配置参数
磁盘(IO )资源问题
内存不够会导致磁盘问题,比如频繁的数据交换;考试的时候就看题目有没有给出要求,没有就可以判断为磁盘问题
配置参数
应用系统网络设置
数据库服务器故障定位
解题思路:一般先看软件方面(调度策略,并行策略,设计参数,软件优化),然后看应用服务器(CPU、内存、磁盘、网络)方面,然后是网络方面(带宽、数据传输时是否压缩),最后看数据库方面(查询策略、锁机制、查询语言的优化情况)

优化调整设置

CPU问题
考虑使用更高级的CPU代替目前的CPU
对于多CPU ,考虑CPU之间的负载分配
考虑在其他体系上设计系统,例如增加前置机、设置并行服务器等

内存和高速缓存
内存的优化包括操作系统、数据库、应用程序的内存优化
过多的分页与交换可能降低系统的性能
内存分配也是影响系统性能的主要原因
保证保留列表具有较大的邻接内存块
调整数据库缓冲区大小(用数据块的个数表示)是一个重要内容
将最频繁使用的数据保存在存储区中

磁盘(IO)资源问题
磁盘读写进度对数据库系统是至关重要的,数据库对象在物理设备上的合理分布能改善性能
磁盘镜像会减慢磁盘写的速度
通过把日志和数据库对象分布在独立的设备上,可以提高系统的性能
把不同的数据库房子不同的硬盘上,可以提高读写速度
把表放在一块硬盘上,把非簇的索引放在另一块硬盘上,保证物理读写更快

调整配置参数
包括操作系统和数据库的参数配置
并行操作资源限制的参数(并发用户的数目、会话数)
影响资源开销的参数
与I/O有关的参数
优化应用系统网络设置
可以通过数组接口来减少网络呼叫
调整会话数据单元的缓冲区大小
共享服务进程比专用服务进程提供更好的性能

负载压力测试要识别的故障问题

主要包括
非正确执行的处理
速度瓶颈与延迟
不能达到满意服务水平
接口页面不能正确地装载或者根本不能装载

Web网站故障分析解决方法
优化ASP代码
优化数据库调用
使用存储过程
调整服务器性能

=====================================================

十八 web应用测试

主要议题

★Web系统的测试策略
★Web应用开发测试
★Web应用运行测试

在这里插入图片描述

Web应用开发测试 ---- 重点

代码测试
◆源代码规则分析 :看源程序的语法是否符合规则
◆链接测试 :1、链接与页面是否对应;2、检查有没有有链接但是没有页面的;3、检查有链接但是没有链接到这个页面的
◆框架测试 :1、框架的大小与页面的关系;2、内容超出框架时是否提供滑动块;3.页面是否在正确的框架打开
◆表格测试 :测试页面的表格
◆图形测试 :1、头像能正常加载;2、图片的风格

组件测试 ---- 考察较多
◆表单测试
◆Cookies测试
◆脚本测试
◆CGI测试
◆ASP测试
◆ActiveX测试
页面测试

Web应用运行测试

客户端配置与兼容性 —重要—
◆浏览器的配置测试
◆平台兼容性测试
◆浏览器兼容性测试
◆移动终端的兼容性测试
◆打印机的兼容性测试

在这里插入图片描述
典型的考题:列出一些,请问我们需要做哪些兼容性测试,接下来请大家绘制一个兼容性测试的矩阵

Web应用运行测试

安全性测试 — 很少涉及
◆部署与基础结构
◆输入验证
◆身份验证
◆授权
◆配置管理
◆敏感数据
◆会话管理
◆加密
◆参数操作
◆异常管理
◆审核
◆日志记录

应用及传输安全 --看看–
◆应用级
注册与登录
在线超时
操作留痕
备份与恢复
◆传输级
HTTPS和SSL测试
服务器端的脚本漏洞检验
防火墙测试

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值