admin管理员组

文章数量:1646326

软件测试基础

软件测试的概念
通过一系列手段去证明软件是符合用户需求的,满足质量要求的。预期结果和实际结果的一个对比。

软件测试分类
按方法分:黑盒测试、白盒测试、灰盒测试

黑盒测试:把软件比作一个“黑匣子”,不考虑具体是内部是如何实现的,只考虑外部功能的运行,检查软件的输入和输出是否匹配。

白盒测试:检查软件的代码、函数和方法等内部结构。

灰盒测试:介于白盒和灰盒测试之间,既可以根据外部暴露出的功能进行检测,也可以参考内部的代码结构。

2.按方向分:功能测试、性能测试、安全测试

(1)功能测试:测试产品的功能,以确定是否满足设计需求。

(2)性能测试:分为客户端测试和服务器端测试(一般默认是服务器端测试)。

客户端性能测试:启动速度、消耗资源(CPU、内存、硬盘、流量、电量)

服务端性能测试(默认):压力测试、负载测试、并发测试

压力测试:获取系统正确运行的上限,检查软件在瞬间峰值的情况下是否能够正确运行。(通过多线程模拟)

负载测试:在峰值的持续压力下运行软件,看软件的承载极限达到什么程度。

并发测试:检查在并发条件下,会不会出现数据错乱的情况。(比如淘宝秒杀)

(3)安全测试:流量攻击、渗透、SQL注入、跨域攻击、爆破、劫持。

流量攻击:模拟大量用户访问服务器,不进行任何有效操作,无端消耗服务器资源。

渗透测试:发现软件系统中存在的漏洞,判断系统的安全性。

SQL注入:通过数据库的关键字进行异常操作,恶意执行不相干的SQL命令。

跨域攻击:诱导用户访问非法网站,利用会话信息模拟请求,盗取和篡改数据。(比如qq盗号)

暴力破解:写相应的脚本,用穷举法不断尝试破解对方的信息。

劫持:比如通过不安全的wifi连接,进行表单提交的操作,造成数据泄露。(还有网页广告弹窗等)

3.按阶段分:单元测试、集成测试、系统测试、验收测试

单元测试:最小模块的测试,可以是对代码、函数、方法进行白盒测试,一般由开发人员执行。

集成测试:主要是测试接口,所以也叫接口测试。(接口:模块与模块之间数据交换的通道。)

系统测试:对系统的功能、性能、安全、UI、稳定性、易用性、兼容性等进行测试。

验收测试:软件发布之前进行的测试,这是测试的最后一个阶段,也叫交付测试,评估产品是否可以发布。

4.按对象分:web测试、app测试、小程序测试、车联网测试、物联网测试

测试方法与测试对象无关,测试流程基本都是通用的。

5.按状态分:动态测试、静态测试

动态测试:运行软件,判断软件运行结果与预期结果的差异,检查软件的正确性。(黑盒测试)

静态测试:不运行软件,检查软件代码、方法、函数、文档的正确性。(白盒测试)

6.其他:回归测试,冒烟测试、α测试、β测试

回归测试:检查开发有没有把bug修改好,重新测试一遍,以保持正确性。

冒烟测试:测试前的测试,检查开发是否进行自测,软件是否具有可测试性。

α测试:产品内测。

β测试:产品公测。

软件基本结构

软件 = 程序+数据+文档

基本结构:

B/S(浏览器/服务器),C/S(客户端/服务器)

主要区别:是否需要单独安装/更新客户端

前端
用户端(前台)

app:andriod(android、kotlin),ios(swift,object-c)

web:html,css,JavaScript

小程序

管理员端(后台)

主要是web

后端
#服务器上运行,断网无法使用,一般是linux环境

数据库

运行环境:java,php,python,,go

服务器软件:tomcat,apache,nginx,IIS

(c++一般用于桌面程序)

软件测试的方法
找到合适的测试数据

边界值
(左边界、右边界):<=6,先测<6,再测=6,所以要取边界值和边界值旁边的点,5和6。

等价类

有效等价类:比如0.01-200,0.01,200,0.02,199.99,100.05(保险起见还选了个中间值)

无效等价类:0,200.01

用户场景法

成功的场景:符合要求的金额和红包寄语(默认、0,25,1,25,12),发送红包成功

失败的场景:金额错误、寄语不符合要求(输入的值空,26)(空不等于空格)

了解概念

因果图
判定图
路径覆盖法

软件测试的模型

指的是研发模型(不仅仅是测试模型)

瀑布流
需求分析→软件设计→软件实现(编码)→软件测试→交付验收→实施维护

有完整上下结构,必须完成上一个步骤,才能开始下一个步骤。犯错成本高,容错率低,效 率低,维护成本高。

V字型
image.png

测试和开发的工作一一对应。必须完成上一个步骤,才能开始下一个步骤,效率低。

W字型(用得最多)

image.png

每个阶段测试和开发都有事做。第一个V代表开发,第二个V代表测试。

分别有什么优势和劣质?

H型
螺旋形
敏捷性(流行趋势)
集中办公,需要高管理水平的人才

搭建测试环境
一般搭建在服务器上。

服务器操作系统的选择:

windows(收费,商业系统,不可选的图形化界面)

OSX(苹果,贵)

Linux(开源,免费,可不选图形化界面,节约成本):通过安装Linux系统或租云服务器获取

测试流程

需求分析阶段
(需求文档,场景原型,交互图,口述)

学习软件的功能、业务、流程

提取软件的功能点(画思维导图)

编写需求分析说明书

测试设计阶段

编写测试文档
测试计划:时间,人员,成本,申请资源、经费

测试策略:规定测试内容的深度和广度,测试内容的先后顺序

深度:是否做单元、集成、系统、验收测试

广度:系统测试的范围(功能、性能、安全、兼容性、易用性、稳定性)

测试方案:具体的测试内容,测试手段

测试用例:具体的测试步骤(excel表格)

测试用例的要素
编号(唯一),用例名称,前置条件,优先级,重要级,测试数据,测试步骤,预期结果,实际结果。

测试是无穷无尽的

测试评审:同行评审,小组评审,部门评审,项目评审,第三方评审,邮件评审

测试执行阶段
执行测试用例、提交bug(bug管理系统)、回归测试、跟踪管理bug,测试环境的搭建

和配置,申请资源

测试总结阶段
1.工作总结

2.bug统计分析

如禅道的报表功能,测试人员的提交bug数,开发人员的造成/修复bug数,不同软件模块的bug数,不同等级的bug数,解决bug的时间,每个版本的bug情况,bug的状态

3.软件质量评估

达到软件交付的标准:一二级bug全部关闭,三级bug关闭了80%以上,四级随缘

测试文档的编写

墨刀(画产品原型) 凹脑图

需求分析阶段:

需求分析说明书

image.png

除了功能点,还要列出限制条件,比如字符串长度,数字范围等。比如发红包功能,还要列出成功、失败场景。

测试计划:时间、人员、资源的分配,流程的管理。

测试方案:对每一项测试内容应该用到的测试方法、测试工具、测试开始/结束的标准进行描述。

测试策略:规定测试的范围,哪些阶段需要测试,测试的粒度(要测试多详细),测试顺序(哪些功能先测试),风险分析(最大程度的减少不相干因素的干扰)

以上三个文档经常合并,写进测试计划中。(多看模版)

测试用例:

5w1h
image.png

pdca(核心:不断优化)

image.png

测试文档:通过测试方法提取功能点,根据场景发提取测试点,根据季等价类、边界值设计测试数据,编写文档。

(mooc网浪晋:如何学好测试用例) 萌芽群里有测试用例模版。

系统测试用例
image.png

接口测试用例
image.png

测试应用

app测试(B/S),web测试(C/S)

app测试除了常见的测试之外,还有app专项测试:安装/卸载/修复/更新,消息推送,弱网(2G/3G/4G/5G/WIFI)测试,场景交互(来电话了,正在听音乐,摄像头,录音,前后台切换),权限测试(权限关闭和打开是否会影响功能的使用,需要时是否还能还会弹出权限提醒),离线测试。

SVN的使用
svn类似网盘,存放公司文件,输入账号密码可共享。

安装svn–右键文件夹–svn检出–填入版本库url–确定–输入账号密码

创建新文档 – 右键–svn-- 加入–右键–提交–确定

*每个步骤之前最后先右键更新,以免出现不必要的错误。

bug的管理

在测试用例文档中填写测试结果,提交bug

bug六要素
编号、bug标题、优先级、严重级别、重现步骤、附件(bug截图、错误日志或者视频,提供佐证),

bug管理工具
禅道、BUGFree、ALM(QC)、JIRA、Bugzilla、TAPD、excle、testlink

bug的管理流程都是一样的,选择其中一个就可以了

优先级
和时间有关,使用的功能是否紧急。

一二三级bug都解决了,系统测试结束,可以进入系统交付阶段。

严重级别
致命的(影响核心流程、程序崩溃、程序闪退,和钱有关的)

严重的(主要功能障碍,比如个人资料无法修改)

普通的(可有可无的功能故障、不符合用户习惯的方式)

轻微的(建议)

bug的管理流程
主流程:

1.测试人员提交bug,指派给对应的开发

2.开发确认是否是bug,如果是则修改,不是转回测试人员

3.开发修改完成后,测试进行回归测试。回归测试通过,关闭bug;没通过,回到第一步。

bug状态(生命周期)
新建new,已确认(激活)open,已解决,关闭closed,重新打开(激活)reopen,延迟(是bug,但不着急修改),拒绝(开发认为不是bug),重复bug。

版本迭代

版本号、版本迭代(大版本.小版本.迭代版本 初始1.0.1)

增量测试(只测试有变化的功能),全量测试(测试软件的所有功能)

