覆盖17类面试题小结

2022-07-26 15:15:33 浏览数 (2)

覆盖17类面试题小结

目录

  • 1、测试概论
  • 2、测试分析方法
  • 3、测试设计方法
  • 4、测试计划
  • 5、测试方案
  • 6、测试执行
  • 7、MySQL
  • 8、MongoDB
  • 9、Linux
  • 10、Docker
  • 11、Python
  • 12、Web测试
  • 13、Selenium
  • 14、Jmeter
  • 15、微信小程序
  • 16、Web项目实战
  • 17、Loadrunner

1、测试概论

1、描述缺陷的管理流程

提交缺陷--评审缺陷--分配缺陷--分析修改缺陷--确认缺陷--关闭缺陷

2、缺陷单包含哪些要素

摘要、提交人、发现时间、严重程度、优先级、重现步骤、所属模块、测试版本、测试类型、引入阶段、状态

3、针对QQ登录编写两用例(正向的和反向的)

根据用例八大要素编写(用例编号、测试项、测试标题、优先级、预置条件、输入、操作步骤、预期结果)可以考虑正确的账号密码登录,可以考虑正确的账号错误的密码登录或者不存在的账号登录。

2、测试分析方法

1、为什么做测试分析

测试分析能够明确具体要做的测试工作,从不同的角度分析要测试的内容,防止测试的遗漏。

2、针对使用过的软件进行测试分析找出测试项

质量模型分析(功能、性能、界面、安装、更新、卸载。。。。。);不同的用户角度;分析功能之间的关系是否有功能的交互。

3、某家公司针对目前的商业发展趋势决定升级CRM系统,如果你是CRM的测试人员从哪些渠道获取测试需求

软件需求规格说明书、设计文档、市场上类似的CRM系统软件、以前版本的CRM的需求和案例库、缺陷报告

3、测试设计方法

1、用等价类划分法边界值分析法设计微信朋友圈发图片

有效等价类(图片的格式,尺寸范围,数量范围);无效等价类(不支持图片格式,不支持尺寸大小,超出9张);边界值(9张;10张)

2、用判定表法设计朋友圈的用例

图片、文字、链接、音频、视频的各种组合发送

3、在淘宝购物,想通过搜索获得商品信息。搜索的内容包括评价、价格、包邮、地区,用什么设计方法比较恰当

正交实验法

4、用状态迁移图法设计电梯的运行测试用例

上行、下行、停、停在一楼、直接去一楼

4、测试计划

1、测试计划的作用是什么

所有测试需求都已被标识出来;

测试的工作量已被正确评估并合理地分配了人力、物力资源;

测试的进度安排是基于工作量评估的、适用的;

测试启动、停止的准则已被标识;

测试输出的工作产品是已标识的、受控的和适用的。

2、如何安排测试任务

任务:用简洁的句子对任务加以说明;

方法和标准:指明执行该任务时,应采用的方法以及所应遵循的标准;

输入/输出:给出该任务所必需的输入及输出;

时间安排:给出任务的起始及持续的时间,为方便文档维护,建议采用相对时间,即任务的起始时间是相对于某一里程碑或阶段的相对时间;

资源:给出任务所需要的人力和物力资源,工作量应明确到"人天";

风险和假设:指明启动该任务应满足的假设以及任务执行可能存在的风险;

角色和职责:指明由谁负责该任务的组织和执行,以及谁将担负怎样职责。

3、如何确定测试对象

从软件质量的模型和被测试业务模块两个角度确定。

5、测试方案

1、测试方案的作用是什么

指导测试人员如何编写测试用例、搭建测试环境、准备测试数据、执行测试用例。

2、测试方案中有哪些测试需求

环境需求、被测对象需求、测试工具需求、测试代码需求、测试数据需求。

3、测试方案中的哪一部分内容是对搭建环境的描述的

测试组网图

6、测试执行

1、如何准备测试数据

手工录入、导入生产环境数据、在数据库创建账号

2、测试报告的内容有哪些

概述、测试时间、地点、人员、环境描述、总结和评价、测试过程质量统计评估、软件产品质量统计评估、系统测试综合评价、系统测试遗留问题报告

7、MySQL

1、假设数据库中有两张表,a表和b表,说明使用内连接、左连接、右连接关键字

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
内连接关键字 inner join
左连接关键字 left join
右连接关键字 right join

