软件测试工程师面试可能问到的问题

给你一个XXX,你怎么测试?
功能测试
基本功能是否实现、有按键的,一个个测、先单元测试再组合测试、等价类、边界值、场景测试、还能实现别的功能吗、材质,好不好用
界面测试
外观好不好看、什么颜色、什么形状、重量是多少、图案是否合理
性能测试
基准测试-单独运行情况及性能指标、负载测试-多负载运行情况、稳定性测试-在xx情况下,较长时间的运作、疲劳测试-更长时间运作时的运行情况、拐点压力测试-一直加压,什么时候迎来性能拐点
安全性测试
是否有毒、细菌、是否对使用者造成伤害、异常使用会不会坏、能不能被利用来进行攻击
兼容性测试

登陆页面的测试
功能测试:
1)输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)
2)输入错误的账号或者密码,验证登录会失败,并且提示相应的错误信息。(错误校验)
3)登录成功后能否能否跳转到正确的页面(低)
4)账号和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)
5)账号和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)
6)记住账号的功能
7)登录失败后,不能记录密码的功能
8)账号和密码前后有空格的处理
9)密码是否加密显示(星号圆点等)
10)牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用
11)登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确
12)输入密码的时候,大写键盘开启的时候要有提示信息。
13)什么都不输入,点击提交按钮,看提示信息。(非空检查)

界面测试(UI Test):
1)布局是否合理,2个Testbox和一个按钮是否对齐
2)Testbox和按钮的长度,高度是否复合要求
3)界面的设计风格是否与UI的设计风格统一
4)界面中的文字简洁易懂,没有错别字。

性能测试(Performance Test):
1)打开登录页面,需要几秒
2)输入正确的账号和密码后,登录成功跳转到新页面,不超过5秒
3)压力测试,最大承受多少人登陆
4)XX人数下并发登录,登录时间

兼容性测试(Compatibility Test):
1)主流的浏览器下能否显示正常已经功能正常(IE6~11,FireFox, Chrome, Safari等)
2)不同的平台是否能正常工作,比如Windows, Mac
3)移动设备上是否正常工作,比如iPhone, Android
4)不同的分辨率,验证登陆页面的显示及功能正确性

事务
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认

事务的四大特性ACID
原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
一致性(Consistency):一个事务执行之前和执行之后都必须处于一致性状态。
拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。
隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。

SQL语句
多表查询的一个例子:
有两张表
图书(图书号,图书名,作者编号,出版社,出版日期)
作者(作者姓名,作者编号,年龄,性别)
用SQL语句查询年龄小于平均年龄的作者姓名、图书名,出版社。

select 作者姓名,图书名,出版社 from 图书,作者 where 图书.作者编号=作者.作者编号 and 年龄< (select avg(年龄) from 作者)

第二个个例子:
student表(Sno,Sname,Sage,Ssex)
course表(Cno,Cname,Ccredit)
SC表 (Sno,Cno,grade)
(1)建表student、course、SC
create table student ( Sno int, Sname char(20), Sage int, Ssex bit, primary key(Sno) )
Create table course ( Cno int, Cname char(20), Ccredit int, primary key(Cno) )
create table SC ( Sno int, Cno int, grade float, primary key(Sno,Cno), foreign key(Sno) references Student(sno), foreign key(Cno) references course(Cno) )
(2)查询年龄小于20的学生学号、年龄,并显示
select Sno, Sage from student where Sage<20
(3)查询年龄不在20-23(包括20 、23 )的学生的成绩
select grade from SC where Sno not in ( select Sno from Student where Sage between 20 and 23 )
(4)查询Cname=shuxue成绩前5名的学生姓名
待补充

性能测试
(1)最重要的指标:并发用户数、TPS、正确率、响应时间。
(2)性能测试的监控体系;

selenium自动化测试
selenium报告输出,这里面涉及的问题既有selenium 整个的实现框架,也会有其细节实现,比如输出报告的样式如何进行格式化;

执行用例时,出现错误,是如何处理的

Python原理
Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行。

Linux常用命令
(1)查看进程的命令。
ps -ef | grep 进程名

(2)查看端口的命令:
netstat -ntlp //查看当前所有tcp端口
netstat -ntulp |grep 80 //查看所有80端口使用情况

(3)查看日志的命令:
tail -f 日志文件名

(4)其他
cd命令:切换到某个目录
  ls命令:列出当前目录的所有文件、文件夹
  pwd命令:列出当前目录的路径
  cp命令:复制
  mv命令:剪切
  grep命令:管道
  find命令:查找
  rm命令:删除
  kill命令:杀掉某个进程
  cat命令:查看某文件
  tar命令:打包
  chmod命令:赋权限
  chown命令:改变文件的所有者
  vim命令:文本编辑

你可能感兴趣的:(软件测试工程师面试可能问到的问题)