测试面试题 七

1、webdriver模块不可以完成哪件事?

	控制浏览器前进

2、driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,‘a’)这段代码什么意思

找到id为kw的,输入a

3、通过哪种方式获取appPackage和appActivity?

aapt dump badging + apk路径

4、对http请求方法描述错误的是?

GET请求是安全的,长度是有限制的。

5、TTP CODE 中403代表什么含义?

服务器收到该请求但是拒绝 提供服务

6、一个POST请求中必须包含哪些内容?

body

7、某py文件里面包含if name ==“main”:该方法可以?

可以使py文件作为脚本直接执行

8、哪几个是post常见的提交方式?

1.application/x-www-form-urlencoded
2.multipart/form-data
3.application/json
4.text/xml

9、jmeter常用组件有?

1.取样器
2.监听器
3.断言
4.逻辑控制器

10、使用 while 循环实现输出1,2,3,4,5,7,8,9,11,12?

number = 1

while number <= 12:
if number == 6 or number == 10:
pass
else:
print("%s" % number)
number += 1

11、控制台输入一个字符串abc,判断a在该字符串内,若是打印true,否则打印false,代码怎么表示?

#include <stdio.h>
#include <string.h>
int main()	
{
char a[3]="abc";
char b[100]="";
scanf("%s",b);
if(strcmp(a,b)==0)
printf("输入正确\n");	、
else
printf("输入错误\n");
} 

12、你的职业发展目标是什么?

测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,不断的更新自己改正自己,做好测试任务。

12、接口怎么做自动化测试?

接口自动化大致步骤:

1、发送请求

2、解析结果

3、验证结果

定义三个和业务相关的类

1、一个用来封装HTTPclient,用来发送请求

2、解析结果xml的类

3、一个用于比较测试结果和期望值的类,用于验证

4、自动生成报告的类:自动发送报告之类的

(locust的python工具)

服务级:Web server(服务) Database(持久化工具-数据库)、Cache(短时间持久化工具-缓存)

13、那你们接口平台的设计原理和架构是怎么样的?

1.通过修改filddler内置的script达到录制请求的功能
2.接口上传工具,获取录制http请求的txt文件内的文本内容,通过接口的形式上传至接口测试平台
3.jmeter java请求插件以适应公司项目的加密请求
4.插件报告,通过接口的形式上传至接口测试平台
5.接口测试平台包括在线请求,测试用例,测试结果,定时任务四大模块
a.在线请求用来模拟接口请求,以json的格式展示请求结果,不保存请求结果
b.测试用例即接口测试用例,包含请求的各个参数,执行后保存结果只测试结果
模块,且用例可以同布至定时任务模块
c.测试结果,执行完测试用例后保存的结果
d.定时任务可以定时执行测试用例

14、页面加载慢,有哪些原因导致?

带宽不足,首先想到的就是自己网速的问题,但是一般网速在1M以上的,打开网页一般不会是很慢的。网站服务器的带宽不够的话,当大量用户访问的时候,网页的加载也是很慢的,这就是网络的出口端和入口端两个方面

硬件配置低,本机的配置也会是一方面的,但是只要不是老赛扬单核+512M的配置,一般不会是电脑配置的问题。服务器端的配置也是同样的道理。

CPU或者是内存被占满的时候,打开网页很是会很慢的,因为整个电脑都很慢

DNS解析慢,域名的解析是需要专门的域名解析服务器来完成的,DNS解析包括往复解析的次数及每次解析所花费的时间,它们两者的积即是DNS解析所耗费的总时间,在http请求的过程中,域名解析和建立连接占的时间很多。

JS阻塞请求,写的js代码出现问题,解析就会花费很长时间,这两个js请求之间会出现一个很大的空隙,就会导致这段时间的资源加载都被阻塞住,

接受数据时间过长,http请求的大部分时间应该花在后面几个阶段,比如等待响应和接收数据。但是,如果接收数据的时间太长了,长到数百毫秒甚至以秒计算的时候,那也是有问题的。这种情况一般是因为下载的内容太重了,例如大图片、大脚本等。这类问题可以使用GZIP压缩、图片压缩或者JS/CSS的minify等手段来解决。

加载某个资源太慢,如果某个请求比其他的请求多出很多的时间,那么一般情况就是某个资源的加载太慢,导致了整个网页变慢,原因有可能是1)资源在第三方站点上,他们很慢;2)这个资源太大了;3)这个资源使用的域名有问题

后端代码问题,主要有代码冗余、数据库发生锁死、动态请求时间过长等,这就需要RD优化一切可以优化的东西了