2、假设有13条数据,查询显示从第十条开始显示4条数据

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
使用分页查询 select * from student limit 9,4

3、什么是MySQL慢查询日志

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
当语句执行时间较长时,通过日志的方式进行记录,这种方式就是慢查询的日志。
这句代码 set global slow_query_log = on; 可以开启慢查询日志。

8、MongoDB

1、MongoDB三元素指的是什么

数据库、集合和文档。数据库里存放的是集合,集合里存放的是文档,数据存放在文档里,以键值对的方式。

2、MySQL与MongoDB的差别是什么

MySQL和MongoDB两者都是免费开源的数据库。MySQL和MongoDB有许多基本差别包括数据的表示(data representation),查询,关系,事务,schema的设计和定义,标准化(normalization),速度和性能。通过比较MySQL和MongoDB,实际上我们是在比较关系型和非关系型数据库。

MySQL是传统的关系型数据库,有数据库、表、记录三个层次组成,所用语句为传统的SQL语句,但是在海量数据处理时效率会有所下降。

MongoDB是文档型数据库,有数据库、集合、文档三个层次构成,没有表结构的概念,文档内容可以非常灵活的定制,适用于事件记录、内容管理或博客平台等。

3、什么是MongoDB

MongoDB是由C 语言编写的一款开源的文档数据库,适合存储海量数据,旨在为Web应用提供可扩展的高性能数据存储解决方案。

9、Linux

1、如何查看当前系统都有哪些进程

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
ps -aux 或者 ps –elf

2、想修改ip,需要编辑哪个配置文件,修改完配置文件后,如何重启网卡,使配置生效

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
使用vi或者vim编辑器编辑网卡配置文件
/etc/sysconfig/network-scripts/ifcft-eth0(如果是eth1文件名为ifcft-eth1)
修改网卡后,可以使用命令重启网卡:ifdown eth0 && ifup eth0
(请将两者连在一起使用,不能单独使用。原因:生产环境中,我们的服务器都是放在机房,没有在办公室;如果关闭了网卡,那就可能不能连接服务器了。)
也可以重启网络服务:service network restart

3、tar命令是打包还是压缩命令

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。
加 -z :可以具有 gzip 的属性,也就是用 gzip 压缩或解压。
一般格式为 xx.tar.gz 或 xx.tgz

10、Docker

1、容器退出后,数据会丢失么

容器退出后会处于终止(exited)状态,此时可以通过 docker ps -a 查看,其数据不会丢失,还可以通过 docker start 来启动,只有删除容器才会清除数据。

在这里还要注意开启容器的时候是否添加了 --rm 参数。

2、可以在一个容器中同时运行多个应用进程吗

一般不推荐在同一个容器内运行多个应用进程。单个容器被设计用来一个应用程序。

3、如何批量删除或者停止运行的容器

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
docker container rm $(docker ps –a);docker container stop $(docker ps –a)

11、Python

1、介绍一下Python下range()函数的用法

Python的range()函数用于生成一个整数序列,一般用在for循环中。

2、列表和元组之间的区别

二者的主要区别是列表里存储的数据是可变的,而元组是不可变的。定义列表使用中括号将数据括起来,定义元组使用小括号。

3、Python中的pass语句是什么

在用Python写代码时,有时可能还没想好函数怎么写,只写了函数声明,但为了保证语法正确,必须输入一些东西,在这种情况下,我们会使用pass语句。

4、解释一下Python中的继承

当一个类继承自另一个类,它就被称为一个子类(或派生类),继承的类称为父类(或基类或超类)。它会获取父类的属性和方法,还可以定义自己的属性和方法。

12、Web测试

1、有一个登陆页面,输入用户名和密码后,点击登陆按钮登陆。请针对这个登陆功能,设计测试用例。

(1)输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。

(2)输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。

(3)登录成功后能否跳转到正确的页面

(4)用户名和密码,如果太短或者太长,应该怎么处理

(5)用户名和密码,中有特殊字符,和其他非英文的情况

(6)记住用户名的功能

(7)登陆失败后,不能记录密码的功能

(8)用户名和密码前后有空格的处理

(9)密码是否以星号显示

2、压力测试和负载测试的区别

