软件测试基础入门

一、基础概念

什么是软件:控制计算机硬件的工具,操作系统软件、应用软件

软件基本组成:客户端、服务器、数据库

软件产生过程:需求构思--> 需求文档 -->UI/UE -- >产品研发 -->产品测试 -- >部署上线

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

软件测试的目的:减少软件中的缺陷,保证软件质量;

二、主流技术

1、功能测试:执行测试用例

2、自动化测试:通过工具或代码执行测试用例,场景:回归测试,新增功能是否影响原有功能

3、接口测试: 后端实现接口,使用工具或代码对服务端接口进行测试(根据接口文档),JMeter,Postman;

4、性能测试:模拟多人同时使用,查找服务器缺陷,

TPS和QPS:Transation &Query  每秒提交或查询的数据请求

5、安全测试:

三、测试分类:

1、按照软件研发阶段,测试阶段划分:

  • 单元测试:针对程序源代码进行测试,目前都是开发在做
  • 集成测试:又称接口测试,针对模块之间的访问地址进行测试
  • 系统测试:对整个系统进行测试,包括功能、性能、稳定性、兼容性测试、文档测试等
  • 验收测试:针对特殊项目,比如游戏,有内测、公测,不同人群来发现项目缺陷;

2、按代码可见度

  • 黑盒:源代码不可见,UI可见
  • 白盒:全部源代码可见,UI不可见,比如单元测试
  • 灰盒:部分源代码可见,功能不可见,集成测试(接口测试)

3、专项测试:

  • 性能测试
  • 安全测试

四、测试的质量模型

1、什么是质量模型:衡量一个软件优秀的维度,从哪些方面去衡量

2、共8项,重要五项:前五项

  • 功能性:功能数量是否符合需求,功能是否正确实现,错误处理情况
  • 性能:服务器每秒能处理的请求数(TPS和QPS,数据查询和提交),服务器硬件是否满足需求,
  • 兼容性:浏览器(谷歌、IE、火狐、ope、苹果,其他不用测,都是使用的这些浏览器内核技术),操作系统(在Linux、Windows、Mac),手机(分辨率、品牌、操作系统、网络(弱网)
  • 其他(与其他软件是否兼容,是否会导致其他主要功能不能用));
  • 易用性:简洁(对比竞品),友好、流畅、美观
  • 可靠性:无响应、卡顿、死机
  • 安全性:信息传输、信息存储
  • 可维护性:网站数据迁移是否方便,方便排查问题,文档是否完整
  • 可移植性:

五、测试流程

  • 需求评审:各个部门对需求理解保持一致,测哪些功能,哪些功能是核心重要的,
  • 测试计划编写:测什么,谁来测,怎么测(功能?性能?接口)主要是测试主管在做
  • 用例设计:验证项目是否符合需求操作文档
  • 用例执行:对测试用例文档进行实施测试
  • 缺陷管理:对缺陷进行管理的过程
  • 测试报告:实施测试的结果文档

六、测试用例:

1、什么是 用例:用户的使用案例;

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

3、作用:没文档是否能测?防止漏测、实施测试的标准

4、编写格式:八大要素:

  • 用例编号:项目_模块_编号
  • 用例标题:预期结果(测试点),为什么这样写?用例多方便检索
  • 测试项目/模块:所属项目/模块
  • 优先级:表示用例的重要程度或影响力,P0~P4(P0为最高),用户使用频率最高的是核心功能-P0;
  • 前置条件:要执行此条用例,需要那些前置操作,比如要下单,必须先登录
  • 测试步骤:描述操作步骤
  • 测试数据:操作的数据,没有可以为空
  • 预期结果:期望达到的结果

5、实战:

1、用例设计思路:

(1)冒烟检查系统是否可用,UI设计是否符合需求,页面是否有错别字,图片加载速度等;

(2)输入框空值检查、长度检查、正则检查、输入数据类型检查;

(3)账号是否存在,账号和密码是否匹配;

(4)安全检查,密码输入是否隐藏,是否要求https,传输报文加密检查,浏览器地址栏是否包含敏感信息检查;

