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;我们将向你展示如何在你的…

【C++】字符串常量 与 字符数组 的区别

字符串常量&#xff1a;"abc" 字符数组&#xff1a;char a[3]{a,b,c}; 那么它们相等吗&#xff1f;它们之间的区别是什么呢&#xff1f; 答&#xff1a;不相等 区别在于 字符串常量"abc" 的本质是以空字符\0结尾的字符数组&#xff0c; 而char a[3]{a,b,…

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

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

XML与Java解析

XML规范统一&#xff0c;与操作系统、编程语言的开发平台无关。 在存储数据、交换数据、数据配置方面有优势。 格式如下 <?xml version"1.0" encoding"UTF-8"?> <books><!--图书信息 --><book id"101"><author&…

springboot整合minio做文件存储

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

TimeoutException(超时异常)可能的原因和解决方法

TimeoutException 通常表示一个操作在规定的时间内没有完成。以下是可能导致 TimeoutException 的一些常见原因以及相应的解决方法&#xff1a; 网络连接超时&#xff1a; 可能原因&#xff1a; 尝试与远程主机建立网络连接时&#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 年…

知识笔记(六十三)———JavaScript 工具库 | PrefixFree给CSS自动添加浏览器前缀

为了解决这个问题&#xff0c;国外的牛人开发了了一个 -Prefix-free 的插件&#xff0c;能够自动给我们添加这些前缀&#xff0c;我们仅仅需要编写一次代码&#xff0c;无需在考虑是否兼容其他浏览器&#xff0c;而且如果后面浏览器支持这个属性了&#xff0c;我们只需要移除 -…

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文库

JavaSE学习笔记 2023-12-21 --流

十九、流 上一篇 个人整理非商业用途&#xff0c;欢迎探讨与指正&#xff01;&#xff01; 文章目录 十九、流19.1流的概念19.2File类19.2.1File对象的创建19.2.2Java中的路径表示19.2.3File中的常用方法19.2.4FileNameFilter接口 19.3IO流19.3.1流的划分19.3.2字节流[重点]…

常用的 linux 命令

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

具身智能主流方法:模仿学习,和强化学习

1.区别 模仿学习&#xff1a;倾向于从优秀的个体展现出来的技能中快速学习&#xff0c;并获得泛化能力&#xff0c;但模仿学习目前学到的仅是相同技能的不用应用&#xff0c;比方说&#xff0c;“放苹果”泛化到“放梨”&#xff0c;“放牛奶”&#xff0c;都是“放”这个技能的…