1、做接口测试的时候,如果有涉及到第三方接口的怎么做测试呢?
答:使用mock进行测试
2、数据库内外链接的区别;左右链接的区别。
答:内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。
select a.,b. from a LEFT JOIN b ON a.id=b.id
左外连接:结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果a表的某行在b表中没有匹配行,则在相关联的结果集行中b表的所有选择列表列均为空值。
select a.,b. from a RIGHT JOIN b ON a.id=b.id
内外连接:是左外连接的反向联接。将返回b表的所有行。如果b表的某行在左表中没有匹配行,则将为a表返回空值。
3、数据库随机查询10条数据的语句
答:SQL Server:SELECT TOP 10 * FROM T_USER ORDER BY NEWID()
ORACLE: SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10
MySQL: SELECT * FROM T_USER ORDER BY RAND() LIMIT 10
Access: SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])
4、Linux的基本命令
查看日志:tail -n
head -n
查看端口:netstat -tunpl | grep 8080
查看当前目录:pwd
切换目录:cd
复制文件:cp
移动文件:mv
删除文件:rm
(省略,其他的请百度。。)
5、敏捷开发的流程,测试如何参与?
以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发
核心:用户的需求进化
方法:迭代、循序渐进
敏捷开发原则:
1、快速迭代
2、需求评审
3、编写story/验收标准
4、多沟通,尽量减少文档
5、做好产品原型
6、及早考虑测试
阶段测试,与开发并行。
简言之,就是测试要尽早参与整个流程。
6、接口测试的流程要注意测哪些点
由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。
数据准确性
HTTP或其他协议状态代码
响应时间
API返回任何错误时的错误代码
授权检查
非功能测试,如性能测试,安全测试
7、Cookie和Session的区别
1、cookie数据存放在客户的 浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
8、软件测试的流程
测试需求分析阶段、测试计划阶段、测试设计阶段、测试执行阶段、测试评估阶段
9、如何判断是前后端的问题?
答:可以通过抓包的方式,举例说明
10、如果开发认为不是BUG,你怎么解决?
首先,根据需求文档是否涉及,如果有,那么就是一个BUG;否则,可以去找产品进行沟通确认。
11、一个登录界面如何涉及测试用例?
界面UI测试
1.布局是否合理,输入框,按钮对齐方式
2.输入框和按钮的高度,长度是否符合要求
3.界面的设计风格是否与UI的设计风格统一
4.界面的文字简洁易懂,没有错别字
功能测试
1.用户名,密码输入为空,点击查看提示信息
2.输入正确的用户名和密码,点击验证登录成功
3.登录成功后,验证是否跳转到正确的页面
4.用户名,密码如果过长,过短,是否有提示
5.用户名和密码前后有空格的处理
6.用户名和密码中有特殊字符或其他非英文的情况
7.记住用户名的功能
8.登录失败后,不能记住密码的功能
9.密码是否加密显示
10.登录页面的注册,忘记密码,登出等用另一账号登录链接是否正确
11.输入密码时,大写键盘开启是是否有提示信息
12.输入错误的用户名和密码,查看提示信息
性能测试
1.打开登录页面,需要几秒
2.输入正确的用户名和密码,登录成功不超过5s
兼容性测试
1.主流浏览器是否显示成功(IE8,9,10,11,Firefox,Chrome,Safafi)
2.不同的平台是否能显示成功(Mac,Windows)
3.移动设备上是否显示成功(Android,IOS)
4.不同的分辨率
可用性测试
1.是否支持全键盘操作,是否有快捷键
2.输入用户名和密码,按回车,是否可以登录
3.输入框能否可以Tab键切换
安全测试
1.登录成功后生成的Cookie,是否是Http only
2.用户名和密码是否通过加密的方式发给Web服务器
3.用户名和密码的验证,应该是在服务器端,而不是在Javascript前端
4.用户名和密码的输入框,应该屏蔽SQL注入
5.用户名和密码的输入框,应该禁止输入脚本
6.错误登录的次数限制
7.考虑是否支持多用户在同一机器上登录
8.考虑一用户在多台机器上登录
12、假设在天猫店铺双十一一天有一万笔订单,我们需要通过API将这些订单导入我们自己的ERP系统,请问怎么判断这些订单信息的准确性?
答:可以抽取一部分样本进行测试(我当时这么回答的,仅供参考)
13、假设天猫店铺一天有好几百的订单,但是有些订单都是自动审核通过,然后安排发货的,(这些订单假设是满足发货地是上海的就直接审核通过,还有其他条件)请问怎么测试?
答:手动:就说用判定法表去把条件列出来(但只针对于比较少的条件)
自动:可以写脚本-------也是仅供参考
14、BUG的状态都有哪些?
open、reopen、closed
15、http与https的区别。
一、传输信息安全性不同
1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。
2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。
二、连接方式不同
1、http协议:http的连接很简单,是无状态的。
2、https协议:是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。
三、端口不同
1、http协议:使用的端口是80。
2、https协议:使用的端口是443.
四、证书申请方式不同
1、http协议:免费申请。
2、https协议:需要到ca申请证书,一般免费证书很少,需要交费。
16、假设公司有个买股票的APP,请设计买入股票的测试用例。
可以根据账户余额、持仓进行设计测试用例
17、假设客户买股票是大批量买的,那么请问如何测试?
1、可以通过数据库插入数据----简单粗暴,但是有时候数据库不能这样随便操作。
2、跑接口。
18、如何让购买股票接口和查询用户信息接口一并跑?
购买股票接口跑通之后,可以设置用户id参数化,将用户id拿到查询用户信息接口使用。(这里考察的就是参数化的知识)
更新中ing…