前端页面请求的资源过多,onload之前如果有几百行,速度自然会慢的,如果请求的资源不存在,那么速度将会更慢

网页本身中包含了追踪或者是分析用户的工具,从而导致网页的加载时间变的慢,比如之前海盗湾中会给用户的电脑插入挖矿的js脚本

15、给你一个接口怎么去做测试?

 1.无非就两种get/post工具postman/httprequest等

  2.状态吗你至少了解

   例如:200(成功)/300(重定向别的地方)/400(请求语法错误)/500(服务器异常)

  怎么测:

A. 用例设计(根据业务逻辑来设计用例,登录5次,需要2分钟后再登录 删除关注的车,列表少一条数据)

B. 参数组合(传入不同值)

C. 接口安全(绕过验证/绕过身份验证/参数是否加密等)

D. 异常验证(输入异常参数边界值)

8. 用什么工具测

功能:Postman/HTTPrequest/jemter

自动化:restassured/ python httprequest

16、你们的需求是怎么去做测试计划的?

所谓的测试需求就是在项目中要测试什么。我们在测试活动中,首先需要明确测试需求(What),才能决定怎么测(How),测试时间(When),需要多少人(Who),测试的环境是什么(Where),测试中需要的技能、工具以及相应的背景知识,测试中可能遇到的风险等等,以上所有的内容结合起来就构成了测试计划的基本要素。而测试需求是测试计划的基础与重点。

软件测试培训老师也经常说,就像软件的需求一样,测试需求根据不同的公司环境,不同的专业水平,不同的要求,详细程度也是不同的。但是,对于一个全新的项目或者产品,测试需求力求详细明确,以避免测试遗漏与误解。

17、性能是怎么去开展的呢?

	1)确认测试目标
	2)分析被测系统业务需求
	3)分析被测系统的系统结构
	4)分析被测系统的性能测试点
	5)设计测试方案、检测方案和测试案例
	6)选择测试工具
	7)测试开发
	8)测试执行
	9)测试结果分析
	10)测试调优、测试验证、测试分析
	11)测试报告
	第二节测试准备
	测试准备工作越充分后期的测试执行越顺利,一般测试准备工作如下:
	1)确认测试目标
	2)分析被测系统的业务
	3)分析被测系统的结构
	4)分析被测系统可能产生性能瓶颈的节点
	5)设计测试方案、检测方案和测试方案

18、性能是怎么去分析的?

 1.瓶颈的精准判断;
 2.线程递增的策略;
 3.性能衰减的过程;
 4.响应时间的拆分;
 5.构建分析决策树;
 6.场景的比对。

19、性能差的原因有哪些?

	影响性能主要是这么4大方面的因素:

1)硬件层面

计算(CPU)、存储(Storage)、网络(Network),计算机硬件资源也主要是这3方面的资源,现在流行的云计算也主要是这3大资源的虚拟化

2)系统层面

操作系统(Operating sytstem)是大部分应用离不开的一个平台,目前前后端主流的操作系统是Linux,Windows,Android,iOS。同一种操作系统,不同的发行版本对性能的影响也是比较大。

3)中间件、数据库

这一层不是每个应用都会涉及,但大多数复杂的后台应用系统都会涉及到。比如很多web server会用到middleware Tomcat、Nginx, 会用到数据库MySQL、Oracle.

4)应用程序

最后这个就是我们直接接触,直接测试的系统本身了,对性能影响最大的因素毫无疑问就是应用程序本身了。

20、jmeter的原理?

meter作为浏览器与web服务器之间的代理网关,可以捕获浏览器的请求和web服务器的响应,通过线程来模拟真实用户对web服务器的访问压力。基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果。

如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;

如果取样器中有关联需求,可以通过后置处理器来完成;

如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;

如果要模拟并发场景,可以通过定时器来完成;

如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成;

21、ASR这块怎么测试的?

一、语音识别(ASR)评估指标     二、语音识别(ASR)思路      三、WER、SER指标的计算

22、怎么去构造测试数据的?

1. 通过GUI构造测试数据。这是最原始最基本的方法,通过在客户端操作来构造我们的测试数据,例如创建订单,我们在客户端下单即可构建订单数据。通过GUI构造测试数据的优点是保证了数据的准确性,不会因为脏数据影响我们的测试结果。但通过GUI构造测试数据的缺点就是效率不高,如果我们要构造1万+订单数据,那我们不可能通过GUI手工下1万+订单。
2. 通过API构造测试数据。通过API构造测试数据,我们就能够解决构造1万+订单数据的问题。通过GUI构造测试数据,实质上就是在客户端调用API接口来构造测试数据。那么,我们直接调用API接口,并结合jmeter等工具,就可以绕过客户端批量构造测试数据(注:如果不清楚构造测试数据所调用的API,那么直接在GUI上构造一遍所需要的测试数据并抓包就知道了;或者询问开发同学也可以)。通过API构造测试数据的优点就是效率高,并且也不会带来脏数据。但如果我们要构造100万+订单数据,通过API构造测试数据还是需要一点时间的。这个时候该怎么办呢?

