软件测试杭州师范大学期末大纲
2024-06-12 16:23:55 0 举报
AI智能生成
2023-2024年第二学期软件测试期末重点大纲思维导图
作者其他创作
大纲/内容
软件缺陷的含义:计算机系统或程序中存在的任何一种破坏正常运行能力的问题/错误,其结果会导致软件产品在某种程度上不能满足用户的需要
软件测试的含义
是一系列活动,以评价一个程序或系统的特性或能力并确定是否达到预期的效果
软件测试是为了发现错误而执行程序的过程
软件测试为什么从需求阶段开始
缺陷大部分在需求和设计阶段
软件测试的生命周期越早越好
软件测试的目的是尽可能早的发现缺陷
软件测试与软件质量之间的关系:测试是保证质量的重要手段,不能完全保证质量好
测试模型
V模型
瀑布模型
w模型
h模型
x模型
软件质量模型
功能性
准确性
适合性
互操作性
安全保密性
可靠性
成熟性
容错性
易恢复性
易用性
易理解性
易学性
易操作性
吸引性
效率
实践特性
资源利用性
维护性
易分析性
易改变性
稳定性
易测试性
可移植性
适应性
易安装性
共存性
易替换性
软件测试的分类
方法
黑盒测试
功能性测试
等价类划分法:把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例
有效等价类
无效等价类
边界值法
判定表法
错误推测法
非功能性测试
白盒测试
逻辑覆盖测试
将if(x>0 && y>0)和if(magic<0) 分别定义为P1、P2
将x>0、y>0、magic<0 分别定义为C1、C2、C3
将if(x>0 && y>0)和if(magic<0) 分别定义为P1、P2
将x>0、y>0、magic<0 分别定义为C1、C2、C3
语句覆盖:程序中每个语句至少执行一次
测试数据:x=1;y=1;magic=-2
执行语句:1,3,4
执行语句:1,3,4
测试数据:x=-1;y=-1;magic=1
执行语句:2,3,4
执行语句:2,3,4
判断覆盖(分支覆盖):使得程序中的每个判断的”真“和”假“都至少被执行一次
测试数据:x=1;y=1;magic=-1
条件判断:P1真,P2真
条件判断:P1真,P2真
测试数据:x=0;y=1;magic=1
条件判断:P1假;P2假
条件判断:P1假;P2假
条件覆盖:使得判定中的每个条件至少有一次取真值,有一次取假值
条件覆盖不能保证判定覆盖
条件覆盖不能保证判定覆盖
测试数据:x=1;y=-1;magic=-1
条件判断:C1真,C2假,C3真
条件判断:C1真,C2假,C3真
测试数据:x=0;y=5;magic=1
条件判断:C1假,C2真,C3假
条件判断:C1假,C2真,C3假
判定条件覆盖:既满足判断覆盖,也满足条件覆盖
测试数据:x=1;y1;magic=1
条件判断:C1真,C2真,C3假,P1真,P2假
条件判断:C1真,C2真,C3假,P1真,P2假
测试数据:x=0;y=0;magic=-1
条件判断:C1假,C2假,C3真,P1假,P2真
条件判断:C1假,C2假,C3真,P1假,P2真
条件组合覆盖:每个判定中条件结果的所有可能组合至少执行一次
条件组合覆盖能够满足语句覆盖、判定覆盖、条件覆盖、判定条件覆盖
但是条件组合覆盖不能保证所有路径被执行。
条件组合覆盖能够满足语句覆盖、判定覆盖、条件覆盖、判定条件覆盖
但是条件组合覆盖不能保证所有路径被执行。
路径覆盖:设计测试用例,覆盖程序中所有可能的路径
基本路径测试
1.画出程序控制流图
2.计算环路复杂度
3.导出可执行路径:独立路径指和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路,它必须至少包含一条在本次定义路径之前不曾用过的边
4.设计测试用例
测试阶段或层次
单元测试:对软件基本组成单元进行的测试
为什么要进行单元测试
尽早发现错误
检查代码是否符合设计和规范,有利于将来代码的维护
集成测试:一种旨在暴露单元接口之间、组件/系统间交互或协同工作时所存在的缺陷的测试。
重在接口测试。
重在接口测试。
非渐增式测试模式
先分别测试每个模块,再把所有模块按设计
要求放在一起组成所要的程序,如大棒模式(Big-bang Integration)
要求放在一起组成所要的程序,如大棒模式(Big-bang Integration)
渐增式测试模式
把下一个要测试的模块同已经测试好的模块结合起来进行测试,
测试完以后再把下一个已测试的模块结合进来测试。
(自顶向下法:广度优先,深度优先。自底向上法或三明治方法:使用驱动程序)。
测试完以后再把下一个已测试的模块结合进来测试。
(自顶向下法:广度优先,深度优先。自底向上法或三明治方法:使用驱动程序)。
接口测试的要点
接口中所有的参数的不同类型的有效值都要被测试
参数的每个错误类型都要准备一个异常用例
把每个参数单独作为条件来进行测试,再进行多条件关联组合测试
接口测试的依据:接口文档
持续集成测试:源代码/管理器
系统测试:是对系统的测试,将硬件、软件、操作人员看作一个整体,
检验它是否有不符合系统说明书的地方。
检验它是否有不符合系统说明书的地方。
功能测试
非功能测试
性能测试:为了发现系统性能问题或获取系统性能相关指标而进行的测试
一般在真实环境、特定负载条件下,通过工具模拟实际软件系统的运行及其操作,
同时监控性能各项指标,最后对测试结果进行分析来确定系统的性能状况。
性能需求应具有可测试性
一般在真实环境、特定负载条件下,通过工具模拟实际软件系统的运行及其操作,
同时监控性能各项指标,最后对测试结果进行分析来确定系统的性能状况。
性能需求应具有可测试性
主要的性能指标
服务器的各项指标(CPU,内存占用率)、后台数据库的各项指标、网络流量,响应时间
性能测试的分类
性能验证测试
性能基准测试:在系统标准配置下获得有关性能指标,作为将来性能改进的基准线。
关键是要获得一致的、可再现的结果
关键是要获得一致的、可再现的结果
将系统置于相同的高负载下,将请求之间间隔时间设为零。
这样服务器会立即超载,并开始构建执行队列。
如果请求(虚拟用户)数保持一致,基准测试的结果会非常精确
——>flat运行是获得基准测试数据的理想模式
这样服务器会立即超载,并开始构建执行队列。
如果请求(虚拟用户)数保持一致,基准测试的结果会非常精确
——>flat运行是获得基准测试数据的理想模式
性能规划测试
容量测试:不断增加负载直到系统奔溃,从而确定最大负载
压力测试:高负载或极限负载下的测试,长时间或超大负荷的运行测试软件,来测试系统的性能,可靠性,稳定性
高负载下长时间稳定性压力测试
已先负载情况下导致系统奔溃的破坏性压力测试
负载测试
目标
测试在一定负载情况下,系统的性能
是通过模拟实际软件系统所承受的负载条件(并发用户数)、改变系统负载大小和负载方式来发现系统中存在的问题
实际中,我们常从较小的负载开始,逐渐增加,直到超时或资源耗尽
性能测试的指标
数据传输的吞吐量
数据处理的效率
数据请求的响应时间
内存和CPU使用率
连接/发送/处理时间
第一次缓冲时间
性能测试的目标
获取系统性能的某些指标数据
为了验证系统是否达到用户提出的性能指标
发现系统中存在的性能瓶颈,优化系统的性能
负载模式
性能测试的需求
最终用户体验
商业需求:比竞争对手产品好
技术需求:CPU使用率不超过70%
标准要求
性能测试的基本过程
确定性能测试需求
根据测试需求,选择测试工具和开发相应的测试脚本
建立性能测试负载模型
执行性能测试
分析测试
安全性测试
安全目标
保密性
完整性
可用性
容错性测试
可靠性测试
兼容性测试
回归测试
验收测试
目标/特性
功能测试
强壮性测试
适用性测试
安全性测试
可靠性测试
测试方式
手动测试
自动测试
是否运行程序
静态测试:不运行程序,对代码通过检查、阅读进行分析
代码审查
动态测试:通过运行程序,检查运行结果与预期结果之间的差异
动态测试的步骤
1.设计测试用例
2.搭建测试环境
3.编写测试程序
驱动模块 (driver) 是指模拟被测模块的上
级模块, 驱动模块用来接收测试数据,启
动被测模块并输出结果
级模块, 驱动模块用来接收测试数据,启
动被测模块并输出结果
桩模块 (stub) 是指模拟被测模块所调用的
模块;
模块;
4.执行测试
5.分析测试结果
测试方法的选择
测试用例的一般格式
用例编号:001
用例名称:登录_1_正常登录
前置条件:进入杭师大教务处慕课平台
输入
账号:sjm001
密码1234556
步骤:选择登录,在出现的界面上一次输入上述各项
预期输出:成功登录并进入平台
缺陷管理
缺陷:最终产品与用户期望的不一致
功能错误
功能遗漏
超出需求的部分
性能不符合要求
缺陷的严重程度
致命的
严重的
一般的
微小的
缺陷的优先级
严重程度高的优先级不一定高
严重程度低的优先级不一定低
严重程度高的优先级不一定高
严重程度低的优先级不一定低
立即解决(P1)
高优先级(P2)
正常排队(P3)
低优先级(P4)
按照Bug生命周期划分
新建:由测试人员发现并提交
已分配:开发人员接收了Bug
解决:开发人员已经解决,并给测试人员回归测试
关闭:测试人员回归测试确认已经解决
重新打开
缺陷管理流程
软件缺陷项目列表
编号
模块名称
测试人
缺陷类型
严重程度
可重复性
缺陷状态
测试平台
优先级
简述
操作步骤
预期结果
实际结果
注释
收藏
0 条评论
下一页