负载测试关注的是不同负载水平的系统的性能指标。为了得到压力数确定下的性能指数。例如我们可以找到系统的最大用户数和最佳用户数。

压力测试则是关注在超高负载(超过系统最大用户数)的情况下,系统是否还能稳定处理,如果不能稳定处理,那么系统还能坚持多久。其重点是关注系统是如何失效的,以便于制定系统正式上线后的风险控制措施。

3、虽然易用性测试带有主观判断,总结几条易用性测试可以参照的测试规则

(1)明确最终用户,客户端软件的报错提示不能过于专业。

(2)图形测试:图片的大小和显示。

(3)辅助功能测试:使用说明、导航、站点地图、帮助等。

(4)区域文化:符合软件使用地区的风俗和宗教习惯。

(5)考虑用户群体:儿童(活泼),老人(字大,字少),年轻人(时尚)。

(6)考虑业务配色特点:商业(稳重的色彩)、游戏(活泼的色彩)、环保(绿色)、女性(粉色)。

(7)不要出现水平滚动条。

(8)重要信息或大纲级的内容需高亮显示。

(9)使用不同大小字体,以免找不到重点。

13、Selenium

1、什么是断言,请至少写出5个unittest下的断言,并解释其含义

断言可以简单理解为预期结果和实际结果的比较。如果预期等于实际,断言通过,测试报告上记录pass;如果预期不等于实际,断言失败,测试报告上记录fail。

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
assertEqual:如两个值相等,则pass。
assertNotEqual:如两个值不相等,则pass。
assertTrue:判断bool值为True,则pass。
assertFalse:判断bool值为False,则Pass。
assertIsNone:不存在,则pass。
assertIsNotNone:存在,则pass。
assertIs(arg1, arg2, msg=None):验证arg1、arg2是同一个对象,不是则fail。
assertIsNot(arg1, arg2, msg=None) 验证arg1、arg2不是同一个对象,是则fail。
assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail。
assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail。

2、关于多窗口的常见操作方法有哪些,并分别介绍其用法

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
current_window_handle 获得当前窗口句柄。
window_handles 获得所有窗口句柄。
switch_to_window() 切换到另外一个窗口,需要将窗口句柄传递给此方法。

3、Selenium(Python版)开展自动化测试时使用的unittest框架有几个组成部分,分别有什么作用

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
test fixture 测试固件,定义了一些有固定用法的方法。
test case 测试用例,方法必须以test开头,该测试类必须继承TestCase类,是测试的核心部分。
test suite 测试套件/测试集合,定义了一些方法用来收集脚本,其本身是一个可迭代对象。
test runner 测试运行器,与test suite配套使用,用来执行测试集合。

4、Select类中,关于进行下拉框选择的常见方法有哪些

代码语言:javascript复制
"""
微信公众号:AllTests软件测试
"""
select_by_value 根据选项的value属性值进行选择。
select_by_index 根据选项的索引位置进行选择。
select_by_visible_text 根据选项的可见文本值进行选择。

14、Jmeter

1、什么时候可以进行性能测试

功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。

2、什么是Jmeter的集合点,设置集合点有什么意义

在性能测试过程中,需要模拟大量用户在同一时刻,访问系统并同时操作某一任务,可以通过配置集合点来实现,多个用户同时进行某操作;集合点可以在服务器上创建密集的用户负载,使Jmeter能够测试服务器在负载状态下的性能。

3、性能测试包含了哪些测试(至少举出3种)

(1)负载测试(Load Testing):负载测试关注的是不同负载水平的系统的性能指标。为了得到压力数确定下的性能指数。例如我们可以找到系统的最大用户数和最佳用户数。

(2)压力/强度测试(Stress Testing):压力测试则是关注在超高负载(超过系统最大用户数)的情况下,系统是否还能稳定处理,如果不能稳定处理,那么系统还能坚持多久。其重点是关注系统是如何失效的,以便于制定系统正式上线后的风险控制措施。

(3)配置测试(Configuration Testing):在不同的软件、硬件以及网络环境配置下,通过运行一种或多种业务在一定的虚拟用户数量情况下,获得不同配置的性能指标,用于选择最佳的设备及参数配置。

(4)容量测试(Volume Testing):目的是通过测试预先分析出软件中某指标的极限值(如最大并发用户数、数据库记录数等),保证系统在其极限状态下没有出现问题并能正常运行。

(5)基准测试(Benchmark Testing):在一定的软件、硬件及网络环境下,模拟一定数量虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或者系统评测过程中,通过运行相同的业务场景并比较测试结果,确定调优是否达到效果或者为系统的选择提供决策数据。

(6)并发测试(Concurrency Testing):通过模拟多个用户并发访问同一个应用、同一个存储过程或数据记录以及其他并发操作,测试是否存在死锁、数据错误等故障。

4、请简述使用Jmeter实现参数化的方式(至少举出2种)

通过前置处理器参数化、通过CSV Data Set Config参数化、借助函数助手方式采用随机参数化。

(1)通过前置处理器参数化步骤:

a)Badboy录制论坛登陆的脚本;

b)导入Jmeter;

c)添加-前置处理器-用户参数;

d)设置参数:添加变量和用户;

e)在脚本中用参数替代文本;

f)设置循环次数;

g)添加"察看结果树"并运行。

(2)通过CSV Data Set Config参数化步骤:

a)Badboy录制论坛登陆的脚本;

b)导入Jmeter;

c)制作含有三组登录名和密码的txt文件;

d)添加-配置元件-CSV Data Set config;

e)设置参数:添加变量和用户;

f)在脚本中用参数替代文本;

g)设置循环次数;

h)添加"察看结果树"并运行。

(3)借助函数助手方式采用随机参数化步骤:

a)Badboy录制论坛发帖的脚本;

b)导入Jmeter;

c)选项-函数助手对话框;

d)设置RandomString;

e)生成函数字符串;

f)把论坛发贴的title替换成函数字符串;

g)设置循环次数;

h)添加"察看结果树"并运行。

15、微信小程序

1、什么是微信小程序,简述它的优点和缺点

小程序是一个不需要下载安装就可使用的应用。它实现了应用触手可及的梦想,用户扫一扫或者搜一下即可打开应用。

优点:

(1)少了安装app的麻烦;

(2)释放手机内存;

(3)让手机桌面更简洁。

缺点:

(1)小程序的体系整体依赖于微信;

(2)小程序不能承载所有的用户需求;

(3)消息推送的诸多限制。

2、简述微信小程序跟公众号、订阅号、服务号的区别

公众号指的是能被公众看到的信息平台,范围最广,包括了小程序、订阅号和服务号。

订阅号:是用户在微信中订阅文章所使用的公众账号。订阅号可以向用户推送文章和信息;可以管理订阅用户,与用户交流;是一种媒体属性的产品。

服务号:是一种服务导向的公众账号。可以帮助机构在微信中向用户提供服务;可以让用户直接与机构的客户系统进行沟通、为用户提供品牌信息等。

订阅号和服务号以[聊天界面]为基础,它们的功能和界面是早就规定好了的;小程序允许开发者自定义界面,不用局限于微信的聊天界面。

3、简述微信小程序使用到的技术

(1)WXML:微信标记语言:WeiXin Markup Language。类似于HTML,用于描述当前页面结构。

(2)WXSS:微信样式表:WeiXin Style Sheet。类似于CSS,用于描述页面的样式。

(3)JS:JavaScript。用于处理这个页面和用户的交互。小程序的逻辑功能都是使用JS来实现的。

16、Web项目实战

1、描述一下项目的实施过程

熟悉需求--编写系统测试计划--编写系统测试方案--编写系统测试用例--执行测试--提交缺陷--跟踪缺陷--回归测试--编写系统测试报告

2、在过程实施过程遇到的问题

环境问题、测试不全面问题等等

17、Loadrunner

1、简述使用Loadrunner的使用步骤

脚本录制设置—录制脚本—调试脚本—场景设置—执行场景-结果分析

2、什么是场景,场景的重要性有哪些,如何设置场景

场景:模拟真实环境中,用户运行的状况。

(1)通过场景来模拟实际用户的操作,性能测试结果才具有代表性。

(2)在运行过程中也需要关注场景性能测试值,测试过程是否正常。

设置场景:

(1)选择场景中需要的脚本

(2)选择为目标场景,还是指定的手工场景

(3)设置用户数、设置产生负载的设备

(4)设置执行策略

0 人点赞