23、项目的系统构架?

1. 系统架构演变
1.1 集中式架构
1.2 垂直拆分
1.3 分布式服务
1.4 服务治理(SOA)
1.5 微服务
2. 服务间远程调用方式
2.1 RPC
2.2 Http
2.3 两者比较

24、安全测试怎么做的,用什么工具?

大型公司一般都有自己的安全团队负责公司安全,小团队一般是找咨询和服务团队做支持。测试方法主要是分为白盒测试和黑盒测试,其中白盒测试以代码静态扫描为主,发现代码的安全漏洞。黑盒测试以扫描器为主,通过规则扫描对外开放的端口和 service。app 端会多一些反破解、反盗版和敏感信息泄漏等。无论是 app 还是 web,接口安全都是必须要关注的。常见的工具一般是 zap

burpsuite、 wvs 等。BAT 等公司内部也在用 wvs。

25、osi七层模型

七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。

26、公司的测试流程

1、测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。
2、测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围(来自需求文档),进度安排,人力物力的分配,整体测试策略的制定。风险评估与规避措施有一个制定。
3、测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成之后会进行评审。
4、测试执行阶段:搭建环境,执行冒烟测试(预测试)-然后进入正式测试,bug管理直到测试结束。
5、测试评估阶段:出测试报告,确认是否可以上线。

27、你们公司的用例评审都那方参加

不同公司要求是不同的。有的是按项目进行评审,需要所有项目人员(产品,研发,测试)都参与用例评审;
也有按部门评审的,评审工作仅仅在测试部门进行,由同事互审,或者测试组长评审。
相关用例或者是公司面试题这类的问题,去传智播客论坛里面看去。里面有经验的人比较多,可以做个参考。毕竟是专业的IT论坛

28、功能测试和接口测试的区别

本文主要分为两个部分:
第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做?
第二部分:主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估相关内容。

29、测试环境是在什么系统

linux系统

30、用例怎么保证覆盖全面

1)测试需求的覆盖:保证所有需求都已经设计用例
2)测试特性的覆盖:保证所有不同类型已覆盖,如:功能测试,性能测试等
3)平台与层次的覆盖:保证所有平台有用例覆盖,不同层次都有设计用例,如业务层、接口层等

31、编写用例从那些方面考虑

1. 软件或项目的名称
2. 软件或项目的版本(内部版本号)
3. 功能模块名
4. 测试用例的简单描述,即该用例执行的目的或方法
5. 测试用例的参考信息(便于跟踪和参考)
6. 本测试用例与其他测试用例间的依赖关系
7. 本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限
8. 用例的编号(ID),如可以是 软件名称简写-功能块简写-NO.。
9. 步骤号、操作步骤描述、测试数据描述
10.预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)
11.开发人员(必须有)和测试人员(可有可无)
12.测试执行日期

32、测试报告编写过吗?包括什么

测试报告包括哪些内容: 测试模块(每个模块里需要记录测试的开始时间、结束时间、设计多少用例、通过多少、失败多少、有多少BUG、遗留多少BUG、解决多少BUG、追后对这个模块总结一下)
BUG的统计,根据时间轴来统计BUG的数量,例如:XXXX年X月X日,发现BUG多少,关闭BUG多少,剩余BUG多少,高级的BUG有多少,中级的BUG有多少,低级和建议的BUG有多少,一直罗列到项目完结
项目总结,汇报一下测试的大致结果。
遗留和风险,该软件还有什么遗留问题,还有什么风险,都要一一说明
最后评判该软件是否符合上线标准,日期,签字,加盖章等

33、接口测试怎么做的

