一、评审阶段
1.1 需求的评审
一般在需求的评审阶段中,参与者至少会有产品经理、开发、测试。对测试而言,在需求评审中,最需要做两件事情。
需求评审阶段,我们需要关注以下相关问题。
补充知识,灰度:
所谓“灰度测试”,就是在某项产品或应用正式发布前,选择特定人群试用,逐步扩大其使用者的数量,以便机试发现和纠正其中的问题。灰度测试步骤:
- 定义目标,对什么产品进行灰度
- 选定策略:用户规模、发布频率、功能覆盖度、回滚策略、运营策略、新旧系统部署策略等
- 筛选用户:用户特征、用户数量、用户常用功能、用户范围等
- 部署系统:部署新系统、部署用户行为分析系统、设定分流规则、运营数据分析、分流规则微调
- 发布总结:用户行为分析报告、用户问卷调查、社会化媒体意见收集、形成产品功能改进列表
- 产品完善
- 新一轮灰度发布或完整发布
1.2 设计评审
设计评审:开发人员在听完需求评审后,先编好开发设计文档,根据项目的大小是否需要进行设计评审,对于比较大的项目,会和产品、测试进行设计的评审。作为测试而言,设计参与评审一是为了加深需求的理解,二是理解开发的设计,也要注意开发的设计是否合理。
在设计评审中,测试一般需要关注以下相关的问题(不一定全面,可能会存在相关差异)。
1.3 用例评审
1.3.1 功能用例评审
功能用例评审:测试人员在编写好用例后,可以通过邮件的形式将发送给对应开发和产品,查看用例场景是否有遗漏。一般开发和产品不怎么看这个邮件的话,就可以抽了十多分钟,拉上会议,进行一个当面的用例评审。
如果是新入职的新人,一般是编写好用例后,先发送邮件给产品、开发,抄送给本组的测试同事,然后再拉上产品、开发进行一个当面的沟通。
1.3.2 联调用例评审
联调用例评审:如果需求涉及到多个系统的话,一般是需要进行一个联调用例评审。评审前一般是会先确定好本次需求的主测试,然后主测会编写好联调文档。
联调用例评审会上会有以下几件事需要做:
宣讲用例:主测宣讲联调的用例,各系统的测试查看是否有场景遗漏,并进行补充。
确定分工:相关基础数据的准备交给对应系统。确定是否有本次需求系统无需变更,但是要协助联调的系统,确定跟进人。
问题记录:对于联调评审中无法确定的问题,进行记录,后续跟进解决。
二、测试阶段
2.1 冒烟测试
冒烟测试:在开发提测后,就进入测试阶段。首先进行冒烟测试,冒烟测试一般需要注意相关问题:
关于静态代码扫描、代码编译等,需要看所在公司对于相关测试平台的建设。例如我现在所在的公司,就是可以创建一个流水线,其中可以配置下面这些功能:代码编译、单元测试、单元测试覆盖率、静态代码检查、项目打包,镜像烘焙、部署、系统测试(自动化代码执行)。所以一般开发提测后,就是执行一下对应的流水线,查看代码是否能编译通过,静态代码扫描是否有问题,原先的自动化Case中的冒烟Case是否能通过等。
在冒烟测试过程中,我们需要有以下记录:
2.2 功能测试
功能测试:在冒烟测试通过后,进行到功能测试。功能测试与冒烟测试的不同在于,冒烟测试只是先将主流程走了一遍,而功能测试需要考虑常规情况和异常情况下的所有情况。在功能测试阶段需要注意以下问题:
前置准备:准备好基础的测试数据,相关变更需要在测试环境中执行等。
用例执行:根据用例设计执行功能测试部分的用例。一般而言,在功能测试阶段,需要调用外部系统服务的话,采用Mock的方式,Mock外部系统的返回,除去Mock外部系统的正常返回,还要Mock超时,抛出异常等异常情况。
预期结果:测试用例执行的结果是否符合预期结果。
前置准备:准备好基础的测试数据,相关变更需要在测试环境中执行等。
用例执行:根据用例设计执行功能测试部分的用例。一般而言,在功能测试阶段,需要调用外部系统服务的话,采用Mock的方式,Mock外部系统的返回,除去Mock外部系统的正常返回,还要Mock超时,抛出异常等异常情况。
预期结果:测试用例执行的结果是否符合预期结果。
在功能测试过程中,我们需要有以下记录:
2.3 联调测试
联调测试:一般只有当需求涉及到多个系统的变更的时候,才需要进行联调测试。而联调测试一般就是各系统将各自的服务部署再Staging联调环境中后,模拟生产一样,按照联调用例走一趟实际的流程。
在联调测试中,需要关注以下的点:
2.4 回归测试
回归测试:在测试分支进行完功能测试后,在发布上线前,开发合并代码到dev、master分支后,分别进行一次回归测试。回归测试一般需要注意相关问题:
在回归测试过程中,我们需要有以下记录:
三、发布上线(预发布->生产)
预发布环境连接的是真实生产的数据库,所以回归测试完成后,一般会先发布到预发布环境。待开发、产品验收无问题后,才会发布到生产环境。在这个过程中,需要注意以下几方面。
参考链接:https://blog.csdn.net/qq_37688023/article/details/115047532
编写测试用例的方向主要从以下三个部分展开:
常规思考:
罗列功能点,对每一项功能都做以下正常验证和异常验证。
理论角度:
从测试理论角度来思考设计测试用例,熟知的测试用例设计方法有:
测试用例(格式)一般会包括:
用例编号、测试项、测试标题、用例属性、重要级别、预置条件、测试输入、操作步骤、预期结果、实际结果
bug标题、详细描述(含步骤)、项目模块、严重程度、优先级、bug类型、bug状态、提交人、提交日期、附加信息、解决人、解决日期、解决方式、解决用时。
bug的严重程度分为:
优先级划分:
1.Immediate(立刻)
2. Urgent(紧要、优先)
3. High(高度重视)
4. Normal(正常)
5. Low(稍缓)
一、从是否关心软件内部结构和具体实现的角度划分
①白盒测试:
②黑盒测试:
二、从事构执行程序的角度
三、从软件开发的过程
杯子有没有毒或细菌。
纸杯用了很多次,都不会坏。
纸杯用法是否简单,步骤是否难懂。
纸杯在夏天和冬天是不是可用。
纸杯一次能装多少水。
给纸杯不断加压,看达到多少压力,纸杯会穿透。
回归测试就是把之前测试过的用例,再重新测一遍,主要分为两类:用例回归、错误回归。
包括资源指标、系统指标。
敏捷测试是测试的一种。
遵循的原则有:
敏捷测试和普通测试的区别:
持续集成的概念是指,频繁的将代码集成到主干。
它的好处主要有两个:
持续集成的目的,就是让产品快速迭代,同时提高质量。核心举措是,代码集成到主干之前,必须通过自动话测试,只要有一个测试用例失败,就不能集成。
其他持续的知识补充
持续交付
频繁的更新软件版本,交付给质量审核团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。持续部署
持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
必须具备以下三个特征
整体完备性:
是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求。
等价类划分的准确性:
指的是对于每个等价类都能保证只要其中一个输入测试通过,其他输入也一定测试通过。
等价类集合的完备性:
需要保证所有可能的边界值和边界条件都已经正确识别。
功能性:
安全性:
测试系统遭受内部和外部来源的攻击,是否能正常运行。
可靠性:
在没有故障的情况下连续执行指定功能的程度。
易用性:
用户通过与系统的交互可以轻松学习,操作,准备输入和输出。
兼容性:
在不同的环境中,是否还可用。
效率:
可以处理的容量,数量和相应时间的程度。
压力测试:
能处理请求的 数量/容量/并发数 极限,引发系统软件的奔溃。
检查网址是否有误,如果网络地址无误,换一个网站访问一下,看看是不是自己的网站出了问题。
检查是不是“防火墙”程序出错、错误的代理设置导致无法上网?暂时关闭电脑的防火墙,取消一切代理,再试一下网络是否恢复;
在 cmd 中使用 ipconfig ,查看 ip地址、子网掩码、默认网关地址。
ping 本机回环 127.0.0.1,如果ping不通,那么是自己电脑的 TCP/IP 协议出错,需要重新安装。ping 本机ip,ping不通,则网卡出现问题。ping 服务器ip,ping不通则检查服务器。
测试FTP是否正常可以登录,不能登录的直接问空间商那是空间商的问题直接联系他们。
空间赠送的三级域名是否能够访问网站打开网站(空间都赠送三级域名),如果也不能访问应该是空间问题。
在cmd中 ping 自己的域名,如果看不到IP或IP地址与你的主机地址不符,则说明域名解析有误,是域名的问题得重新解析域名。
先将问题提交到缺陷管理库里面进行备案。然后获取判断的依据和标准:
合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。
系统结构方面
兼容方面
性能方面
相对于 Wed 项目,APP有专项测试
制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
功能性测试包括:
界面测试包括:
性能测试包括:
数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
基本的登录功能的检查
是否存在溢出错误,导致系统崩溃或者权限泄露
相关开发语言的常见安全性问题检查,例如SQL注入等
如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
兼容性测试:
浏览器的兼容性
操作系统的兼容性
软件平台的兼容性
数据库的兼容性
开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
定期评审,对测试进行评估和总结,调整测试的内容。
杯子有没有毒或细菌。
纸杯用了很多次,都不会坏。
纸杯用法是否简单,步骤是否难懂。
纸杯在夏天和冬天是不是可用。
纸杯一次能装多少水。
给纸杯不断加压,看达到多少压力,纸杯会穿透。
功能测试
UI界面测试
性能测试
安全测试
弱网测试
易用性测试
一、了解需求
1、登录界面是弹窗式的,还是直接卸载网页里面的?
2、账号长度和密码强度?(多少位、大小写敏感、特殊字符混搭等)
3、界面美观是否右要求?(即是否要进行UI测试)…
4、应用在手机上测试还是在电脑上
二、设计测试用例
功能性测试:
界面测试:
性能测试:
安全性测试:
可用性测试:
兼容性测试:
功能测试:
性能测试:
易用性测试:
兼容性测试:
安全测试:
2021年软件测试工具大全(自动化、接口、性能、安全、测试管理)
原理:
Selenium是通过模仿浏览器行为,selenium会通过打开一个浏览器,然后执行我们实现设置好的操作事件,从而实现数据获取。
流程:
优点:
缺点
原理:
通过postman给服务器发送请求,服务器处理完成后,传回给postman,postman显示处理结果。
功能:
优点:
缺点:
功能:可以对系统做压力和性能测试,同样也可以对数据库进行测试(基于JDBC)
优点:
缺点:
1. 查看内存使用情况
打开syslog日志文件,可以使用箭头向下滚动一行。
less /var/log/syslog
会输出syslog文件的末尾几行。
tail -f /var/log/syslog
使用如下命令编辑当前定时任务、列出当前定时任务、删除工作表
crontab [-u username] //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)
使用 crontab -e 进入当前用户的工作表编辑,界面是VIM界面。每一行是一条定时任务的命令。
命令的构成未 时间+动作,时间有分、时、日、月、周五种,操作符有
实例:
记录软件源的文件为 /etc/apt/sources.list
,打开该文件,进行编辑即可。
改 ip 配置的命令为 ifconfig 命令。配置文件位于/etc/sysconfig/network-scripts
。
ps -mp pid -o THREAD,tid,time | sort -rn
进程中占用CPU过高的线程 jstack pid |grep tid -A 30 [线程id的16进制]
打印线程的堆栈信息。cat -n test.log | grep ‘error’ 查询日志中含有某个关键字的信息,显示出行号
查找当前目录下.phtml文件中,最近30分钟内修改过的文件。
find ./ -name '*.phtml' -type f -mmin -30
查找当前目录下.phtml文件中,最近30分钟内修改过的文件,的详细情况
find . -name ‘*.phtml‘ -type f -mmin -30 -ls
查找当前目录下,最近1天内修改过的常规文件。
find . -type f -mtime -1
查找当前目录下,最近1天前(2天内)修改过的常规文件。
find . -type f -mtime +1
grep -c ‘要查找的内容’ 查找的文件
找test文件中含有内容hyzx的行数
grep -c hyzx ./test
sed -i 's/Search_String/Replacement_String/g' Input_File
ubuntu显示top命令为: