01_软件测试

01_软件测试

学习目标

1、能复述软件测试的定义

2、能说出7种测试分类的区别

3、能说出质量模型的重点5项

4、能说出测试流程的6个步骤

5、能说出测试模板8个要素

认识软件及测试

什么是软件

image-20231227115758545

软件:控制计算机硬件工作的工具

软件的基本组成

image-20231227120139135

软件生产过程

image-20231227120413951

什么是软件测试

软件测试:使用技术手段验证软件是否满足使用需求

image-20231227120827719

软件测试的目的

减少软件缺陷(bug)保障软件质量!

测试主流技能

1、功能测试

image-20231227122825264

2、自动化测试

使用代码或工具代替手工,对项目进行测试

image-20231227122954176

3、接口测试

image-20231227123337086

4、性能测试-工具实现

模拟多人使用软件,查找服务器缺陷

image-20231227124021040

5、性能测试-代码实现

image-20231227124140318

总结

功能测试:测试主要验证程序的功能是否满足需求

自动化测试:使用代码或工具代替手工,对项目进行测试

接口测试:使用代码或工具验证程序中的接口是否访问正常

性能测试:模拟多人使用软件,查找服务器缺陷

常见的测试分类

1、按测试阶段划分

image-20231227125411783

2、按代码可见度划分

image-20231227125603508

总结

1、按阶段划分

  1. 单元测试:针对程序源代码进行测试
  2. 集成测试:真对程序接口进行测试
  3. 系统测试:针对程序功能、非功能进行测试
  4. 验收测试:使用不同用户(内测、公测)进行测试

2、按代码可见度划分

  1. 黑盒测试:不关注代码,针对程序UI(User Ineterface)功能进行测试
  2. 灰盒测试:针对程序部分代码进行测试(接口)
  3. 白盒测试:针对程序源代码进行测试

测试模型

质量模型

衡量一个优秀软件的维度

在这里插入图片描述

案例

需求

1、开发一款网络游戏(要求:10个主功能)

2、游戏支持web(浏览器)端、App端

3、游戏上线后预计每日,20W用户玩家在线

功能性

需求测试
10个功能功能数量为10个
功能详情功能正确实现
错误处理情况

性能

需求测试
预估每日在线人数20w服务器每秒处理请求数
服务器硬件配置是否满足

兼容性

浏览器操作系统手机
谷歌Windows 7分辨率
IEWindows 10品牌
火狐Windows 11系统
欧朋Linux网络
苹果

易用性

  1. 简洁
  2. 友好
  3. 流畅
  4. 美观

可靠性

  1. 无响应:出现无响应
  2. 卡顿:响应时间慢
  3. 死机:系统崩溃

安全

  1. 传输加密
  2. 存储加密

在这里插入图片描述

可移植性

  • 网站数据迁移

可维护性

代码分模块开发、核心代码要有相关说明

总结

质量模型:

功能、性能、兼容、易用、安全、可靠性、移植性、维护性

软件测试流程

测试流程

  1. 计划编写:测什么、谁来测、怎么测
  2. 用例设计:验证项目是否符合需求的操作文档
  3. 用例执行:项目模块开发完成开始执行用例文档实施测试
  4. 缺陷管理:对缺陷进行管理的过程
  5. 测试报告:实施测试结果文档
  6. 需求审批:确保各个部门需求理解一致

image-20231227150049627

总结

如何开展软件的测试工作

  1. 需求评审
  2. 编写测试计划
  3. 用例设计
  4. 用例执行
  5. 缺陷管理
  6. 测试报告

测试用例

用例

用例:用户使用的案例

  1. 是否能开机:打开手机按下电源键3秒钟,看是否能开机。
  2. 验证内存:打开手机设置查看内存是否为64G
  3. 验证屏幕:打开手机在白屏背景下检查屏幕是否黑色点。
  4. 检查运行速度:打开手机下载吃鸡游戏,是否运行流畅。

测试用例

测试用例:是为测试项目而设计的执行文档

测试用例的作用

  • 防止漏测
  • 实施测试标准