(5)其他:操作日志检查、账号密码错误次数检查;

2、登录功能测试用例设计实战:

用例编号用例标题项目/模块优先级前置条件测试步骤测试数据预期结果
business_login_0001登录失败_账号或密码为空商城_登录p4登录页面能正常访问1、打开登录页面;
2、输入账号密码
3、点击登录
输入账号为空,
不输入或输入空格;
输入密码;
1、登录失败,提示请输入账号或密码
2、提示信息样式为红色
business_login_0002登录失败_账号长度小于6个字符或大于16个字符商城_登录p41、登录页面能正常访问
2、账号和密码不为空
1、打开登录页面;
2、输入账号密码
3、点击登录
1、账号:12345
或12345678901234567
2、输入密码:123456
1、登录失败,提示账号长度在6~16字符之间,请重新输入;
2、提示信息样式为红色;
3、清空输入框内容
business_login_0003登录失败_账号以数字开头、仅包含全部数字、仅包含小写字母和数字商城_登录p41、登录页面能正常访问
2、账号不为空
3、账号长度在6~16之间
1、打开登录页面;
2、输入账号密码
3、点击登录
1、输入账号:123456、123356a、a123456;
2、输入密码:1234567
1、登录失败,提示账号不符合包含大小写字母+数字,请重新输入;
2、提示信息样式为红色;
3、清空输入框内容
business_login_0004登录失败_密码长度小于6个字符或大于16个字符商城_登录p41、登录页面能正常访问
2、账号不为空
3、密码不为空
1、打开登录页面;
2、输入账号密码
3、点击登录
1、账号:Zz123456
2、输入密码:12335或1234455555555555
1、登录失败,提示密码长度在6~16字符之间,请重新输入;
2、提示信息样式为红色;
3、清空输入框内容
business_login_0005登录失败_密码以数字开头、仅包含全部数字、仅包含小写字母和数字商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
1、打开登录页面;
2、输入账号密码
3、点击登录
1、输入账号:Zz123456;
2、输入密码:123456、123356a、a123456;
1、登录失败,提示密码不符合包含大小写字母+数字,请重新输入;
2、提示信息样式为红色;
3、清空输入框内容
business_login_0006登录成功_密码输入框没有隐藏输入文本商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
1、输入账号:Zz123456;
2、输入密码:Aa12345678;
1、登录成功,密码输入时应隐藏;
business_login_0007登录失败_账号不存在或未注册商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
1、输入账号:Zz123456;
2、输入密码:Aa12345678;
1、登录失败,提示账号不存在,请重新输入;
2、提示信息样式为红色;
3、清空输入框内容
business_login_0008登录失败_账号密码错误商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
1、输入账号:Zz123456;
2、输入密码:AAAAAAAAAA;
1、登录失败,提示账号或密码错误,请重新输入;
2、提示信息样式为红色;
3、清空输入框内容
business_login_0009登录成功_密码明文传输商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
4、打开Network网络请求查看请求参数中密码是否加密传输
1、输入账号:Zz123456;
2、输入密码:Aa12345678;
1、登录成功,查看NetWork请求参数为密文传输
business_login_0010登录成功_账号密码参数在浏览器地址栏显示商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
4、查看浏览器地址栏是否包含敏感信息
1、输入账号:Zz123456;
2、输入密码:Aa12345678;
1、登录成功,查看浏览器地址栏不包含敏感信息
business_login_0011登录成功_账号密码符合格式要求和安全性要求商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
4、查看浏览器地址栏是否包含敏感信息
5、打开Network网络请求查看请求参数中密码是否加密传输
1、输入账号:Zz123456;
2、输入密码:Aa12345678;
1、登录成功,查看浏览器地址栏不包含敏感信息
2、查看浏览器地址栏不包含敏感信息
business_login_0012登录失败_未跳转项目首页商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
4、查看浏览器地址栏是否包含敏感信息
5、打开Network网络请求查看请求参数中密码是否加密传输
6、查看是否跳转项目首页
1、输入账号:Zz123456;
2、输入密码:Aa12345678;
1、登录成功,查看浏览器地址栏不包含敏感信息
2、查看浏览器地址栏不包含敏感信息
3、跳转项目首页
business_login_0013登录成功_响应信息明文或包含明文敏感信息商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
4、查看浏览器地址栏是否包含敏感信息
5、打开Network网络请求查看请求参数中密码是否加密传输
6、查看是否跳转项目首页
7、打开Network查看响应结果
1、输入账号:Zz123456;
2、输入密码:Aa12345678;
1、登录成功,查看浏览器地址栏不包含敏感信息
2、查看浏览器地址栏不包含敏感信息
3、跳转项目首页
4、查看响应信息,不包含敏感信息明文传输
business_login_0014登录成功_记录操作日志商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
4、查看浏览器地址栏是否包含敏感信息
5、打开Network网络请求查看请求参数中密码是否加密传输
6、查看是否跳转项目首页
7、打开Network查看响应结果
8、查看系统操作日志,是否包含当前登录账号的日志
1、输入账号:Zz123456;
2、输入密码:Aa12345678;
1、登录成功,查看浏览器地址栏不包含敏感信息
2、查看浏览器地址栏不包含敏感信息
3、跳转项目首页
4、查看响应信息,不包含敏感信息明文传输
5、查看操作日志,新增一行当前账号登录日志
business_login_0015登录失败_相同账号登录失败次数记录商城_登录p41、登录页面能正常访问
2、账号和密码不为空
3、密码长度在6~16之间
4、密码格式包含大小写字母及数字,且不以数字开头
1、打开登录页面;
2、输入账号密码
3、点击登录
4、输入4次+错误账号和密码
1、输入账号:Zz123456;
2、输入密码:Aasssss678;
1、登录失败,并提示账号已锁定,请间隔30分钟后再重试;

