Note/大学笔记/软件测试/软件测试-黑白盒测试.md
2024-01-12 16:35:29 +08:00

157 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 1.黑白盒测试的方法及其特点
### 黑盒测试
#### 1.等价类划分法
#### 2.边界值分析法
#### 3.因果图设计法
#### 4.正交实验设计法
### 白盒测试
#### 1.逻辑覆盖法
语句覆盖
判定覆盖
条件覆盖
判定-条件覆盖
条件组合覆盖
#### 2.插桩法
目标代码插桩法
源代码插桩法
## 2.简述性能测试指标
### 2.响应时间
响应时间Response Time指系统对用户请求作出响应所需要的时间。
这个时间是指用户从软件客户端发出请求到用户接收到返回数据的整个过程所需要的时间,包括各种中间件如服务器数据库等的处理时间。
### 2.吞吐量
吞吐量Throughput是指单位时间内系统能够完成的工作量它衡量的是软件系统服务器的处理能力。
吞吐量的度量单位可以是请求数/秒页面数/秒访问人数/天处理业务数/小时等。
### 3.并发用户数
并发用户数是指同一时间请求和访问的用户数量。
### 4.TPS
TPS是指系统每秒钟能够处理的事务和交易的数量它是衡量系统处理能力的重要指标。
### 5.点击率
点击率是指用户每秒向Web服务器提交的HTTP请求数这个指标是Web应用特有的一个性能指标通过点击率可以评估用户产生的负载量并且可以判断系统是否稳定。点击率只是一个参考指标帮助衡量Web服务器的性能。
### 6.资源利用率
资源利用率是指软件对系统资源的使用情况包括CPU利用率内存利用率磁盘利用率等资源利用率是分析软件性能瓶颈的重要参数。
## 3.简述性能测试种类
### 1.负载测试
负载测试是指逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能够承受的最大负载量。
### 2.压力测试
压力测试也叫强度测试,它是指逐步给系统增加压力,测试系统的性能变化,使系统某些资源达到饱和或系统崩溃的边缘,从而确定系统所能承受的最大压力。
压力测试可以揭露那些只有在高负载条件下才会出现的Bug如同步问题内存泄露等。
> 压力测试与负载测试:
> 负载测试是在保持性能指标要求的前提下系统能够承受的最大负载,而压力测试则是使系统性能达到极限的状态。
### 3.并发测试
并发测试是指通过模拟用户并发访问,测试多用户并发访问同一个应用同一个模块或者数据记录时是否存在死锁或其他性能问题。
并发测试一般没有标准,只是测试并发时会不会出现意外情况,几乎所有的性能测试都会涉及到一些并发测试,例如多个用户同时访问某一条件数据,多个用户同时在更新数据,那么数据库可能就会出现访问错误写入错误等异常情况。
### 4.配置测试
配置测试是指调整软件系统的软硬件环境,测试各种环境对系统性能的影响,从而找到系统各项资源的最优分配原则。
配置测试不改变代码只改变软硬件配置例如安装版本更高的数据库配置性能更好的CPU内存等通过更改外部配置来提高软件的性能。
### 5.可靠性测试
可靠性测试是指给系统加载一定的业务压力使其持续运行一段时间如7*24h测试系统在这种条件下是否能够稳定运行。
### 6.容量测试
容量测试是指在一定的软硬件及网络环境下,测试系统所能支持的最大用户数最大存储量等。
容量测试通常与数据库系统资源如CPU内存磁盘等有关用于规划将来需求增长如用户增长业务量增加等时对数据库和系统资源的优化。
## 4.性能测试流程
![image-20230405113002317](https://lsky.hhdxw.top/imghub/img/image-20230405113002317.png)
### 1.分析性能测试需求
在性能测试需求分析阶段,测试人员需要收集有关项目的各种资料,并与开发人员进行沟通,对整个项目有一定的了解,针对需要进行性能测试的部分进行分析,确定测试目标。
### 2.制定性能测试计划
● 确定测试环境:包括物理环境生产环境测试团队可利用的工具和资源等。
● 确定性能验收标准确定响应时间吞吐量和系统资源CPU内存等利用总目标和限制。
● 设计测试场景:对产品业务用户使用场景进行分析,设计符合用户使用习惯的场景,整理出一个业务场景表,为编写测试脚本提供依据。
● 准备测试数据:性能测试是模拟现实的使用场景,例如模拟用户高并发,则需要准备用户数量工作时间测试时长等数据。
### 3.设计测试用例
性能测试用例是根据测试场景为测试准备数据例如模拟用户高并发可以分别设计100用户并发数量1000用户并发数量等此外还要考虑用户活跃时间访问频率场景交互等各种情况。测试人员可以根据测试计划中的业务场景表设计出足够的测试用例以达到最大的测试覆盖。
### 4.编写性能测试脚本
● 正确选择协议。
● 根据工具的支持情况和测试人员熟悉程度选取脚本语言。
● 编写测试脚本时,要遵循代码编写规范,保证代码的质量。
● 做好脚本的维护管理工作。
### 5.测试执行及监控
● 性能指标:本次性能测试要测试的性能指标的变化。
● 资源占用与释放情况CPU内存磁盘网络等使用情况。性能测试停止后各项资源是否能正常释放以供后续业务使用。
● 警告信息:一般软件系统在出现问题时会发出警告信息,当有警告信息时,测试人员要及时查看。
● 日志检查:经常分析系统日志,包括操作系统数据库等日志。
### 6.运行结果分析
性能测试完成之后,测试人员需要收集整理测试数据并对数据进行分析,将测试数据与客户要求的性能指标进行对比,若不满足客户的性能要求,需要进行性能调优然后重新测试,直到产品性能满足客户需求。
### 7.性能测试总结
性能测试完成之后需要编写性能测试报告,阐述性能测试的目标性能测试环境性能测试用例与脚本使用情况性能测试结果及性能测试过程中遇到的问题和解决办法等。软件产品不会只进行一次性能测试,因此性能测试报告需要备案保存,作为下次性能测试的参考。
## 5.LoadRunner 三部分各部分的
### 1.VuGenVirtual User Generator
LoadRunner是通过多个虚拟用户在系统中同时工作或访问系统的环境来进行性能测试的虚拟用户进行的操作通常被记录在虚拟用户脚本中而VuGen就是用于创建虚拟用户脚本的工具因此它也称为虚拟用户脚本生成器。
在创建脚本时VuGen会生成多个函数用于记录虚拟用户所执行的操作并将这些函数插入到VuGen编辑器生成基本的虚拟用户脚本这个创建脚本的过程也叫做录制脚本。
### 2.Controller
Controller用于创建和控制LoadRunner场景场景负责定义每次测试中发生的事件包括模拟的用户数用户执行的操作以及测试要监控的性能指标等。
### 3.Analysis
Analysis是LoadRunner的数据分析工具它可以收集性能测试中的各种数据对其进行分析并生成图表和报告供测试人员查看。