记录遇到的面试题,便于复习。
测试类
1.常用的测试方法
黑盒测试、白盒测试、灰盒测试
2.白盒测试还有黑盒测试的区别
黑盒测试。之所以被称为黑盒测试是因为可以将被测程序看成是一个无法打开的黑盒,而工作人员在不考虑任何程序内部结构和特性的条件下,根据需求规格说明书设计测试实例,并检查程序的功能是否能够按照规范说明准确无误的运行。其主要是对软件界面和软件功能进行测试。对于黑盒测试行为必须加以量化才能够有效的保证软件的质量。
白盒测试。其与黑盒测试不同,它主要是借助程序内部的逻辑和相关信息,通过检测内部动作是否按照设计规格说明书的设定进行,检查每一条通路能否正常工作。白盒测试是从程序结构方面出发对测试用例进行设计。其主要用于检查各个逻辑结构是否合理,对应的模块独立路径是否正常以及内部结构是否有效。常用的白盒测试法有控制流分析、数据流分析、路径分析、程序变异等,其中逻辑覆盖法是主要的测试方法。
3.单元测试,集成测试,系统测试的区别
单元测试:是指对软件中的最小可测试单元进行检查和验证
集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
系统测试:将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际使用环境下,对计算机系统进行一系列的组装测试和确认测试的工作
4.测试用例设计方法有哪些
等价类与边界值、场景法(重点方法)、正交排列驱动法、因果图
5.什么是接口测试?重点有哪些?
接口一般指两种:API:应用程序编程接口,程序间的接口;GUI:图形用户界面,人与程序的接口。接口实例:系统与系统间的接口调用,作用:实现了两个或多个独立系统或模块间的通信和数据交换能力。
重点是测试过程中确保自己接口请求地址、参数传参正确性,测试过程中关注服务器返回例status、code、 msg信息,数据库表信息更改,日志信息:特别是报错的时候需要通过日志帮助排查问题。
接口类型: REST接口——通过HTTP的get和post方式得到数据,返回报文json格式
SOAP接口——通过soap协议得到数据,相比Httpservice能处理更加复杂的数据类型,请求报文和返回报文xml格式
6.接口测试用例编写要点
接口说明;请求方式(get\post);请求地址;请求参数、参数类型、请求参数说明 、返回参数说明、 返回示例
测试每个参数类型不合法的情况(类型不合法容易遗漏NULL型)
7.常用http相对应的状态码,200、302、400、401、500、503分别代表什么意思?
200:访问正常;301:永久重定向;302:为临时重定向;400:域名绑定错误;401:请求授权失败;500:程序或服务器错误;503(服务不可用)服务器目前无法使用(由于超载或停机维护)通常,这只是暂时状态。
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码。
2xx(成功)表示成功处理了请求的状态码。
3xx(重定向)要完成请求,需要进一步操作。通常,这些状态码用来重定向。Google 建议您在每次请求中使用重定向不要超过 5 次。您可以使用网站管理员工具查看一下 Googlebot 在抓取重定向网页时是否遇到问题。诊断下的网络抓取页列出了由于重定向错误导致 Googlebot 无法抓取的网址。
4xx(请求错误)这些状态码表示请求可能出错,妨碍了服务器的处理。可能是客户端的问题。
5xx(服务器错误)这些状态码表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。可能是服务端的问题。
8.http请求报文与响应报文格式
HTTP 请求报文主要由请求行,请求头部,请求正文3部分组成
请求行:由3部分组成,分别为:请求方法,URL(见备注1 )以及协议版本,之间由空格分隔
请求头部:请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔
请求正文:
eg:http://127.0.0.1:80/user.php?act=register
请求协议:http://
IP:127.0.0.1
端口号:80
接口地址:user.php
接口参数:act
参数值:register
9.获取与发布请求的区别:
10.HTTP接口传递数据最常用的方式:
Get方式是从服务器上获取数据;在做数据查询时,建议用Get方式;如:商品信息接口、搜索接口、博客访客接口等。
Post方式是向服务器传送数据 ;在做数据添加、修改或删除时,建议用Post方式 ;如:微博图片上传图片接口、登录注册接口等。
11.接口测试的步骤:
1)请求接口
2)获取返回值
3)断言:判断实际结果是否与预期相同
SQL类
1.0增删改查
1.1选择:
select * from table1 where 范围
select scode,sname,saddress from students where saddress=‘河南新乡‘
在 SQL 中,bai可使用以下通配符如下:
1、% 替代一个或多个字符
2、_ 仅替代一个字符
3、[charlist] 字符列中的任何单一字符
4、[^charlist]或者[!charlist] 不在字符列中的任何单一字符
例如:查询只找出“三脚猫”这样name为三个字且第一个字是“三”的;
SELECT * FROM [user] WHERE u_name LIKE ‘三__’;
查询前100名:
1、MYSQL:baiselect * from 表名du limit 100
2、ORACLE:select * from 表名 where rownum<=100
1.2.插入:
INSERT [INTO] <表名> [列名] VALUES <值列表>
insert into students(sname,saddress,sgrade,semall,ssex) values(‘张青‘,‘上海松江‘,6,‘[email protected]‘,0)—一次插入多条数据
ps:
通过insert select 语法来插入数据
INSERT INTO test(UserID,UserName,passwd,Cellphone) --test表必须提前创建好
SELECT UserID,UserName,password,Cellphone FROM dbo.[User] --查询现有的表里面数据,插入到test表中
通过 select insert 语法来插入数据(和上一句的区别是此处表不用提前创建好)
SELECT TOP 40 UserID,UserName,password,Cellphone INTO test1 --可以不用提前创建
FROM dbo.[User]
通过UNION关键字合并数据行插入
nsert students(sname,sgrade,ssex)
select ‘测试女生1‘,7,0, nuion
select ‘测试女生2‘,7,0, nuion
select ‘测试女生3‘,7,0, nuion
select ‘测试女生4‘,7,0, nuion
select ‘测试女生1‘,7,0, nuion
select ‘测试女生2‘,7,1, nuion
select ‘测试女生3‘,7,1, nuion
select ‘测试女生4‘,7,1, nuion
select ‘测试女生5‘,7,1
1.3. 更新数据
语法格式:UPDATE <表名> SET <列名=更新值> [WHERE <更新条件>]
uptate student set name=‘张三‘ where id=1
1.4.删除数据
语法格式: DELETE FROM <表名> [WHERE<删除条件>]
delete from student where id =1
*注意: delete 删除只会删除表中的数据,并不会删除表中的结构,包括主键什么之类的
2.0多表查询
Linux类
1.0常用的语句
cd 进入目录
ls 列出当前目录下的文件
ll 列出当前目录下的文件详情
sh 执行脚本
ps -ef 查进程
vim 编辑文件
mkdir 创建目录
kill 杀进程
rm -f 删除文件
mv 移除文件
find 查找文件
2.0常用命令
2.1如何查看一个文件的前/末尾50行
查看文件前100行 cat filename.txt | head -n 100
查看文件后50行 cat filename.txt | tail -n 50
从1000行开始显示,也就是显示1000行以后的 tail -n +1000
显示1000行到3000行内容 cat filename.txt |head -n 3000 | tail -n +1000
2.2查看某进程号?并且杀掉进程
ps --aef |grep 进程名称
kill 命令用于终止进程
ps aux 可以得到进程号等信息
kill -9 进程号
2.3创建和删除一个多级目录
mkdir创建目录
mkdir -p 建立多级目录
mkdir /a 在根目录下创建目录a
mkdir -p /a/b/c/d/e/f/g 在根目录下创建目录a,a下创建b,依次类推,在f下创建g
mkdir a 创建已经存在的目录a的话会报已经存在的提示
mkdir /a/b 在根目录下创建目录a,a下创建目录b
rmdir删除目录
rm -r -f /a 删除根目录下文件夹a(删除时无提示)
rm -r 删除非空目录 (删除时有提示)
rm -r -f 删除非空目录(删除时无提示)
2.4查看log日志命令有哪些
tail -f test.log 监听日志
cat -n filename |grep “关键字”
ps:(1)如果日志较多使用more和less命令,
如: cat -n 01.log |grep “debug” |more 实现分页打印了,并且点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
如:cat -n 01.log |grep “debug” >debug.txt
2.5修改权限
命令:chmod (change mode)
功能:改变文件的读写和执行权限。有符号法和八进制数字法。
选项:(1)符号法:
命令格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename
u (user) 表示用户本人。
g (group) 表示同组用户。
o (oher) 表示其他用户。
a (all) 表示所有用户。
‘+’ 用于给予指定用户的许可权限。
‘-’ 用于取消指定用户的许可权限。
‘=’将所许可的权限赋给文件。
r (read) 读许可,表示可以拷贝该文件或目录的内容。
w (write) 写许可,表示可以修改该文件或目录的内容。
x (execute)执行许可,表示可以执行该文件或进入目录。