1)根据参数的要求,进行判断是否满足要求,参数要符合他的要求,比方假如让输入一个数字,那么就判断输入数字----整数、小数、负数、复数等数字进行正常测试,或者超大数值和超小数值,异常测试就是判断当不输入数字,保持为空,或者输入的为字符串,不为数字时,反应是否正常。
2)参数是否为必填项,如果为必填项,将所有的必填项都填写,进行接口测试当必填项未填写时,进行接口测试,查看是否报错
3)如果参数为选填项,则进行测试,如果有多个选填项,一个个进行测试,填入所有必填项,和要求的一个选填项,接口返回是否正确,再测试,当选填项保持为空时,是否能够正常返回,当多个选填项时,是否返回正常
4)如果参数名称填写错误是否报错,如果存在不合法的参数,是否报错等等
5)对每个接口进行逻辑的测试,就是比方为新增一个数据,查对应的url,就得显示新增的数据,也就是所描述的每次新增,删除或者改动后都要进行检查查询。
6)接口中还得考虑一些异常情况,比方权限问题,a方建立了多个内容,b方采用接口是否可以删掉。
7)接口测试还得考虑各种逻辑和现实问题,这个就需要就是根据项目本身的可用性,可以完全想象成功能测试进行测试
8)还要考虑反复提交接口,是否报错
9)异常情景,如请求超时,快速连续点击、请求失败等情况
10)安全性问题,比方登录的密码是否需要加密。

34、bug生命周期

1, 有效地记录BUG
当发现BUG时,首先要想什么引发了BUG的问题,重现BUG,认清楚BUG的本质,比如测试者发现搜索一串字符时,系统报错,这个时候应该做的不是记录输入这串字符时,系统报错这个BUG,而是试着想一想什么原因导致这个BUG(这个BUG是我实际工作中发现的,我本来打算就这么提上去的,后来偶师父找到了本质,报错的原因是因为特殊字符,汗!里面有个感叹号。)
记录BUG的信息必须包括清晰,线性,可重现。BUG的一般记录形式:环境+输入
2, 使用BUG模板
这个暂时还没有确定,不过又一个规划合理的模板的话,可以体现哈自己的风格。
3, 评价BUG优先级和严重性
4, BUG的生命
5, 维护BUG数据库
其实就是修改BUG的状态了,验证BUG是不是得到修复,关闭BUG

35、软件测试的目的

考察一个活动的目的,应当至少想一想,谁在实施这个活动,那么这个活动对这个人或者这个团队的意义,既是其目的。那么,毋庸置疑的,软件测试的实施者是软件测试工程师。测试活动对于软件测试工程师的意义是什么呢?千万别着急回答:找Bug啊!我经历过太多带缺陷上线的产品,见过太多只能凑合用的原型,软件测试如果以“找Bug”为目的,那简直就是浪费生命。当我作为测试经理的那些年,项目经理或者其他领导,只喜欢也只认为我应当回答一个问题:产品质量能否满足上线要求?作为测试经理,我没办法提高产品质量,因为我不碰代码。我能做的,不过就是给产品质量水平做出尽可能准确的评估。这个评估才是回答这个问题的正确答案

36、性能测试怎么做的

首先,通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能否满足生产的性能要求。即在特定的运行条件下验证系统的能力状况。主要强调在特定的软件环境、特定的测试业务场景下,获得系统的各个性能指标。
然后,在给定的测试环境下,通过在被测系统上不断增加压力,直到性能指标超过预定指标或某种资源使用已经达到饱和状态,目的是了解系统性能容量和处理能力极限。负载测试的主要用途是发现系统性能的拐点,寻找系统能够支持的最大用户、业务等处理能力的约束。

37、性能测试关注的指标

需满足的并发数
TPS(每秒处理事务的能力)
响应时间(平均响应时间、90%响应时间)
错误率

38、性能测试的指标是根据怎么对比的

响应时间:
1.利用2-5-8原则去判定
吞吐量:
1.125*x kb/s*0.5,若小于前面的数值为优,其中x为x Mb/s,例如1 Mb/s
每秒点击数:
1.指客户端每秒钟向服务器端提交的请求数量,如果客户端发出的请求数量越多,与之相对的平均吞吐量也应该越大
并发用户数:
1)、经典公式1:
 一般来说,利用以下经验公式进行估算系统的平均并发用户数和峰值数据
 1)平均并发用户数为 C = nL/T
  2)并发用户数峰值 C‘ = C + 3*根号C
  C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度
  C’是并发用户数峰值

15、liunx

(1)查看进程
		ps aux
(2)查看指定进程号
		[root@ops01 ~]# ps -ef|grep nginx
(3)查看80端口号被谁占用
		lsof -i:80
(4)包含text文件怎么查找
		grep -r "text"
(5)包含text文本怎么查找
		grep -Ril
 (6)创建层级目录树
		mkdir aa/bb/cc
(7)vi用过吗 怎么用
		1) 命令行模式command mode)   控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
	    2) 插入模式(Insert mode)   只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
	   (8)说你自己知道的常用命令
	  		 arch    cd    ls  mkdir   rmdir 