软件做大之后,不可能每次都进行全量测试,比较老的功能,可以开发自动化测试,这样的话只做增量测试就可以了。

cmmi

了解一下五个等级(近两年不是很流行了,传统的还有保留)

一般会从第三级开始认证,前两级没什么用

image.png

搭建linux测试环境

linux系统:centOS(企业用最多的),Ubuntu,debian,kali,redhot,优麒麟,深度

搭建云服务器
腾讯云购买云服务器 – 进入控制台(记住主ip地址) – 操作里面的“更多”,修改密码(勾选同意强制关机) – 刷新界面,状态显示“运行中”,即重启成功

登录(记住端口号)-- 出现linux终端即成功,关闭

连接Xshell
(linux的远程操控软件)

商业版有30天评估期,如果是自己用,下载家庭和学校版就可以了,是免费的:

家庭版官方下载地址

文件 – 新建 --名称随意,主机为主IP地址(公),端口号同云服务器 – 连接 --接受并保存 --输入账号密码(同云服务器) – 连接成功

linux常见命令

程序的操作

1.启动程序:直接输入程序名(如 vi)

2.关闭程序 (杀死进程):kill -9 进程号(pid)

如果没写-9,默认是-15,即正常终止当前进程。

-9表示进程将被内核杀死;这个信号不容忽视。 9表示不可捕获或可忽略的KILL信号。

查看进程号:ps -ef 查看所有运行中的进程

ps -ef |grep 程序名 ,查看指定程序的进程号

3.安装:不同软件安装方法不同,wget -i -c 以rmp结尾的安装包地址

文件的操作

1.新建文件:touch 文件名

2.新建文件夹 :mkdir 文件夹名

3.复制粘贴:cp 1.txt 文件夹路径

. 当前文件夹

,上级文件夹

~回到桌面(用户文件夹)

/根目录

4.剪切/移动文件:mv 文件夹名 目标文件夹路径

5.重命名:mv 文件 重命名文件名

6.打开文件夹: cd 文件夹名

cd 文件夹/文件名 从根目录开始找

cd ./文件夹/文件名 从当前目录开始找

7.列出当前文件夹中的文件:

ls(查看文件名列表)

ll(查看文件详情列表)

8.删除:

rm 文件名(删除文件,会跳出确认提示)

rm -r 文件夹(删除文件夹,会跳出确认提示)

rm -f (强制删除文件,不跳出提示)

rm -rf(强制删除文件夹,不跳出提示)

rm -rf /* (格式化根目录)

linux上文件的读写

linux文件编辑器:vi、vim

读文件

1.cat 文件名

直接输出文件内容,一次性读

2.more 文件名

分页读,有显示进度条,“ctrl+C”退出

3.tail

读取动态文件内容。(比如实时变化更新的日志文件)

tail -f 文件名(一直动态读取最新内容)

tail -q 文件名 (读取时不显示处理信息)

tail -n 数字 文件名(读取最新几行的信息,数字几就是最新几行)

tail -c 文件名 (读取时显示字节数)

写文件

1.编辑已有文件

vi 文件名 – 按“i” 进入编辑模式(出现–INSERT–字样) – 输入内容 --按“ESC”退出编辑模式 – 在底端输入“:wq”保存并退出。

:wq (保存并退出)

:q(退出)

:q!(不保存,强制退出)

2.新建可编辑文件

直接输入“vi”进入编辑器 – 按“i”进入编辑模式 --输入内容 – 按“ESC”退出编辑模式 --在底端输入“:wq 新建文件名”新建文件,保存并退出。

读写的应用
文件的读写一般用来配置环境变量。linux中配置环境变量的文件是在根目录/etc/profile中设置。

windows中搭建tomcat,java

java安装
1.下载jdk,最好安装在默认路径,不要更改,安装在其他盘容易出问题。

2.配置环境变量:bin目录路径添加到path中,jre路径里面的bin目录也添加到path中。

3.cmd输入”java -version“和”javac -version“,出现版本号即安装成功。

tomcat安装
1.双击下一步安装。

2.浏览器输入127.0.0.1:8080/出现首页即安装成功。

linux中搭建tomcat,java

安装filezilla
(windows和linux之间的文件传输软件)

填入主机,用户名,密码。端口号(同云服务器)–快速连接云服务器

直接把windows上的文件拖入linux对应的文件夹即可。

下载jdk和tomcat,拖入Linux。(一般软件都是安装在usr文件夹中)

安装java
(tomcat是用java写的,所以要运行tomcat,必须要安装Java)

官网下载最新的jdk文件

tar -zxvf 需要解压的jdk文件 – cd usr/ – mkdir java – mv 解压后的文件夹 /usr/java

cd /etc --vi profile – 在done下空白处,按“i”键进入编辑模式 --写入Java环境变量

export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export CLASSPATH=.: J A V A H O M E / j r e / l i

本文标签: 知识点必看入门流程精华