七、测试方法:

1、能对穷举场景设计测试点:

(1)使用等价类划分法解决穷举场景用例设计:

(2)什么是等价类划分法:在所有的数据中, 具有某种共同特征的数据集合进行分类划分,比如账号输入,字母+数字是一类,纯数字是一类,纯字母是一类;划分之后会得到两种等价类,有效等价类和无效等价类:

(3)等价类分类:

  • 有效等价类:取其中一个数据
  • 无效等价类:取其中一到两组数据

比如:6~8位字符,有效取一组,1234567,无效取两组数据:<6取一组,>8取一组

(4)步骤

  • 明确需求
  • 确定有效等价类和无效等价类
  • 提取数据编写测试用例

使用场景:针对大量数据输入,没法穷举,使用等价类划分法

  • 输入框
  • 下拉列表
  • 单选复选框

2、能对限定边界规则设计测试点

边界值分析法:选择边界范围节点

选取正好等于、正好大于和正好小于表姐的值作为测试数据

上点:边界上的点

离点:距离上点最近的点(刚好大于或刚好小于)

内点:范围内的点(取区域范围内的数据)

3、对多条件依赖关系进行设计:能省市区依赖关系,判定表法

什么是判断表

等价类关注单个输入类条件测试

未考虑输入条件之间的各种组合,输入条件与输出结果之间有相互制约的关系的测试

前提条件:条件之间有关系才能用;

判定表:

条件桩:列出所有条件

动作桩:列出所有操作

条件项:条件的取值

动作项:在条件项下的各种动作的取值结果

有几个条件,那么用例的条数=2的n次方

明确需求

编写判定表

提前测试用例

4、能对项目业务进行设计测试点,

场景法,错误推测法

电商什么最重要?下单流程

面试:

测项目,首先的保证业务是通的,

使用场景法,测试场景是通的

而使用场景法,需要画业务流程图

流程图一般由产品或者开发画,测试也可以画

https://processon.com

或者windows的visio

先进行冒烟测试,把业务跑通再测

业务用例实战:

ATM机取款业务

经验推断法 :主要是根据经验列举出可能出现的问题

错误推荐法什么时候用?当今天晚上12点上线,6点已测完,在6点到12点,根据经验再跑一跑可能会出现错误的地方、重要业务;

面试:时间紧,任务大,不能加人,怎么去最大程度保证项目测完且无重大bug

