常见问题
0.测试分类
根据项目流程阶段划分软件测试
单元测试:单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过
程。
集成测试:集成测试是单元测试的基础上,将通过单元模块组装成系统或子系统,再进行测试,重点
是检查模块之间的接口是否正确。
系统测试:系统测试是针对整个产品系统进行的测试,验证系统是否满足了需求规格的定义,以及软
件系统的正确性和性能等是否满足其规约所指定的要求。
验收测试:验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,向
软件购买都展示该软件系统满足其用户的需求
白盒测试、黑盒测试、灰盒测试
黑盒测试:
黑盒测试,指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只
关心软件的输入数据和输出结果。
它只检查程序呈现给用户的功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输
入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面
和软件功能进行测试。
** 白盒测试:**
白盒测试,指的是把盒子打开,去研究里面的源代码和程序执行结果。
它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正
常进行,检验程序中的每条通路是否都能按预定要求正确工作。
** 灰盒测试:**
灰盒测试介于黑盒测试与白盒测试之间。
可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那
样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,
但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取
这样的一种灰盒测试的方法。
功能测试与性能测试
从对软件的不同测试点可以划分为功能测试与性能测试。
功能测试
功能测试检查实际的功能是否符合用户的需求。测试的大部分工作也是围绕软件的功能进行,设计软
件的目的也就是满足客户对其功能的需求。如果偏离的这个目的任何测试工作都是没有意义的。
功能测试又可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进
行测试。
软件的性能包括很多方面,主要有时间性能和空间性能两种。
时间性能:主要是指软件的一个具体的响应时间。比如一个登录所需要的时间,一个交易所需要的时
间等。当然,抛开具体的测试环境,来分析一次事务的响应时间是没有任何意义的。需要搭建一个具体且
独立的测试环境。
空间性能:主要指软件运行时所消耗的系统资源,比如硬件资源,CPU、内存,网络带宽消耗等。
一 软件测试理论基础
①、什么是软件测试?
在规定条件下对程序进行操作,发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
②、软件测试主要测试用例设计方法是什么?
白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖
黑盒测试:等价类、边界值、因果图、状态图法、错误猜测、测试大纲、随机测试、场景。
③、测试计划、方案以及测试报告主要包括哪些方面?
测试计划主要包括:
Ⅰ 测试范围(功能性测试;非功能性测试)
Ⅱ 测试通过/失败的标准(通过准则;失败准则)
Ⅲ 测试挂起恢复条件
Ⅳ 测试进度人力分布计划
Ⅴ 测试交付物
测试方案主要包括:
Ⅰ 测试环境(软硬件构成;网络构成;环境搭建;测试工具)
Ⅱ 测试策略
Ⅲ 测试风险评估与预防
测试报告:
Ⅰ 测试BUG记录
Ⅱ 测试BUG统计分析
Ⅲ 测试用例执行情况清单
Ⅳ 遗留问题清单
PS:具体情况具体分析格式不一定一致。
④、测试流程
阅读需求—评审—判定开发时间—测试计划、方案—编写测试用例—开发提交版本—进行测试—提交bug—追踪—提交新版本进行回归—测试完毕—进行走查上线。
⑤、Bug的管理,测试提交bug,开发不认可
首先,在bug的管理工具上进行记录;查找需求文档,与开发人员进行沟通进行复现bug;询问产品人员需求情况;寻找相关上级进行评定。
⑥、fiddler对于测试来说有什么好处?
抓包,查看请求,确认问题所在,是功能问题还是网络问题还是接口问题
⑦、微信朋友圈有哪些测试点?
封面,发布,自己头像,朋友头像和昵称,评论,点赞,删除,权限(重点)
⑧、软件测试原则和策略?
Ⅰ、测试应基于用户需求;
Ⅱ、做好软件测试计划是做好软件工作的关键;
Ⅲ、应尽早的开始软件测试并不断的进行软件测试;
Ⅳ、测试前必须明确定义好产品的质量标准;
Ⅴ、避免测试自己的软件;
Ⅵ、应充分注意测试中的集群现象;
Ⅶ、必须检查每个实际输出结果;
Ⅷ、穷举测试是不可能的;
Ⅸ、测试设计决定了测试的有效性和效率;
Ⅹ、注意保留测试设计和说明文档,并注意测试设计的可重用性。
二 数据库基本操作
①、创建表
Create table table_name(column_name property(length)……);
②、修改表(modify—修改表字段类型和长度)
Alter table table_name modify column column_name property(length);
③、新增表数据
Insert into table_name values(value, value ,value……);
Inset into table_name(column_name, …) values(value, …);
④、查询表数据
Select * from table_name;
Select column_name from table_name;
Select * from table_name where column = value;
⑤、修改表数据
Update table_name set column = value where column = value;
⑥、删除表数据
Delete from table_name;
Delete from table_name where column = value;
Truncate table table_name;
⑦、多表查询(内连接,左外连接,右外连接,子查询)
内连接:Select column_name from table1 [inner] join table2 on table1.column = table2.column;
左外连接:Select table1.column,table2.column from table1 left join table2 on table1.column = table2.column;
右外连接:Select table1.column,table2.column from table1 right join table2 on table1.column = table2.column;
子查询:Select column from table1 where column = (select column from table2 where column = value);
区别:内连接旨在得到两表之间的交集数据,可能会造成数据丢失;左外右外分别是以左表或右表为主表,添加另外一张表的数据;子查询旨在查询结果只需要显示一张表中的数据,但是需要从另一张表得到相关条件。
⑧、聚合函数、分组查询、排序
COUNT();统计行数量;
SUM();统计某列合计值;
ANG();统计某列平均值;
MAX();计算列最大值;
MIN();计算列最小值;
Select column_name, count(*) from table_name Group by(column_name);
Select column_name from table_name order by column_name limit 10 DESC;(倒序)
⑨、视图
Create VIEW view_name as select * from table where condition;
三 Linux环境安装部署以及使用的基本命令
1)、启动mysql服务:systemctl start mysql;service mysqld start
2)、解压文件:tar –zxvf 文件名
3)、创建用户分组:groupadd 分组名
4)、创建新用户:useradd 用户名
5)、下载安装文件:yum install -y文件名
6)、编辑文件:vi 文件名
7)、保存: :wq
8)、强制退出::q!
9)、创建文件:mkdir 文件名
10)、本机复制文件:cp file /remote_file/file
11)、移动文件:mv file /remote_file/file
12)、多台主机传输文件:scp local_file remote_username@remote_ip:remote_folder(需要注意的是需要知道目标主机的密码密码以及网络通畅)
13)、删除文件:rm –rf file
14)、查看主机信息:top
15)、查看进程:ps –ef | grep mysql
16)、查看端口:netstat -tunlp | grep 3306
17)、杀死进程:kill -9 进程号
18)、切换目录:cd
19)、显示磁盘信息:df –h
20)、Docker
四 接口
http常见错误代码:常见错误状态码全集
http协议;TCP/IP协议;fiddler;postman;自动化;get、post请求
http:应用层–网络传输协议
TCP:数据传输层—应用程序之间
IP:网络层—连接计算机与计算机通信
fiddler工具对测试的好处:看请求,确认问题所在,是功能问题还是网络问题还是接口问题;
五 自动化
Selenium;appium;monkey;robotframework
六 性能
Loadrunner:规划,录制,参数化,关联,场景,分析
jmeter:断言,树分析