什么是软件测试,软件测试究竟是做什么的

article/2025/8/24 3:18:36

        我犹豫了很久,想来想去还是写了一篇文章,这篇文章可以告诉你什么是软件测试?

来看看官方的回答:

        软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

        那软件测试究竟是做什么的?真的是和他们口中说的一样就是找bug吗?   

        在过去的几年里,不断的收到类似这样的讯号:“我觉得开发不好找工作,想转行测试”、“开发太累了,换测试比较轻松”、“测试工作多简单” 等等。我确定一定以及肯定的相信,这绝对不是个例,如此想法大有人在。不得不承认的是,就门槛而言,测试的确是远远低于开发,只要我们有一定的理解能力和计算机能力,都可以开始上手做 “捉虫” 的工作,“捉虫” 的目的在于让编写好的程序不会出错,能够正常的运行。或许这是一个入门的软件测试工程师,我们可以称之为 “会测试”。

        那我们说的初级测试工程需要会什么?哎呀!不就是测试吗,测试不就是点点点吗?有什么难的呢?测试的门槛低,谁都可以做测试......但是事实真的是这样吗?我们来看下测试需要掌握哪些技能:

功能测试是测试工程师的基础功,很多人功能测试还做不好,就想去做性能测试自动化测试。很多人对功能测试的理解就是点点点,如何自己不用心去悟,去研究,那么你的职业生涯也就停留在点点点上了。在这里,我把我对功能测试的理解写下来。

熟练使用SQL

  1、常用的 sql 语句一定会写。比如说增删改查之类。

  2、了解数据库的事务、会编写存储过程、熟练常用的系统函数。

  3、了解并可以进行数据库的备份、迁移、还原、镜像等操作

  4、对 sql 语句进行调优,并对可以对运行的语句监控查看性能

  5、了解数据库集群等操作。

Linux

  Linux是测试人员的基础功,不需要掌握太难或者很不常见的Linux命令,正常能做到查看日志,定位问题就可以了。

  1、基本命令

  常用的Linux基本命令,面试经常会问的,或者给出一种场景,问你用什么命令。

  2、查看日志

  初级测试人员在工作时经常遇到,发现bug,开发不承认或者不愿意解决的情况,测试人员怎么摆脱这样的问题呢?

  那就是根据发现的bug根据日志级别,来查看日志,定位问题。

  那这里首先要说一下日志级别了。

  首先记住这一点:日志级别越高,输出的信息越少 。

  具体的日志级别分为四级:

  info : 代码 info 信息,不包括sql语句等一些debug信息

  warning warning : 代码警告信息

  error : 程序本身报错信息 java.lang.outindexERROR.....

  critical :几乎用不到

  一般不符合需求的bug在 debug中,程序本身报错的bug在 error中。

使用数据库,跟数据流向

        1、数据库的本质

          常见数据库主要是MYSQL、ORECAL、Redis

          其中Mysql数据库是典型的关系型数据库

  2、数据库操作

  (1) 数据库和表操作

  (2)表数据操作

  (3)复杂sql查询

写好测试用例

  在测试过程中很重要的一类文档,它是测试工作的核心、是一组在测试时输入输出的标准、是软件需求的具体对照。编写测试用例,是测试人员的基本功,但是真正能写好的人并不多。

  测试用例必须包含的内容:

  用例编号、用例名称、、测试目的、优先级、重要级、前置条件、测试步骤、预期结果、实际结果、备注。(不同的公司模板不同,基本也差不多)

  1、测试用例的编写流程

  需求分析->提取测试点->测试用例编写->测试用例评审

  2、编写测试用例的思路

  (1)根据产品的RPD,提取测试点。

  (2)根据数据流的走向。

  (3)根据的架构部署。

  (4)编写测试用例的常用方法:等价类划分法、边界值分析法、判断表法、因果图法、场景法、测试大刚法、正交排列法、错误推断法等8中方法(重点)。

  (5)覆盖弱网测试接口测试安全测试性能测试等。

  (6)常用测试工具有:Postman、 Charles、 Fiddler 、Jemter、Loadrunner等。

  3、编写测试用例注意事项

  (1)根据项目的实际情况设计测试用例表格

  (2)用例格式不要生搬硬套

  (3)根据具体情况编写

  (4)学会质疑需求,不要完全按照需求来写测试用例,要从客户和产品的角度来理解需求,看到需求之外的功能和体验

  4、管理测试用例

  为什么要管理测试用例?

  (1)测试用例数目巨大

  (2)测试用例会根据需求的改变而改变

  (3)测试用例需要长期补充完善

  如何管理测试用例?

  (1)原始的Excel管理

  (2)专业的项目管理系统(eg:git、禅道、JIRA、Confiuence等)一般都为web格式

 http与https协议

  面试经常关于Http协议的下面几个问题

  1、Http协议原理

  2、http和https协议的区别

  3、TCP和UDP的区别

  4、sessiond和cookie的区别

  5、公钥和私钥的理解

  6、get和post的区别

  7、从输入URL到页面加载发生了什么

  8、什么叫代理,正向代理和反向代理?

  了解业务

  做功能测试,一定要了解业务,甚至理解业务。只有把业务吃透,才能把功能测试做好,并且有一定的提高。

  业务熟悉后,会知道很多常识,知道上面的常识之后,你就可以尝试进阶,学习做自动化测试、接口测试、性能测试(重点)

  1、什么时候介入自动化 => 当你系统趋于稳定的时候

  2、什么时候介入接口测试  => 当接口开发完毕的时候

  3、什么时候介入性能测试 => 当出现促销的时候,或者抢购的时候(618大促,过年抢火车票,抢优惠券)

  比如说,5000张优惠券,大概有多少人抢,在多长时间内抢完

bug管理

  做功能测试,还有个很重要的工作就是bug管理,一个优秀的的测试人员,线上bug非常多,多于和你一起工作的其他同事,但是线上bug非常少,少于其他同事。

  1、 bug定义

  (1)不符合需求的

  (2)程序本身报错

  (3)不符合用户的使用习惯

  2、bug生命周期当我们测试人员提交一个bug的时候,自始bug就有它的生命周期,从开始到

  结束,生命周期如下

   

  3、bug单内容

  Bug描述(summary)

  环境信息:操作系统/数据库/浏览器/软件版本 (OS/Database/Project/Build/Release)

  所属功能模块

  测试/开发人员

  严重等级(1-5)

  客户优先级

  风险程度

  状态

  重现步骤

  实际结果

  是否要回归问题

  4、测试报告

  把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,

  同时为软件验收和交付打下基础测试报告和测试计划一样,一般由测试leader编写,测试人员需要了解

  一下测试报告中都有哪些内容

   

  典型bug

  1、抓包作用: 测试一个app搜索功能,抓包,抓到一个搜索接口,突然发现抓到了两个请求接口 -> 当访问量上来了,服务的压力上升两倍

  2、数据流走向 : 测试时候发现页面上数据只有一条,但是数据库里面多了一条 -> 1、数据量变大,查询变慢 2、脏数据太多,瞬间爆满,程序崩溃了

  3、弱网测试:app项目一定要有弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)

看了这篇文章你还觉得测试简单吗?其实测试入行简单,但是想要做好测试这个工作还是大有挑战的,毕竟大家都知道,一款产品不可能没有bug,毕竟bug是永无止境的呀!!!好了本期就到这里吧,等以后有机会再出下期,关于测试方面的了解,你们也可以评论区告诉我哦!!!

自我介绍一下吧!我是降谷零,只做最有干货的测试教学哦!!!


http://chatgpt.dhexx.cn/article/RSRfdLyK.shtml

相关文章

swiper自定义分页器使用

解决问题:不想使用swiper的自带的圆钮式的分页器,想使用自定义的分页器。 解决方案:利用swiper提供的paginationCustomRender()方法(自定义特殊类型分页器,当分页器类型设置为自定义时可用。) 下面的代码可…

element-ui 分页器的使用

1. ui组件 1.在element-ui找到Paginaion分页器 打开代码拷贝第四个组件 2. 在vue template里写 //分页区 <el-pagination size-change"handleSizeChange" current-change"handleCurrentChange":current-page"queryInfo.pagenum" :page-size…

分页器的使用-1 自己找的分页器插件

这个插件是自己网上找的&#xff0c;具体代码如下&#xff1a; 具体步骤&#xff1a;1. 先引入css和js2. 分页器放在请求成功之后&#xff0c;3. 最重要的中间件就是currentPage&#xff1a;当前页码。4. 具体代码详情都在里面写清楚了。用到的js文件&#xff1a; https://pa…

vue实战-分页器

vue实战-分页器 1.分页器静态组件 因为是公共全局组件&#xff0c;在components里新建文件夹Pagination&#xff0c;并将分页器的静态组件填入 静态组件 <template><div class"pagination"><button>1</button><button>上一页</b…

html分页器的实现原理,js分页器详解