用例编写格式

  • 用例编号:项目_模块_编号
  • 用例标题:预期结果(测试点)
  • 模块/项目:所属项目或模块
  • 优先级:表示用例的重要程度或者影响力P0~P4(P0最高)
  • 前置条件:要执行此条用例,有哪些前置操作
  • 测试步骤:描述操作步骤
  • 测试数据:操作的数据,没有的话可以为空
  • 预期结果:期望达到的结果

在这里插入图片描述

用例练习

学习目标

  1. 能对穷举场景设计测试点
  2. 能对限定边界规则设计测试点
  3. 能对多条件依赖关系进行设计测试点
  4. 能对于项目业务进行设计测试点

等价类划分

  • 说明:在所有测试数据中,具有某种共同特征的数据集合进行划分
  • 分类:
    • 有效等价类:满足需求的数据集合
    • 无效等价类:不满足需求的数据集合
  • 步骤:
    • 明确需求
    • 明确有效和无效等价类,有效等价取1个值,每个无效集合取1个
    • 提取数据编写测试用例

案例-1

需求:验证QQ账号的合法性

要求:6~10位自然数

1、明确需求

  • 长度:6-10位
  • 类型:自然数

2、划分有效等价和无效等价

  • 有效:8位自然数
  • 无效:3位自然数、12位自然数、8位非自然数、为空

3、提取数据编写用例

  • 有效:12345678
  • 无效:123、123456789012、1234567a、null

image-20231228181211243

案例-2

需求:验证某城市电话号码正确性

要求:

  1. 区号:空或者是三位数字
  2. 前缀码:非“0”且非“1”开头的三位数字
  3. 后缀码:四位数字

分析

image-20231228191155717

用例

image-20231228191240624

适用场景

  • 针对:需要有大量数据测试输入,但是没有办法穷举测试的方法
    • 输入框
    • 下拉列表
    • 单选复选框
  • 典型代表:页面的输入框类测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/582497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue多条数据渲染(带图片)

我在这用的为接口数据&#xff1a; 先调用接口获取需要的数据: 然后用&#xff1a;data绑定需要渲染的数据&#xff1b;&#xff08;记得包裹在<el-table>标签中&#xff09; 然后以此循环渲染数据&#xff1b;那怎么渲染出来图片呢&#xff1f; 在<el-table-column…

Vue3-25-路由-路由的基本使用

对路由的理解 路由 &#xff1a; 就是前端对页面路径的拦截&#xff0c;根据不同的路径渲染不同的组件&#xff0c; 从而实现单页应用中的页面局部刷新的功能。安装路由依赖 根据使用的不同的包管理工具采用不同的命令&#xff0c; 常见的三种包管理工具和对应的命令如下&…

day44 1228

作业1&#xff1a; #include <iostream>using namespace std;class Person {int *age;string &name; public:Person(int age,string &name):age(new int(age)),name(name){cout << "Person的构造函数" <<endl;}~Person(){delete age;cout…

【Java系列】多线程案例学习——基于阻塞队列实现生产者消费者模型

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习JavaEE的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录…

如何在Mac中设置三指拖移,这里有详细步骤

三指拖移手势允许你选择文本&#xff0c;或通过在触控板上用三指拖动窗口或任何其他元素来移动它。它可以用于快速移动或调整窗口、文件或图像在屏幕上的位置。 然而&#xff0c;这个手势在默认情况下是禁用的&#xff0c;因此在本教程中&#xff0c;我们将向你展示如何在你的…

数据库系统原理例题之——SQL 与关系数据库基本操作

SQL 与关系数据库基本操作 第四章 SQL 与关系数据库基本操作【例题】一 、单选题二 、填空题三 、简答题四 、设计题 【答案&解析】一、单选题二、填空题三、简答题四、设计题 【延伸知识点】【延伸知识点答案&解析】 第四章 SQL 与关系数据库基本操作 【例题】 一 、…

springboot整合minio做文件存储

一,minio介绍 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象文件可以是任意大小&…

verilog rs232串口模块

前面发了个发送模块&#xff0c;这次补齐&#xff0c;完整。 串口计数器&#xff0c;波特率适配 uart_clk.v module uart_clk(input wire clk,input wire rst_n,input wire tx_clk_en,input wire rx_clk_en,input wire[1:0] baud_sel,output wire tx_clk,output wire rx_clk )…