可能不会去写用例

跟产品、开发沟通哪些是核心的、重要的、容易出问题的模块

覆盖主要业务,覆盖正向业务,再去覆盖主要业务,覆盖逆向;

按照时间节点走,同时可能跟PM沟通,需要开发先进行冒烟;

八、缺陷

存在的任何问题都叫软件缺陷,问题≠错误

衡量缺陷标准:

  • 未实现需求说明书中明确要求的功能
  • 出现需求说明书中指明不应该出现的错误,功能错误
  • 超出需求说明书指明的范围,多了功能
  • 虽未指明,但应该实现的要求,隐性功能错误
  • 软件难以理解,不易使用,用户体验、UI设计不好

原因和生命周期

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

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

相关文章

web实现drag拖拽布局

这种拖拽布局功能其实在电脑操作系统或者桌面应用里面是经常使用的基础功能&#xff0c;只是有时候在进行web开发的时候&#xff0c;对这个功能需求量不够明显&#xff0c;但却是很好用&#xff0c;也很实用。能够让用户自己拖拽布局&#xff0c;方便查看某个区域更多内容&…

关于#vscode#的问题:把软件卸载不会再出现蓝屏

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

ViT篇外:NVIDIA Llama-3.1-Minitron 4B

相关阅读&#xff1a; ViT&#xff1a;3 Compact Architecture MobileLLM&#xff1a;“苗条”的模型比较好&#xff01; 大家也许会很好奇为什么在ViT章节插入了NVIDIA Llama-3.1-Minitron 4B&#xff0c;ViT因为应用场景的特殊性所以都寄希望于高效率的模型&#xff0c;因…

搭建内网开发环境(二)|Nexus安装及使用

引言 上一篇教程中按照了 docker 作为容器化工具&#xff0c;在本篇教程中将使用 docker-compose 安装 nexus。 搭建内网开发环境&#xff08;一&#xff09;&#xff5c;基于docker快速部署开发环境 什么是 Nexus Nexus是一个强大的仓库管理器&#xff0c;主要用于搭建和管…

【论文阅读】SegNeXt:重新思考卷积注意力设计

《SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation》 原文&#xff1a;https://github.com/Visual-Attention-Network/SegNeXt/blob/main/resources/paper.pdf 源码&#xff1a;https://github.com/Visual-Attention-Network/SegNeXt 1、简介 …

Apache Doris 中Compaction问题分析和典型案例

说明 此文档主要说明一些常见compaction问题的排查思路和临时处理手段。这些问题包括 Compaction socre高Compaction失败compaction占用资源多Compaction core 如果问题紧急&#xff0c;可联系社区同学处理 如果阅读中有问题&#xff0c;可以反馈给社区同学。 1 compaction …

微服务实战系列之玩转Docker(十一)

前言 在云原生的世界&#xff0c;经过十多年的进化&#xff0c;Docker已经形成了较完备的“后勤”保障服务和建立了荣辱与共的“密友圈”。用一句话可以概括&#xff1a;“Docker走遍天下&#xff0c;Swarm功不可没”。 因此&#xff0c;我们需尽可能做到对Swarm有充分的认识…

大数据-85 Spark 集群 RDD创建 RDD-Action Key-Value RDD详解 RDD的文件输入输出

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09; HDFS&#xff08;已更完&#xff09; MapReduce&#xff08;已更完&…

【联想电脑】:使用拓展坞后转接HDMI,无法识别显示屏

项目场景&#xff1a; 作为一个嵌入式软件开发者&#xff0c;有两个外接屏幕&#xff0c;不足为奇。 但是在今天的使用电脑过程中&#xff0c;出现了接了一个拓展坞上面有HDMI接口&#xff0c;但是HDMI接口接上外接显示屏的时候电脑无法识别到&#xff0c;导致只有电脑直连的HD…

家用小型洗衣机哪款好用?精选内衣洗衣机多维度测评盘点