本文主要和大家分享js分页器详解,我们先来看一下效果,希望能帮助到大家。 依赖于:bootstrap 和 jquery html代码:通过class="pj_pager"引用,pj_total初始化总条数 js代码:/** * 分页器,依赖于bootstrap,jquery */ var pager = {init : function(r) {this.obj …

JavaScript--Swiper自定义分页器

图片是以背景显示的&#xff0c;图片上有一层遮罩&#xff0c;最上面是文字。分页器激活状态下是自定义的图片。代码比较容易进行删改&#xff0c;比如不想要遮罩或者文字可以直接删掉。 分页器的效果&#xff1a; html <!DOCTYPE html> <html lang"en"…

快速实现-简单分页器(上)

首先形形色色的分页器大家肯定都看过,这一次就快速实现一个简单的分页器,应该不会耽搁太久吧~ 先来看一下简洁布局: 瞜一眼这布局: 页码数量总共只有9个当足够显示所有页码的情况就全部显示了那么问题来了,如果不够呢? 第一种情况 第二种情况 第三种情况

完整分页器最骚的讲解(亲测)

咱也不敢问&#xff0c;咱也不敢说。先来个图瞅瞅分页器是个什么鬼叭 就目前来讲&#xff0c;这应该算是功能最全的分页器啦吧 下面我们一步一步研究一下这玩意怎么玩叭 啥也不说了&#xff0c;先去element-ui官网嫖代码吧哈哈哈 <el-paginationsize-change"handleS…

用vue封装分页器,让你的页面简单而不失优雅

前言 当我们在开发 web 应用时&#xff0c;经常需要对大量数据进行分页展示&#xff0c;这时候用到的就是分页器。element 是一款流行的前端 ui 框架&#xff0c;它提供了许多有用的工具和组件&#xff0c;其中就包括分页器组件。在本文中&#xff0c;我们将学习如何使用 vue 基…

js分页器

写分页器的时候引用别人的js总是不能达到自己想要的效果&#xff0c;在这里记录下自制分页器的历程 html部分 <!DOCTYPE html> <html> <head><title></title><meta charset"utf-8" /><script src"https://code.jquery…

flutter自定义分页器

使用flutter自定义一个分页器 最近在写flutter项目&#xff0c;项目刚好需要一个分页器&#xff0c;对数据进行分页处理&#xff0c;一开始想要在网上找有没有已经写好的插件&#xff0c;搜寻一会后还是想着自己写一个。 先看看效果图 思路 首先要准备一个盒子&#xff0c;装载…

手写一个简单的分页器

封装分页器 1. 前言 分页器基本上是任何网站必须要有的一个组件&#xff0c;为什么需要分页器&#xff0c;当后台传入了大量的数据&#xff0c;那么在前端拿到数据&#xff0c;如果直接展示很有可能或造成卡顿&#xff0c;同时消耗过多的内存&#xff0c;给用户带来的浏览效果就…

分页器(分页器基本操作、点击按钮分页、美化分页器)

分页器基本操作 用户访问一个网页或者查看某些数据&#xff0c;如果数据量过大肯定需要按页查看&#xff0c;不可能一个页面显示N条数据内容这里就用到了分页器 首先往数据库里插入数据&#xff0c;这里咱们进行脚本批量插入 # #脚本批量插入数据book_list []for i in range(2…

分页器

1.分页器 作用&#xff1a;干啥的&#xff1f;数据量大的话&#xff0c;可以分页获取&#xff0c;查看。 2.一次性插入多条数据 def add1(request):# 这样for循环会造成对数据库的大量访问&#xff0c;不建议这样添加# models.Book.objects.create(name连城诀%s%i,price10i)ll[…

分页器组件

作为前端三剑客的分页器在许多场景都能 使用&#xff0c;在实际工作中也有插件来快速实现分页器功能 但我们要了解原理&#xff0c;所以我们自己手搓个简单的分页器 先处理好静态组件 <template><div class"pagination"><button>1</button>…

分页器的介绍

一 、分页器的简介 在页面显示分页数据&#xff0c;需要用到django分页器组件 from django.core.paginator import Paginator paginator对象&#xff1a;paginator Paginator(user_list,10)#per_page:每页显示条目数量 #count &#xff1a;数据总个数#num_pages:总页数#page_…

自定义分页器

前端必须要掌握的分页器&#xff0c;轮播图&#xff0c;与日历 手写&#xff0c;掌握原理 1:分页功能实现 为什么很多项目采用分页功能&#xff1a;比如电商平台有很多数据。一次加载出来会卡住 采用分页功能 Element Ul是有相应的分页组件&#xff0c;使用起来超级简单…

【JS案例】分页器——使用原生JavaScript实现

在使用vue编写完一个分页器组件后&#xff0c;我对分页器的底层逻辑产生了兴趣&#xff0c;想在此组件的基础上再深入了解一些分页器的底层逻辑&#xff0c;了解vue与原生js的区别。我在github上看了一些大神写的分页器&#xff0c;属实牛逼&#xff0c;之后自己也根据他们的编…

zigbee-无线点灯-协调器节点

开发环境&#xff1a;IAR 8.10 Z-stack 2.5 功能&#xff1a;协调器与终端节点组网&#xff0c;实现点对点通信。终端向协调器发送“D1”&#xff0c;协调器LED灯闪烁。 流程图&#xff1a; 具体代码&#xff1a; 定义所需要的变量 端点描述符 endPointDesc_t GenericApp_e…