Kubernetes快速实战与核心原理剖析

K8S 概览 K8S 是什么 K8S 官网文档&#xff1a;https://kubernetes.io/zh/docs/home/ K8S 是 Kubernetes 的全称&#xff0c;源于希腊语&#xff0c;意为“舵手”或“飞行员”。Kubernetes 是用于自动部署、扩缩和管理容器化应用程序的开源系统。 Kubernetes 源自 Google 15 年…

EDKII:第一个Helloworld

目录 0 说明 1 步骤 1.1 简介 1.2 创建新文件 1.3 创建printhelloworld.c、printhelloworld.inf&#xff1a; 1.4 修改MdeModulePkg\MdeModulePkg.dsc 1.5 修改EmulatorPkg\EmulatorPkg.dsc 1.6 运行 0 说明 上篇文章记录了如何安装UEFI环境&#xff0c;在这里将会写下…

c++ / day03

1. 定义一个Person类&#xff0c;包含私有成员&#xff0c;int *age&#xff0c;string &name&#xff0c;一个Stu类&#xff0c;包含私有成员double *score&#xff0c;Person p1&#xff0c;写出Person类和Stu类的特殊成员函数&#xff0c;并写一个Stu的show函数&#xf…

CodeWhisperer——轻松使用一个超级强大的工具

CodeWhisperer 简介 CodeWhisperer是亚⻢逊云科技出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。 CodeWhisperer有以下几个主要用途&#xff1a; 解决编程问题&#xff0c;提供代码建议&#xff0c;学习编程知识等等&#xff0c;并且CodeWhisper…

基于人工势场法的航线规划

MATLAB2016b可以运行 基于人工势场法的航线规划资源-CSDN文库

常用的 linux 命令

常用的 linux 命令 1.从其他机器拷贝文件夹2.查看哪个程序在用特定端口3.实时监控日志文件内容4.查看指定用户拥有的进程5.查看磁盘空间使用情况6.文件搜索which&#xff08;whereis&#xff09; 显示系统命令所在目录find 查找任何文件或目录1&#xff09; 根据文件名称查找2)…

磁盘——磁盘管理与文件系统

目录 一、在linux中使用硬盘分三步 1、分区 2、文件系统&#xff08;管理大小权限。日志恢复&#xff09; 3、挂载&#xff08;硬盘和系统文件做关联&#xff0c;使用文件夹使用系统&#xff09; 二、磁盘结构 三、MBR与GPT磁盘分区 1、分区的原因&#xff0c;为什么分区…

Ubuntu18.04安装GTSAM库并验证GTSAM是否安装成功(亲测可用)

在SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;和SFM&#xff08;Structure from Motion&#xff09;这些复杂的估计问题中&#xff0c;因子图算法以其高效和灵活性而脱颖而出&#xff0c;成为图模型领域的核心技术。GTSAM&#xff08;Georgia Tech Smo…

K8s实战-init容器

概念&#xff1a; 初始化容器的概念 比如一个容器A依赖其他容器&#xff0c;可以为A设置多个 依赖容易A1&#xff0c;A2&#xff0c;A3 A1,A2,A3要按照顺序启动&#xff0c;A1没有启动启动起来的 话&#xff0c;A2,A3是不会启动的&#xff0c;直到所有的静态容器全 部启动完毕…

Java并发编程(四)

ThreadLocal 1.ThreadLocal是什么 ThreadLocal类让每一个线程都拥有了自己的本地变量&#xff0c;这意味着每个线程都可以独立地、安全地操作这些变量&#xff0c;而不会影响其他线程。 ThreadLocal的常用API get()&#xff1a;获取当前线程中与ThreadLocal对象关联的变量副…

Java EasyExcel 导入代码

Java EasyExcel 导入代码 导入方法 /*** 仓库库位导入** param req* param res* param files* throws Exception*/RequestMapping(value {"/import/line_store_locs"}, method {RequestMethod.POST})ResponseBodypublic void importStoreLoc(HttpServletRequest …

MySQL 索引、事务与存储引擎

MySQL 索引 索引的概念 索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址&#xff08;类似于C语言的链表通过指针指向数据记录的内存地址&#xff09;。使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索引…