常见面试题
作者:互联网
1:公司流程
立项确定项目,产品会出一个产品说明书,需求人员编写需求文档、需求评审,开发人员编写详细设计,测试编写测试用例、测试评审,开发编写代码,测试部署环境进行测试,首先进行冒烟测试、功能测试,出现bug,使用禅道跟踪bug,开发修改bug,然后进行回归测试、验收测试,验收通过后,进行上线
2:测试计划内容
测试目的、测试背景、测试环境、测试范围、测试资源、测试人员分配、时间安排、风险评估
3:测试用例内容
用例编号、模块、用例标题、用例级别、前置条件、输入数据、执行操作、预期结果、实际结果、是否通过
4:缺陷报告内容
缺陷编号、缺陷状态、缺陷标题、重现步骤、优先级、严重程度、缺陷类型、测试环境
5:bug的生命周期
新建、确认、解决、重新验证、关闭、重新打开
6:测试报告内容
测试目标、测试依据、测试范围、测试坏境、进度、回归测试、遗留多少bug、bug如何处理
7:get/post区别(put和delete)
get是请求数据,post是提交数据
get请求的参数放在url中,post放在body中,相对来说post更加安全
get的url有长度限制,而post的数据可以非常大
8:app和web的区别
相同点:测试用例设计方法相同,测试方法相同,都可以进行速度测试和压力测试。
不同点:
app中断测试:来电中断,信号中断,断电中断,系统死机,屏幕锁定
app安装卸载:全新安装,升级安装,第三方插件安装,插件卸载
兼容性:web项目需要与不同浏览器兼容,app需要考虑手机系统,机型,屏幕等。
测试工具:web使用selenium,手机自动化使用monkey
9:接口测试用例内容
用例编号、所属模块、测试标题、接口功能、请求路径、请求方式、请求参数、请求头、请求体、预期结果、实际结果
10:接口测试流程
首先拿到接口文档,分析接口文档中接口的功能,请求路径,请求方式,请求参数,响应文本,参数的类型,参数是否必填,参数的长度,参数是否唯一,编写接口测试用例,使用工具执行接口测试用例
11:如何实现多接口关联
将第一个接口设置断言tests,拿到返回体后转为json对象,通过json对象表达式提取想要的值,将这个值设为全局变量,通过{{全局变量}}供第二个接口使用
12:接口中常见的断言有哪些
(1)Status code:code is 200 (校验响应头是否包含某个值)
(2)response body:contains string (校验返回结果中是否包含某个字符串)
(3)response body:Json value check (校验返回结果中某个字段是否等于某个值)
(4)response header:content-type header check (校验响应头是否包含某个值)
(5)response time is less than200ms (校验响应时间是否少于200ms)
(6)response body:Is equal to string (校验返回结果中是否等于该字符串)使用少
13:数据库的增删改查以及多表联查语句
搜索:select * from 表名 where 条件
添加值:insert into 表名 values(字段值1,字段值2,......)
修改:update 表名 set 字段=新值 where 条件
删除:delete from 表名 where 条件
表关联:select 表1.字段,表2.字段,表3.字段 from 表1,表2 on,表3 where 表1.字段=表2.字段 and 表1.字段=表3.字段 and 条件
14:左右关联的区别
左连接:以左表为主 右表没有显示为null
右连接:以右表为主 左表没有显示为null
15:具体举例:
查询学生表中成绩最高的前三条数据:select * from student order by score desc limit 0,3
查询学生表中姓张的信息:select * from student where name=‘张’
查询学生表中男女生人的数量:select sex,count(sex) from student group by sex
查询成绩在50到80之间的信息:select * from student where score betwend 50 and 80
16:liunx基本命令
动态查看日志:tail -f 日志名
过滤关键字:greap 关键字 文件
查询文件内容:cat/vim/less/host
查询进程和杀进程:ps -ef查看全部进程 ps - ef | grep 名 指定查询 kill -9 进程id杀死进程
查询端口:netseat -an
查询cpu/内存/磁盘:yop free df-h
查询文件名的路径:find / -name 文件名
压缩和解压tar包 tar -zcvf 名.tar 压缩文件名 tar -xvf 压缩文件名 路径 解压
17:Linux中环境的搭建和项目的部署
如何配置jdk,tomcat和MySQL,以及.war包的操作:
jdk:
1)查看当前Linux系统是否已经安装java
输入 rpm -qa | grep java
2)卸载两个openJDK
输入rpm -e --nodeps 要卸载的软件
3)上传jdk到linux
4)安装jdk运行需要的插件yum install glibc.i686(选做)
5)解压jdk到/usr/local下 tar –xvf jdk-7u71-linux-i586.tar.gz –C /usr/local
6)配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去
\#set java environment
JAVA_HOME=/usr/local/jdk/jdk1.8.0_131
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
7)重新加载/etc/profile配置文件 source /etc/profile
验证:java –version
mysql:
1)查看CentOS自带的mysql
输入 rpm -qa | grep mysql
2)将自带的mysql卸载
3)上传Mysql到linux
4)解压Mysql到/usr/local/下的mysql目录(mysql目录需要手动创建)内
cd /usr/local
mkdir mysql
tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /usr/local/mysql
5)在/usr/local/mysql下安装mysql
安装服务器端:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
安装客户端:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
6)启动mysql
service mysql start
7)将mysql加到系统服务中并设置开机启动
加入到系统服务:chkconfig --add mysql
自动启动:chkconfig mysql on
8)登录mysql(5.5的版本为空)
mysql安装好后会生成一个临时随机密码,存储位置在/root/.mysql_secret
msyql –u root -p
9)修改mysql的密码
set password = password('root');
10)开启mysql的远程登录
默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启 远程登录mysql的权限
登录mysql后输入如下命令:
grant all privileges on . to 'root' @'%' identified by 'root';
flush privileges;
11)开放Linux的对外访问的端口3306
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save ---将修改永久保存到防火墙中
tomcat:
1)上传Tomcat到linux上
2)解压Tomcat到/usr/local下
3)开放Linux的对外访问的端口8080
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save
4)启动关闭Tomcat
进入tomcat的bin下启动:./startup.sh
进入tomcat的bin下关闭:./shutdown.sh
.war包
1:将jemkins.war包拷贝到tomcat中的webapps目录下即可
2:查看webapps目录下会有自动解压的Jenkins目录
3:重启tomcat
4:访问项目,具体Jenkins的安装查考"Jenkins的部署文档
18:如何定位问题(charles)
charles/fiddler/wireshark/f12
使用抓包工具抓取该接口,查看接口的请求数据(请求行,请求头,请求参数),如果请求有问题那么是前端的问题
如果请求没有问题,响应数据有问题(响应头,响应内容),那么是后端的问题
19:Charles中常见的操作
下载证书:
点击help,选中ssl Proxying ,点击Install Charles Root Certificate,点击安装证书,选择当前用户然后下一步,选中”将所有的证书都放入下列存储”,点击”游览”按钮,3.2.5:选中”受新任的根证书颁发机构”,点击”确定”按钮,之后下一步完成
断点调试:
断点调试修改request
步骤:抓取该接口右键breakpoints,拷贝该接口的url,然后在代理proxy中选择breakpoints settings 设 置该接口信息,将query修改成*,勾选request ,ok,刷选该界面,拿到对应的接口修改请求参数执行即可
使用charles 抓取该接口,修改接口中的请求参数,绕开前端向后端发送错误的请求参数,验证后端是否进行逻辑 处理
使用场景:
注册中密码 6~18 小于6位
断点调试修改response
步骤:抓取该接口右键breakpoints,拷贝该接口的url,然后在代理proxy中选择breakpoints settings 设 置该接口信息,将query修改成*,勾选response,ok,刷选该界面,拿到对应的接口修改响应参数执行即可
绕过后端查看前端
场景:前端界面显示商品详细信息超过三行以小数点显示....
弱网测试:
点击Proxy代理再点击Throttle Settings 网络模拟设置 或者点乌龟
本地修改:
选中抓取的包,点击save response保存到本地桌面,打开保存的文件修改信息更该文件格式保存替换原来的信息
回到charles选中抓取的包,右键点击map local自动获取到地址,如果不能自动获取地址,关掉次页面,选中抓取的包,右键单击copy url 然后再次操作,那拿到的url 放在host ,然后点击下方任意栏就会出现path,记得把 query 换成 *
20:登录/注册的测试用例
用例编号 模块 标题 用例级别 优先级 前置条件 输出数据 执行操作 预期结果 实际结果 是否通过
yx_001 验证邮箱地址是否正确 输入邮箱地址大于等于6小于等于18,且以字母开头 高 高 邮箱地址长度适合 输出数据:a142629219@126.com "1.输入邮箱号
2.进行验证" "1.邮箱号输入成功
2.邮箱格式正确"
yx_002 验证邮箱地址是否正确 输入邮箱地址大于等于6小于等于18,不以字母开头 中 中 邮箱地址长度适合 输出数据:142629219@126.com "1.输入邮箱号
3.进行验证" "1.邮箱号输入成功
3.邮箱格式不正确"
yx_003 验证邮箱格式是否正确 输入邮箱地址大于18,且以字母开头 中 中 邮箱地址长度适合 输出数据:a142629219456@128.com "1.输入邮箱号
4.进行验证" "1.邮箱号输入成功
4.邮箱格式不正确"
yx_004 验证邮箱地址是否正确 输入邮箱地址小于6,且以字母开头 中 中 邮箱地址长度适合 输出数据:a14262@129.com "1.输入邮箱号
5.进行验证" "1.邮箱号输入成功
5.邮箱格式不正确"
yx_005 验证密码格式是否正确 输入密码长度大于等于6小于等于16,且区分大小写 高 高 邮箱地址长度适合 输出数据:a142629219@130.com "1.输入密码
6.进行验证" "1.密码输入成功
6.密码格式正确"
yx_006 验证密码格式是否正确 输入密码长度大于等于6小于等于23,不区分大小写 中 中 邮箱地址长度适合 输出数据:a142629219@131.com "1.输入密码
7.进行验证" "1.密码输入成功
7.密码格式不正确"
yx_007 验证密码格式是否正确 输入密码长度小于6,且区分大小写 中 中 邮箱地址长度适合 输出数据:a142629219@132.com "1.输入密码
8.进行验证" "1.密码输入成功
8.密码格式不正确"
yx_008 验证密码格式是否正确 输入密码长度大于25,且区分大小写 中 中 邮箱地址长度适合 输出数据:a142629219@133.com "1.输入密码
9.进行验证" "1.密码输入成功
9.密码格式不正确"
yx_009 验证二次密码是否正确 二次密码与密码相同 高 高 输出数据:a142629219@134.com "1.输入邮箱号
10.进行验证" "1.密码输入成功
9.密码格式正确"
yx_010 验证二次密码是否正确 二次密码与密码不相同 中 中 输出数据:a142629219@135.com "1.输入邮箱号
11.进行验证" "1.密码输入成功
9.密码格式不正确"
21:编写测试用例的方法和对应场景
等价类划分:
分为有效和无效等价类
场景:当测试需要数据量过大,且数据操作可以分类时进行等价类划分
边界值:
边界值法用于对等价类不足的补充
边界点:上点、内点、离点
上点:边界上的点
内点:边界内的点
离点:离边界值最近的与上点不同类的点
边界值法的使用:首先确定有效边界,其次选取边界上的点书写测试用例。
场景法:
通过场景描述的业务流程(业务逻辑),也包括代码实现逻辑,设计用例来遍历场景,验证软件系统功能的正确性
画出流程图--产品需求文档,画好了;或者是需要测试自己画--wps,office-visio,在线processon
矩形:表示步骤(操作,输入,输出结果)
菱形:判断条件--是,否
箭头:流向
正交实验:
正交表能够在因素变化范围内均衡抽样,使每次试验都具有较强的代表性,由于正交表具备均衡分散
的特点,保证了全面实验的某些要求,这些试验往往能够较好或更好的达到实验的目的。
应用场景:在一个界面中有多个控件,每个控件有多个取值,控件之间可以相互组合
错误推测:
误推测法:根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的黑盒测 试方法。
它的要素有三个:经验,知识,直觉---探索性测试
考虑程序可能触发的错误场景---不能正常运行
使用场景:(考虑的可能不全)不单独使用---可以作为其他方法的补充!
22:测试点(保温杯/电梯等)
功能:
1、电梯内分楼层键是否正常
2、电梯内开关门键是否正常
3、电梯内的报警键是否正常使用
4、电梯外的上下键是否正常
5、同时关注显示屏,电梯内外的显示屏显示的电梯层数和运行方向
6、有障碍物时,电梯门的感应系统有效情况
界面:
1、查看电梯的外观
2、按钮的图标显示,大小
3、电梯内部张贴的说明(比如报警装置的说明、称重量等)
易用性:
1、楼层按键高度(小孩和一些身高矮的用户会按键不方便)
2、电梯是否有地毯、夏天是否有空调、通风条件、照明条件、手机信号是否通畅
3、电梯是否有扶手,是否有专针对残疾人的扶手等等
安全性:
1、下坠时是否有制动装置
2、暴力破坏电梯时是否报警,
3、超重是否报警
4、超时自动开门
5、火灾报警后,允许就近停靠
6、停电情况下电梯是否有应急电源装置
性能:
1、测试电梯负载单人时的运行情况
2、多人时的运行情况
3、一定人数下较长时间的运作
4、更长时间运作时的运行情况
5、不断增加人数导致电梯报警
23:常见的状态码
200:请求成功
301:永久重定向:请求的资源的URI已被更新,以后都是用新的URI
302:临时重定向:与301的不同是,URI可能还会变动
403:服务器收到请求,但是拒绝提供服务
404:请求资源不存在,eg:输入了错误的URL
500:服务器发生不可预期的错误
503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
24:session和cookie的却别
Cookie是把数据保存在浏览器端的内存中
Session把数据保存在服务器端的内存中
25:如何通过postman实现自动化
常见的面试题
1:公司流程
立项确定项目,产品会出一个产品说明书,需求人员编写需求文档、需求评审,开发人员编写详细设计,测试编写测试用例、测试评审,开发编写代码,测试部署环境进行测试,首先进行冒烟测试、功能测试,出现bug,使用禅道跟踪bug,开发修改bug,然后进行回归测试、验收测试,验收通过后,进行上线
2:测试计划内容
测试目的、测试背景、测试环境、测试范围、测试资源、测试人员分配、时间安排、风险评估
3:测试用例内容
用例编号、模块、用例标题、用例级别、前置条件、输入数据、执行操作、预期结果、实际结果、是否通过
4:缺陷报告内容
缺陷编号、缺陷状态、缺陷标题、重现步骤、优先级、严重程度、缺陷类型、测试环境
5:bug的生命周期
新建、确认、解决、重新验证、关闭、重新打开
6:测试报告内容
测试目标、测试依据、测试范围、测试坏境、进度、回归测试、遗留多少bug、bug如何处理
7:get/post区别(put和delete)
get是请求数据,post是提交数据
get请求的参数放在url中,post放在body中,相对来说post更加安全
get的url有长度限制,而post的数据可以非常大
8:app和web的区别
相同点:测试用例设计方法相同,测试方法相同,都可以进行速度测试和压力测试。
不同点:
app中断测试:来电中断,信号中断,断电中断,系统死机,屏幕锁定
app安装卸载:全新安装,升级安装,第三方插件安装,插件卸载
兼容性:web项目需要与不同浏览器兼容,app需要考虑手机系统,机型,屏幕等。
测试工具:web使用selenium,手机自动化使用monkey
9:接口测试用例内容
用例编号、所属模块、测试标题、接口功能、请求路径、请求方式、请求参数、请求头、请求体、预期结果、实际结果
10:接口测试流程
首先拿到接口文档,分析接口文档中接口的功能,请求路径,请求方式,请求参数,响应文本,参数的类型,参数是否必填,参数的长度,参数是否唯一,编写接口测试用例,使用工具执行接口测试用例
11:如何实现多接口关联
将第一个接口设置断言tests,拿到返回体后转为json对象,通过json对象表达式提取想要的值,将这个值设为全局变量,通过{{全局变量}}供第二个接口使用
12:接口中常见的断言有哪些
(1)Status code:code is 200 (校验响应头是否包含某个值)
(2)response body:contains string (校验返回结果中是否包含某个字符串)
(3)response body:Json value check (校验返回结果中某个字段是否等于某个值)
(4)response header:content-type header check (校验响应头是否包含某个值)
(5)response time is less than200ms (校验响应时间是否少于200ms)
(6)response body:Is equal to string (校验返回结果中是否等于该字符串)使用少
13:数据库的增删改查以及多表联查语句
搜索:select * from 表名 where 条件
添加值:insert into 表名 values(字段值1,字段值2,......)
修改:update 表名 set 字段=新值 where 条件
删除:delete from 表名 where 条件
表关联:select 表1.字段,表2.字段,表3.字段 from 表1,表2 on,表3 where 表1.字段=表2.字段 and 表1.字段=表3.字段 and 条件
14:左右关联的区别
左连接:以左表为主 右表没有显示为null
右连接:以右表为主 左表没有显示为null
15:具体举例:
查询学生表中成绩最高的前三条数据:select * from student order by score desc limit 0,3
查询学生表中姓张的信息:select * from student where name=‘张’
查询学生表中男女生人的数量:select sex,count(sex) from student group by sex
查询成绩在50到80之间的信息:select * from student where score betwend 50 and 80
16:liunx基本命令
动态查看日志:tail -f 日志名
过滤关键字:greap 关键字 文件
查询文件内容:cat/vim/less/host
查询进程和杀进程:ps -ef查看全部进程 ps - ef | grep 名 指定查询 kill -9 进程id杀死进程
查询端口:netseat -an
查询cpu/内存/磁盘:yop free df-h
查询文件名的路径:find / -name 文件名
压缩和解压tar包 tar -zcvf 名.tar 压缩文件名 tar -xvf 压缩文件名 路径 解压
17:Linux中环境的搭建和项目的部署
如何配置jdk,tomcat和MySQL,以及.war包的操作:
jdk:
1)查看当前Linux系统是否已经安装java
输入 rpm -qa | grep java
2)卸载两个openJDK
输入rpm -e --nodeps 要卸载的软件
3)上传jdk到linux
4)安装jdk运行需要的插件yum install glibc.i686(选做)
5)解压jdk到/usr/local下 tar –xvf jdk-7u71-linux-i586.tar.gz –C /usr/local
6)配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去
\#set java environment
JAVA_HOME=/usr/local/jdk/jdk1.8.0_131
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
7)重新加载/etc/profile配置文件 source /etc/profile
验证:java –version
mysql:
1)查看CentOS自带的mysql
输入 rpm -qa | grep mysql
2)将自带的mysql卸载
3)上传Mysql到linux
4)解压Mysql到/usr/local/下的mysql目录(mysql目录需要手动创建)内
cd /usr/local
mkdir mysql
tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /usr/local/mysql
5)在/usr/local/mysql下安装mysql
安装服务器端:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
安装客户端:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
6)启动mysql
service mysql start
7)将mysql加到系统服务中并设置开机启动
加入到系统服务:chkconfig --add mysql
自动启动:chkconfig mysql on
8)登录mysql(5.5的版本为空)
mysql安装好后会生成一个临时随机密码,存储位置在/root/.mysql_secret
msyql –u root -p
9)修改mysql的密码
set password = password('root');
10)开启mysql的远程登录
默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启 远程登录mysql的权限
登录mysql后输入如下命令:
grant all privileges on . to 'root' @'%' identified by 'root';
flush privileges;
11)开放Linux的对外访问的端口3306
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save ---将修改永久保存到防火墙中
tomcat:
1)上传Tomcat到linux上
2)解压Tomcat到/usr/local下
3)开放Linux的对外访问的端口8080
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save
4)启动关闭Tomcat
进入tomcat的bin下启动:./startup.sh
进入tomcat的bin下关闭:./shutdown.sh
.war包
1:将jemkins.war包拷贝到tomcat中的webapps目录下即可
2:查看webapps目录下会有自动解压的Jenkins目录
3:重启tomcat
4:访问项目,具体Jenkins的安装查考"Jenkins的部署文档
18:如何定位问题(charles)
charles/fiddler/wireshark/f12
使用抓包工具抓取该接口,查看接口的请求数据(请求行,请求头,请求参数),如果请求有问题那么是前端的问题
如果请求没有问题,响应数据有问题(响应头,响应内容),那么是后端的问题
19:Charles中常见的操作
下载证书:
点击help,选中ssl Proxying ,点击Install Charles Root Certificate,点击安装证书,选择当前用户然后下一步,选中”将所有的证书都放入下列存储”,点击”游览”按钮,3.2.5:选中”受新任的根证书颁发机构”,点击”确定”按钮,之后下一步完成
断点调试:
断点调试修改request
步骤:抓取该接口右键breakpoints,拷贝该接口的url,然后在代理proxy中选择breakpoints settings 设 置该接口信息,将query修改成*,勾选request ,ok,刷选该界面,拿到对应的接口修改请求参数执行即可
使用charles 抓取该接口,修改接口中的请求参数,绕开前端向后端发送错误的请求参数,验证后端是否进行逻辑 处理
使用场景:
注册中密码 6~18 小于6位
断点调试修改response
步骤:抓取该接口右键breakpoints,拷贝该接口的url,然后在代理proxy中选择breakpoints settings 设 置该接口信息,将query修改成*,勾选response,ok,刷选该界面,拿到对应的接口修改响应参数执行即可
绕过后端查看前端
场景:前端界面显示商品详细信息超过三行以小数点显示....
弱网测试:
点击Proxy代理再点击Throttle Settings 网络模拟设置 或者点乌龟
本地修改:
选中抓取的包,点击save response保存到本地桌面,打开保存的文件修改信息更该文件格式保存替换原来的信息
回到charles选中抓取的包,右键点击map local自动获取到地址,如果不能自动获取地址,关掉次页面,选中抓取的包,右键单击copy url 然后再次操作,那拿到的url 放在host ,然后点击下方任意栏就会出现path,记得把 query 换成 *
20:登录/注册的测试用例
用例编号 模块 标题 用例级别 优先级 前置条件 输出数据 执行操作 预期结果 实际结果 是否通过
yx_001 验证邮箱地址是否正确 输入邮箱地址大于等于6小于等于18,且以字母开头 高 高 邮箱地址长度适合 输出数据:a142629219@126.com "1.输入邮箱号
2.进行验证" "1.邮箱号输入成功
2.邮箱格式正确"
yx_002 验证邮箱地址是否正确 输入邮箱地址大于等于6小于等于18,不以字母开头 中 中 邮箱地址长度适合 输出数据:142629219@126.com "1.输入邮箱号
3.进行验证" "1.邮箱号输入成功
3.邮箱格式不正确"
yx_003 验证邮箱格式是否正确 输入邮箱地址大于18,且以字母开头 中 中 邮箱地址长度适合 输出数据:a142629219456@128.com "1.输入邮箱号
4.进行验证" "1.邮箱号输入成功
4.邮箱格式不正确"
yx_004 验证邮箱地址是否正确 输入邮箱地址小于6,且以字母开头 中 中 邮箱地址长度适合 输出数据:a14262@129.com "1.输入邮箱号
5.进行验证" "1.邮箱号输入成功
5.邮箱格式不正确"
yx_005 验证密码格式是否正确 输入密码长度大于等于6小于等于16,且区分大小写 高 高 邮箱地址长度适合 输出数据:a142629219@130.com "1.输入密码
6.进行验证" "1.密码输入成功
6.密码格式正确"
yx_006 验证密码格式是否正确 输入密码长度大于等于6小于等于23,不区分大小写 中 中 邮箱地址长度适合 输出数据:a142629219@131.com "1.输入密码
7.进行验证" "1.密码输入成功
7.密码格式不正确"
yx_007 验证密码格式是否正确 输入密码长度小于6,且区分大小写 中 中 邮箱地址长度适合 输出数据:a142629219@132.com "1.输入密码
8.进行验证" "1.密码输入成功
8.密码格式不正确"
yx_008 验证密码格式是否正确 输入密码长度大于25,且区分大小写 中 中 邮箱地址长度适合 输出数据:a142629219@133.com "1.输入密码
9.进行验证" "1.密码输入成功
9.密码格式不正确"
yx_009 验证二次密码是否正确 二次密码与密码相同 高 高 输出数据:a142629219@134.com "1.输入邮箱号
10.进行验证" "1.密码输入成功
9.密码格式正确"
yx_010 验证二次密码是否正确 二次密码与密码不相同 中 中 输出数据:a142629219@135.com "1.输入邮箱号
11.进行验证" "1.密码输入成功
9.密码格式不正确"
21:编写测试用例的方法和对应场景
等价类划分:
分为有效和无效等价类
场景:当测试需要数据量过大,且数据操作可以分类时进行等价类划分
边界值:
边界值法用于对等价类不足的补充
边界点:上点、内点、离点
上点:边界上的点
内点:边界内的点
离点:离边界值最近的与上点不同类的点
边界值法的使用:首先确定有效边界,其次选取边界上的点书写测试用例。
场景法:
通过场景描述的业务流程(业务逻辑),也包括代码实现逻辑,设计用例来遍历场景,验证软件系统功能的正确性
画出流程图--产品需求文档,画好了;或者是需要测试自己画--wps,office-visio,在线processon
矩形:表示步骤(操作,输入,输出结果)
菱形:判断条件--是,否
箭头:流向
正交实验:
正交表能够在因素变化范围内均衡抽样,使每次试验都具有较强的代表性,由于正交表具备均衡分散
的特点,保证了全面实验的某些要求,这些试验往往能够较好或更好的达到实验的目的。
应用场景:在一个界面中有多个控件,每个控件有多个取值,控件之间可以相互组合
错误推测:
误推测法:根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的黑盒测 试方法。
它的要素有三个:经验,知识,直觉---探索性测试
考虑程序可能触发的错误场景---不能正常运行
使用场景:(考虑的可能不全)不单独使用---可以作为其他方法的补充!
22:测试点(保温杯/电梯等)
功能:
1、电梯内分楼层键是否正常
2、电梯内开关门键是否正常
3、电梯内的报警键是否正常使用
4、电梯外的上下键是否正常
5、同时关注显示屏,电梯内外的显示屏显示的电梯层数和运行方向
6、有障碍物时,电梯门的感应系统有效情况
界面:
1、查看电梯的外观
2、按钮的图标显示,大小
3、电梯内部张贴的说明(比如报警装置的说明、称重量等)
易用性:
1、楼层按键高度(小孩和一些身高矮的用户会按键不方便)
2、电梯是否有地毯、夏天是否有空调、通风条件、照明条件、手机信号是否通畅
3、电梯是否有扶手,是否有专针对残疾人的扶手等等
安全性:
1、下坠时是否有制动装置
2、暴力破坏电梯时是否报警,
3、超重是否报警
4、超时自动开门
5、火灾报警后,允许就近停靠
6、停电情况下电梯是否有应急电源装置
性能:
1、测试电梯负载单人时的运行情况
2、多人时的运行情况
3、一定人数下较长时间的运作
4、更长时间运作时的运行情况
5、不断增加人数导致电梯报警
23:常见的状态码
200:请求成功
301:永久重定向:请求的资源的URI已被更新,以后都是用新的URI
302:临时重定向:与301的不同是,URI可能还会变动
403:服务器收到请求,但是拒绝提供服务
404:请求资源不存在,eg:输入了错误的URL
500:服务器发生不可预期的错误
503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
24:session和cookie的却别
Cookie是把数据保存在浏览器端的内存中
Session把数据保存在服务器端的内存中
25:如何通过postman实现自动化
标签:面试题,邮箱地址,常见,接口,密码,验证,mysql,输入 来源: https://blog.csdn.net/weixin_54564063/article/details/121939714