总结
一.软件测试
1软件测试含义
(1)使用人工操作或软件自动运行的方式来检验它是否满足规定的需求弄清预期结果与实际结果之间差别的过程。
(2)预期结果指用户的预期结果。
(3)实际结果指的是软件的实际运行结果。
(4)软件缺陷预期结果与实际结果之间的差别。
2目的
(1)把尽可能多的问题在产品交给用户之前发现并改正。
(2)确保最终交给用户的产品功能符合用户的需求。
(3)确保产品完成了所承诺或公布的功能。
(4)确保产品满足性能和效率的要求。
(5)确保产品健壮和适应用户环境。
(6)建立软件质量的信心,度量和提高被测软件的质量。
3原则
(1)测试能显示缺陷的存在:测试可以减少软件中存在未被发现缺陷的可能性,但即使测试没有发现任何缺陷,也不能证明软件或系统是完全正确的。
(2)穷尽测试是不可能的:测试时由于有太多的输入组合、有太多的路径,因为时间是有限的,无法做到完全的测试,所以要多测试几次,把错误减少到最小。
(3)测试尽早介入:项目在开始的时候,软件测试就应该开始进行了测试工作进行得越早,软件开发的劣质成本就越低,并能更好地保证软件质量。
(4)缺陷的集群性:软件测试也是符合2/8原则的,总结果的80%是由总消耗时间中的20%所形成的。在测试的实践当中,如果你在某个模块发现了缺陷,那么在这模块当中可能就会存在不止一个缺陷。
(5)杀虫剂悖论:在项目中,同一个软件有同一个人测试就可能会出现杀虫剂现象,所以要采用轮流的方式来测试。
4软件系统架构
(1)B/S架构:浏览器,服务器。分布性强、维护方便、开发简单且共享性强、总体拥有成本低。
(2)C/S架构:客户端。在技术上很成熟,交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。
(3)B/S与C/S对比:(客户端要求)
C/S客户端的计算机电脑配置要求较高。
B/S客户端的计算机电脑配置要求较低。
5软件测试的分类
(1) 按开发阶段划分
1单元测试:用于检验被测代码的一个很小的、很明确的功能是否正确。
2集成测试:对象是模块之间的集成和调用关系。
3系统测试:针对系统中各个组成部分进行的综合性检验。
4验收测试:是部署软件之前的最后一个测试操作。
(2)按是否查看代码划分
1白盒测试:知道被测对象的内部架构
2灰盒测试:介于黑白之间
3黑盒测试:不知道被测对象的内部架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQjhQcbl-1647136774620)(C:\Users\16792\Pictures\Saved Pictures\黑盒测试.png)]
(3)按是否运行划分
1动态测试:测试运行和使用软件
2静态测试:测试不运行的部分
(4)按是否手工测试划分
1手工测试:就是由人去一个一个的输入用例,然后观察结果(功能测试)
2自动化测试:利用软件自动运行测试(性能测试)
(5) 按其他划分
1随机测试:对被测软件的一些重要功能进行复测
2冒烟测试:初步进行测试时对一个硬件或硬件组件进行更改或修复后,直接给设备加电,如果没有冒烟,则该组件就通过了测试
3安全测试
4探索测试
5α测试:内测
6β测试:外侧
6软件测试流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8xxRmYlv-1647136774622)(C:\Users\16792\Pictures\Saved Pictures\typora.png)]
7软件生命周期模型
(1) 什么是模型:是一种简化,是一种框架,是把对现实的理解抽象化。
(2) 软件开发模型
1结构化开发:严格按照阶段性一步一步的开展工作
2迭代开发:重复去做一件事,不断完善
3瀑布模型:是一种自上而下,完成上一阶段在进行下一阶段
4快速原型模型:减少由于软件需求不明确带来的开发风险
5螺旋开发模型:做风险分析
(3)软件测试模型
1V模型:由瀑布模型演变而来,用户需求=》需求分析与系统设计=》概要设计=》详细设计=>编码=》单元测试=》集成测试=》确认测试与系统测试=》验收测试
2W模型:有利于尽早地全面性的发现问题
3H模型:软件测试要尽早准备尽早执行
8 敏捷开发模型
(1)含义:把大项分成小项用
(2)原则:通过尽早、持续交付有价值的软件来使客户满意
即使在开发的后期,需求变更也是允许的
经常交付可工作软件
项目开发期间,业务人员和开发人员在一起工作
强化激励机制,为受激励的个人单独构建项目
在团队内部,最富有效果和效率的信息传递方法是面对面交谈
可工作软件是进度的首要度量标准。
(3)专有名词解释
backlog:需求列表
product owner(po):产品负责人,产品经理
scrum master(sm):敏捷专家
二 软件需求
1.软件需求的重要性
在需求阶段消除问题的代价最小,而如果需求问题等到产品发布出去后才发现的话,那修复的成本就n倍增加。
2.SRS
software requirements specification又叫软件需求说明书。
3.需求分类
1.原始需求:客户对开发软件不懂的需求
2.产品需求:产品设计人员根据原始需求、结合软件实现形成的需求产品设计人员根据原始需求、结合软件实现形成的需求
3.软件需求:软件开发人员将产品需求进—步详细化、合理化,在软件需求技术上完全可以实现了
4.测试需求:软件需求的进—步详细化。按照外部接口、设计约束等进行全方位考虑
4.需求挖掘
1.需求挖掘的过程:是将软件需求中的那些具有可测试性的需求或特性提取出来,形成原始测试。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jjit3O87-1647136774623)(C:\Users\16792\Pictures\Saved Pictures\需求挖掘.png)]
5.什么是评审
1.评审是对软件元素或项目状态进行评估的活动用以确定与预期结果之间的偏差和相应的改进意见。
一般评审包括培训评审、预备评审、同行评审。
2.测试文档评审
(1)内部评审:部门评审(测试部门:部门有相关项目经验的测试优秀人员)
(2)现场评审:项目组评审( 开发人员,测试人员,架构设计人员,产品经理,项目经理和客户方的业务人员)
三.软件安装的过程
1.jdk、Linux、centos、虚拟机的安装过程
打开钉钉,在丁丁里面找到班级群,里面有个文件打开,找到jdk、Linux、centos三个软件下载出来就可以了。
2.xshell、xftp安装过程
在钉钉里面把两个文件和软件下载出来,并把两个文件解压出来就可以用了。
3.编辑系统环境变量
在电脑“开始”搜索编辑系统环境变量,在系统变量里编辑一个JAVA_HOME点击确定,点击浏览目录,找到C盘,点击program files,在里面找到JAVA,点击jdk1.8.0_191点击确定就可以了。
4.创建一个虚拟机
打开VMwareworkstation,点击创建,选典型点击下一步,点击安装程序光盘映像文件,点浏览项目中找到在钉钉里面下的D:\centos\CentOS-7-x86_64-DVD-2009.iso文件,点下一步,全名、用户名、密码、确认根据自己想好的填上,点击下一步,虚拟机名称写好,位置选好,点下一步磁盘大小选20,下一行选将磁盘存储为单个文件,点下一步再点击完成就行了。
5.xshell与虚拟机连接
打开虚拟机,鼠标右击选openterminal出现一个弹框,然后输入ifconfig确定,滑到最上层找到IP地址inet后面的一串数字复用户名root输入密码点击连接最后出现root@localhost~就联机成功了。
代理商环境搭建(linux的centos环境)
1.打开虚拟机(提前安装),打开centOS(镜像),输入用户名test和密码123456
-----jdk环境搭建
2.从windows的路径下去拉取jdk的安装包到linux的系统里面(xftp)
3.cd /usr/local (ctrl+insert 复制 shift+insert粘贴 cd 找到对应的路径 ls 查询路径下有哪些文件)
4.解压jdk的tar包 tar -zxvf jdk-8u65-linux-x64.tar.gz 使用tab键来补全命令 点击向上的方向键来选择之前打的命令
上面操作相当于在windows上去解压了一个jdk的文件
5.修改/etc/profile这个文件,在最后写上下面代码
JAVA_HOME=/usr/local/jdk1.8.0_65
JAVA_BIN=
J
A
V
A
H
O
M
E
/
b
i
n
J
R
E
H
O
M
E
=
JAVA_HOME/bin JRE_HOME=
JAVAHOME/binJREHOME=JAVA_HOME/jre
JRE_BIN=
J
R
E
H
O
M
E
/
b
i
n
P
A
T
H
=
JRE_HOME/bin PATH=
JREHOME/binPATH=JAVA_BIN:
J
R
E
B
I
N
:
JRE_BIN:
JREBIN:PATH
export JAVA_HOME JRE_HOME PATH
6.使用cd命令切换到/usr/local(cd /usr/local)
对jdk1.8.0_65文件夹添加一个777最大的权限.(chmod -R 777 jdk1.8.0_65/)
对jdk环境配置好的文件生效(source /etc/profile)
最后检查java的环境版本是否可以出来(java -version)
—对tomcat进行配置
1.拉取tomcat压缩包(/usr/local)
2.进行解压tar -zxvf apache-tomcat-8.0.30.tar.gz
3.赋予最大权限chmod -R 777 apache-tomcat-8.0.30
4.关闭防火墙:systemctl stop firewalld.service
5.启动tomcat ./startup.sh
重启tomcat ./shutdown.sh(关闭tomcat)
./startup.sh(开启tomcat)
6.在浏览器里输入ip:8080 看到猫的图标,然后表示tomcat容器的环境安装成功
mysql 安装
第一步:curl -O https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
第二步:yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
第三步:yum repolist enabled|grep “mysql.-community.”
第四步:yum -y install mysql-community-server
第五步:systemctl start mysqld
第六步:yum install mysql-community-server --nogpgcheck
第七步:use mysql;
第八步:mysql_upgrade -u root -p
第九步:grant all privileges on . to ‘root’@’%’ identified by ‘123456’;
第十步:flush privileges;
第十一步:输入虚拟机的ip,连接naticat
四. 高效设计测试用例
1·测试用例的含义
对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
2·测试用例的内容
1测试目标:确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付之前发现并改正。
2测试环境:部署软件的环境。
3输入数据:是测试用例的核心,被测试函数所读取的外部数据及这些数据的初始值
4测试步骤
5预期结果:测试时对结果的一个预期
6优先级
7需求编号
8模块
3. 为什么设计测试用例
测试用例可以复用、测试用例覆盖度、有效测试的最核心的目的、评估测试工程师工作、测试过程文档、是测试活动的指导、测试质量稳定的根本保障。
4.测试用例设计方法
1等价类划分:
是一种典型的黑盒测试方法,一种集合的方式
1.等价类划分的原则?
1.可以按照区间划分:输入条件在规定了取值范围的情况下,可以分为有效等价类和无效等价类。
2.在输入条件是一个布尔量(指一个真或假状态。通常它们分别用0,1或1,-1来表示),可以确定一个有效等价类。
3.在规定输入数据必须遵守规则的情况下,则可以确定一个有效等价类和若干个无效等价类。
4.在规定了输入数据的一组值中(假设有n个值),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。
5.在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步划分为更小的等价类。
2.使用等价类设计测试用例的步骤?
输入条件==>有效等价类==>无效等价类
编号==>测试点==>前置条件==>测试数据==>测试步骤==>预期结果==>实际结果
3.用例设计题
1.需求说明:
1)程序需求:
a. 某城市电话号码由三部分组成。它们的名称和内容分别是:
地区码:空白或 3 位数字
前 缀:非’0’或’1’的 3 位数字
后 缀:4 位数字
b. 被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2E7Z983g-1647136774624)(C:\Users\16792\Pictures\Saved Pictures\QQ截图20220307202348.png)]
2因果图:
表达和分析因果关系的一种方式
1.因果图的分析思路步骤
1.需求分析:分析软件规格说明找到哪些是原因,哪些是结果
2.确定输入和输出:原因是输入或输入条件的等价类, 结果是输出条件
3.画因果图
4.生成判定表
5.设计测试用例
2.判定表是什么
分析和表达多逻辑条件下执行不同操作的情况的工具
3.因果图有哪些关系,把对应的含义写出来
1.输入相互的关系:
E(互斥/异):a和b中至多有一个可能为1(a和b不能同时为1)
I(或):a、b和c中至少有一个必须是1(a、b和c不能同时为0)
R(要求):a是1时,b必须是1(不可能a是1时b是0)
O(唯一):a和b必须有一个,且仅有一个为1
2.输出的相互关系:
M(屏蔽/强制):a结果存在的时候,b结果肯定不会出现
3.因果之间的关系:
= (恒等) :若C1是1,则E1也是1;否则E1为0 ( 直接一条横线,没有其他东西)
!=(非):若C1是1,则E1是0;否则E1是1 (斜z)
or(或) :若C1或C2是1,则E1是1;否则E1为0,“或”可有任意个输入(v)
and(与):若C1和C2都是1,则E1为1;否则E1为0, “与”也可有任意个输入 (倒v)
4.案例
需求分析 | ||
---|---|---|
输入 | 输出 | |
有零钱找 | 零钱找完红灯亮 | |
投五角 | 出饮料,退还五角 | |
投一元 | ||
押橙汁 | 不出饮料退还一元 | |
押啤酒 | 送出橙汁 | |
送出啤酒 |
因果图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vG1qcYZp-1647136774624)(C:\Users\16792\Pictures\Saved Pictures\QQ截图20220308170344.png)]
3错误猜测法:根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法
4边界值:
大量的错误大概率发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部
用例设计:
2.需求说明:
1)程序需求:
持卡人境外消费交易单笔金额满 2000 元人民币或等值外币,即可享 20 元人
民币或等值外币返现
境外消费单笔满 3000 元人民币或等值外币,即可享 30 元人民币或等值外币
返现
境外消费单笔满 5000 元人民币或等值外币,即可享 50 元人民币或等值外币
返现
每张卡片每个自然月最高返现 500 元人民币或等值外币.每笔消费交易返现
一次,并且单笔消费额不包含货币转换费
2)根据以上场景利用边界值分析方法分析测试需求和设计测试方案
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yoOcOifE-1647136774625)(C:\Users\16792\Pictures\Saved Pictures\QQ截图20220307205105.png)]
5场景法:从用户的角度出发,从场景的角度来设计测试用例
5.测试用例的管理载体
word文档、excel文档、禅道、testlink管理软件
6.编写测试用例的注意事项
1功能检查:功能是否齐全、功能是否多余、功能是否可以合并、功能是否可以细分、各个操作之间的逻辑关系是否清晰。
2 面向用户的考虑:操作是否符合用户习惯、各种选项可用或禁用是否合理、某些相似操作能否成通用模块。
3数据处理[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CCTaTnXf-1647136774626)(C:\Users\16792\Pictures\Saved Pictures\QQ截图20220303171637.png)]
五.软件管理缺陷缺陷
1.软件缺陷的定义
存在于计算机程序中的错误、失效,或者由于程序中的故障令计算机无法正常工作或产生不正确的结果;一个软件的按钮大小不一致,而用户的需求是要求所有按钮大小一致
2.如何识别缺陷
软件未实现产品说明书要求的功能
软件出现了产品说明书指明不应该出现的错误
软件实现了产品说明书未提到的功能
软件难以理解、不易使用、运行缓慢或者从用户的角度体验不好
3.软件缺陷的常见场景
功能未实现或与规格说明不一致
不能工作(死机、无响应)
边界条件未处理
界面、消息、提示、帮助不够准确
屏幕显示、打印结果不正确
软件有尚未完成的功能
与其他软、硬件的不兼
4.严重性与优先级的关系
严重性越高,优先级越高,但并非绝对
严重性高,优先级低
比如出现时非常严重,但出现的概率非常低
严重性低,优先级高
比如影响产品或公司形象的界面错误、公司名称、公司Logo这类缺陷必须立即修改
5.阐述缺陷流程
测试员新建提交缺陷,给开发,开发再确认是否有缺陷,如果没有,开发人员与测试人员共
同讨论是否为缺陷,如果有,由开发人员修改此缺陷,修改完毕后再由测试人员返测是否通
过,最后交由产品经理或项目经理验证。
6.用例测试
寻找学籍管理系统缺陷
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iWPYfxTX-1647136774626)(C:\Users\16792\Pictures\Saved Pictures\1023.png)]
六.通用测试技术
1.通用测试技术
l. 界面测试:
窗体界面测试
控件界面测试
菜单界面测试
特殊属性界面
2.易用性测试:
业务符合性
功能定制性
业务模块的集成度
数据共享能力
约束性
交互性
错误提示
3.兼容性测试:
验证软件与其所在的环境的依赖程度,包括对硬件的依赖程度,对平台的依赖程度、其他软件的依赖程度等
4.文档测试:
术 语
标 题
内 容
图表和截屏
示 例
错 别 字
排 版
5.安装测示:
安装测试
运行测试
卸载测试
加密测试