对于很多都市生活的小伙伴来说&#xff0c;有一台小巧玲珑、功能齐全的内衣洗衣机则成了我们的救星。它不仅方便快捷&#xff0c;还能保持衣物清洁和卫生。然而&#xff0c;市面上的内衣洗衣机品牌五花八门。哪一个最好用、质量又靠谱呢&#xff1f;为了给大家提供更准确的选购…

【FPGA数字信号处理】- 数字信号处理如何入门?

​数字信号处理&#xff08;Digital Signal Processing&#xff0c;简称DSP&#xff09;是一种利用计算机或专用数字硬件对信号进行处理的技术&#xff0c;在通信、音频、视频、雷达等领域发挥着越来越重要的作用&#xff0c;也是FPGA主要应用领域之一。 本文将详细介绍数字信…

YOLOv5改进 | 融合改进 | C3融合ContextGuided增强分割效果

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a; 《YOLOv5入门 改…

模糊控制——创建与添加自定义的隶属函数

关键字&#xff1a;模糊控制&#xff1b;隶属函数&#xff1b;Matlab。 系列文章目录 模糊控制——&#xff08;一&#xff09;理论基础 模糊控制——&#xff08;二&#xff09;设计流程 模糊控制——&#xff08;三&#xff09;模糊洗衣机 模糊控制——&#xff08;四&#…

SQL— DDL语句学习【后端 9】

SQL— DDL语句学习 在数据管理的广阔领域中&#xff0c;SQL&#xff08;Structured Query Language&#xff09;作为操作关系型数据库的编程语言&#xff0c;扮演着举足轻重的角色。它不仅定义了操作所有关系型数据库的统一标准&#xff0c;还为我们提供了强大的工具来管理、查…

jenkins最佳实践(二):Pipeline流水线部署springCloud微服务项目

各位小伙伴们大家好呀&#xff0c;我是小金&#xff0c;本篇文章我们将介绍如何使用Pipeline流水线部署我们自己的微服务项目&#xff0c;之前没怎么搞过部署相关的&#xff0c;以至于构建流水线的过程中中也遇到了很多自己以前没有考虑过的问题&#xff0c;特写此篇&#xff0…

【Redis】数据类型详解及其应用场景

目录 Redis 常⻅数据类型预备知识基本全局命令小结 数据结构和内部编码单线程架构引出单线程模型为什么单线程还能这么快 Redis 常⻅数据类型 Redis 提供了 5 种数据结构&#xff0c;理解每种数据结构的特点对于 Redis 开发运维⾮常重要&#xff0c;同时掌握每种数据结构的常⻅…

Postman接口测试项目实战

第 1 章 什么是接口测试 1.1、为什么要进行接口测试 目前除了特别Low的公司外&#xff0c;开发都是前后端分离的&#xff0c;就是说前端有前端的工程师进行编码&#xff0c;后端有后端的工程师进行编码&#xff0c;前后端进行数据基本都是通过接口进行交互的。 1.2、接口测…

zookeeper源码分析之事务请求处理

一.参考 zookeeper启动和选举的源码分析参考之前的帖子. 二.源码 1.职责链模式. 每次经过的processor都是异步处理&#xff0c;加入当前processor的队列&#xff0c;然后新的线程从队列里面取出数据处理. PrepRequestProcessor 检查ACL权限,创建ChangeRecord. SyncRequest…

ArcGIS空间自相关Moran‘s I——探究人口空间格局的20年变迁

先了解什么是莫兰指数&#xff1f; 莫兰指数&#xff08;Morans I&#xff09;是一种用于衡量空间自相关性的统计量&#xff0c;即它可以帮助我们了解一个地理区域内的观测值是否彼此相关以及这种相关性的强度和方向。 莫兰指数分类&#xff1a; 全局莫兰指数 (Global Moran…

聊聊如何利用ingress-nginx实现应用层容灾

前言 容灾是一种主动的风险管理策略&#xff0c;旨在通过构建和维护异地的冗余系统&#xff0c;确保在面临灾难性事件时&#xff0c;关键业务能够持续运作&#xff0c;数据能够得到保护&#xff0c;从而最大限度地减少对组织运营的影响和潜在经济损失。因此容灾的重要性不言而…