39、数据库

1)增删改查   左右内连接
增加:insert into 数据表(字段1,字段2,字段3) values(值1,值2,值3)
修改:update 数据表 set 字段1=值1,字段2=值2 where id=接收到的ID参数
删除:delete from 数据表 where id=接收到的ID参数

(2)spl语句
查看所有数据库
show databases;
查看当前使用的数据库
select database();
创建数据库
create databases 数据库名 charset=utf8;
5.删除数据库
drop database 数据库名
6 .使用数据句库
use database 数据库名
7.查看数据库中所有表
show tables;

40、设计用例

1)搜索框  鼠标 朋友圈点赞  发红包
搜索框测试用例
 功能测试
搜索内容为空,验证系统如何处理
搜索内容为空格,查看系统如何处理
边界值验证:在允许的字符串范围内外,验证系统的处理
超长字符串输入,系统是否会截取允许的长度来检验结果
合法的字符串长度后,加空格验证检索结果
多关键字中间加入空格,逗号,tab验证系统的结果是否正确
验证每种合法的输入,结果是否正确
是否支持检索内容的复制、粘贴、编辑等操作
是否支持回车键搜索
多次输入相同的内容,查看系统的检索结果是否一致
特殊字符、转义字符、html脚本等需要做处理
敏感词汇,提示用户无权限等
输入的内容是否支持快捷键操作等
只能输入允许的字符串长度等
输入链接是否正确跳转,
搜索的历史纪录是否显示在下面
搜索内容有没有联想功能
界面测试
查看UI是否显示正确,布局是否合理
是否有错别字
搜索结果显示的布局是否美观
已查看的结果链接,链接的颜色要灰化处理,
结果数量庞大时,页面的分页布局是否合理
安全性测试
脚本的禁用
SQL的注入,检索SQL SELECT语句等
敏感内容的检索是禁止的
特殊字符的检索
被删除、加密、授权的数据,不允许被查出来,是否有安全设计控制
 兼容性测试
多平台Windows,mac
移动平台android,ios
多浏览器火狐、chrome、IE等
 性能测试
搜索页面的链接打开速度是否满足设计要求
搜索出结果消耗时间,是否满足设计要求

鼠标
 鼠标按下的时候,在屏幕上打点,由于采用的是默认的坐标系,点并不在点击的地方,这个会在稍后的用例中描述

朋友圈点赞
主要从界面、功能、兼容性、性能、并发等几个角度进行设计,至于安全性这块,不知道针对这个功能应该如何进行,所以未涉及
主要的测试点在功能测试,尽力覆盖了能想到的常用功能的测试点

发红包
功能测试

红包金额输入框是否只能输入数字和小数点,小数位数是否有限制,如果直接输入点,点前是否有0
红包个数输入框中是否只能输入数字
红包金额框输入的数字,最多200,最少0.01,如果不在该范围内是否有提示
红包个数框输入的数字,最多100,最少1,如果不在该范围内是否有提示
红包的描述框是否可以输入英文、中文、符号、数字、特殊字符、表情等,他们是否可以搭配使用,是否可以删除
以上提及的输入框是否允许复制粘贴操作
是否可以再普通红包和拼手气红包之间进行切换
按返回键是否可以取消发红包
支付过程中,是否会自动匹配支付方式,余额不足时,是否提示换卡支付,可否自己选择支付方式
输入支付密码时,是否可以通过密码输入或者指纹支付方式支付
支付成功后,是否可以自己返回到聊天界面中
红包发送成功后,别人能否正常领取,在个数>=2的情况下,自己是否可以领取
同一个人是否可以多次抢同一个红包
24小时后,未领取的红包是否还可以领取,未领取的红包是否会退还到原先的账户上
红包记录中的收发记录与实际收发记录是否一致
是否可以连续多次发红包
兼容性测试

安卓系统、苹果系统是否都可以发红包
电脑端是否可以抢红包
性能测试

不同网速下发红包的时间,尤其弱网情况下发红包的时间
发红包之后跳转到聊天界面的时间
发红包时的耗电量
退款到账时间
界面测试

发红包的界面有没有错别字
发红包的界面是否排版合理
发红包的界面颜色搭配是否合理
安全测试

微信号多人且异地登录,是否会有提示信息
红包发送成功后,是否收到微信支付的通知消息
红包被领取后,可领取的红包数和金额变少
红包发送失败,余额与银行卡中的钱不会变少

对方微信号异常是否会有提醒

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值