面试——游戏测试工程师(20190918)

小小的记录一下求职经历,一起加油呀~ ٩̋(•͈ω•͈)و

职位描述

  1. 根据游戏功能设计文档编写测试用例;
  2. 根据测试用例对游戏产品进行全面测试,撰写测试报告,提交测试结果,并对测试结果进行分析;
  3. 对游戏产品质量进行实时监控;
  4. 管理游戏缺陷,推动游戏缺陷的解决。

任职要求

  1. 熟悉主流网络游戏,对游戏具备一定的分析能力;
  2. 熟悉常用的测试方法和测试工具;
  3. 诚信正直,具备高度的责任心;
  4. 工作态度认真严谨,踏实耐心,能适大量重复性的工作;
  5. 具备较强的沟通能力、敬业精神和极强的团队合作精神;
  6. 较强的逻辑思维能力和积极主动精神,能够有力推动和协调工作的开展;
  7. 热爱游戏,有丰富的游戏经验,对游戏有良好的认识和理解。

笔试小题:

1. 概率题

2. 求二叉树的高度

  • 深度是指从根节点到该节点的最长简单路径边的条数
  • 高度是指从该节点到叶子节点的最长简单路径边的条数
  • 深度为k,最多有2k-1个结点(k ≥ 1)
  • 第 i 层,最多有2i-1个结点(i ≥ 1)
  • 其他关于二叉树的笔记

一棵二叉树高度为n(根的高度为1),所有结点的度或为0或为2,则这棵二叉树最少有()个结点
答案:2n-1

3. 软测的目的

  • 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
  • 尽量能多地发现软件产品中的缺陷,并对软件产品的质量水平做出尽可能准确的评估,进而保证产品质量,降低上线后的风险。
  • 测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征。可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,通过分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。

4. SQL语句

  • 创建数据库
    CREATE DATABASE database-name
  • 删除数据库
    DROP DATABASE dbname
  • 创建新表
    CREATE TABLE tabname(col1 type1 [not null] [primary key],col2 type2 [not null],…)
  • 删除新表
    DROP TABLE tabname
  • 增加一个列
    ALTER TABLE tabname ADD COLUMN col type
    注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
  • 添加主键
    ALTER TABLE tabname ADD PRIMARY KEY (col)
  • 删除主键
    ALTER TABLE tabname DROP PRIMARY KEY (col)
  • 创建索引
    CREATE [unique] INDEX idxname ON tabname(col….)
  • 删除索引
    DROP INDEX idxname
    注:索引是不可更改的,想更改必须删除重新建。
  • 创建视图
    CREATE VIEW viewname AS SELECT statement
  • 删除视图
    DROP VIEW viewname
  • 选择
    SELECT * FROM table1 WHERE 范围
  • 插入
    INSERT INTO table1(field1,field2) VALUES(value1,value2)
  • 删除
    DELETE FROM table1 WHERE 范围
  • 更新
    UPDATE table1 SET field1=value1 WHERE 范围
  • 查找
    select * from table1 where field1 like ’%value1%’
  • 排序
    select * from table1 order by field1,field2 [desc]
  • 总数
    select count as totalcount from table1
  • 求和
    select sum(field1) as sumvalue from table1
  • 平均
    select avg(field1) as avgvalue from table1
  • 最大
    select max(field1) as maxvalue from table1
  • 最小
    select min(field1) as minvalue from table1
  • SQL语句大全实例

5. 私有IP

  • A类:10.0.0.0 ~ 10.255.255.255 即 10.0.0.0/8
  • B类:172.16.0.0 ~ 172.31.255.255 即 172.16.0.0/12
  • C类:192.168.0.0 ~ 192.168.255.255 即 192.168.0.0/16

6. 代码分析

7. 文件权限

权限为765的文件,下列哪个是正确的权限位标记()
解析:在 rwx 中r=4,w=2,x=1。
   7=4+2+1
   6=4+2
   5=4+1
   因此是rwxrw-r-x

8. 无效等价类

  • 主要的黑盒测试用例设计方法
    (1) 等价类划分
     ① 确定的等价类(有效等价类和无效等价类)
     ② 生成测试用例(使所有等价类都被测试用例所覆盖)
    (2) 边界值分析
     边界条件:输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。
    (3) 因果图
    (4) 判定表
    (5) 错误猜测
  • 白盒测试的方法
    (1) 程序结构分析
    (2) 逻辑覆盖方测试
    (3) 基本路径测试
  • 白盒测试的实验步骤
    (1) 撰写测试计划
    (2) 撰写测试用例
    (3) 执行测试用例
    (4) 撰写测试总结

9. HTML标签
  HTML5 基本标签的使用

标签 描述
< ! --…-- > 定义注释
< !DOCTYPE > 定义文档类型
< a > 定义锚
< b > 定义粗体字
< big > 定义大号文本
< body > 定义文档的主体
< br > 定义简单的折行
< button > 定义按钮 (push button)
< caption > 定义表格标题
< center > 不赞成使用。定义居中文本
< cite > 定义引用(citation)
< code > 定义计算机代码文本
< col > 定义表格中一个或多个列的属性值
< command > 定义命令按钮
< datalist > 定义下拉列表
< dd > 定义定义列表中项目的描述
< dir > 不赞成使用。定义目录列表
< div > 定义文档中的节
< dialog > 定义对话框或窗口
< em > 定义强调文本
< font > 不赞成使用。定义文字的字体、尺寸和颜色
< form > 定义供用户输入的 HTML 表单
< frame > 定义框架集的窗口或框架
< frameset > 定义框架集
< h1 > to < h6 > 定义 HTML 标题
< head > 定义关于文档的信息
< hr > 定义水平线
< html > 定义 HTML 文档
< i > 定义斜体字
< iframe > 定义内联框架
< img > 定义图像
< input > 定义输入控件
< kbd > 定义键盘文本
< label > 定义 input 元素的标注
< li > 定义列表的项目
< link > 定义文档与外部资源的关系
< menu > 定义菜单列表
< nav > 定义导航链接
< object > 定义内嵌对象
< ol > 定义有序列表
< option > 定义选择列表中的选项
< output > 定义输出的一些类型
< p > 定义段落
< script > 定义客户端脚本
< section > 定义 section
< select > 定义选择列表(下拉列表)
< small > 定义小号文本
< source > 定义媒介源
< span > 定义文档中的节
< strong > 定义强调文本
< style > 定义文档的样式信息
< table > 定义表格
< tbody > 定义表格中的主体内容
< td > 定义表格中的单元
< textarea > 定义多行的文本输入控件
< th > 定义表格中的表头单元格
< thead > 定义表格中的表头内容
< time > 定义日期/时间
< title > 定义文档的标题
< tr > 定义表格中的行
< u > 定义下划线文本
< ul > 定义无序列表
< video > 定义视频
< wbr > 定义视频

10. 制定测试进度的根据

测试工程师在软件测试计划阶段依据( )制定指定测试进度
A. 工作说明书
B. 概要设计说明书
C. 详细设计说明书
D. 单元测试用例
理解: 测试设计阶段中,《测试方案》一般由经验丰富的测试人员设计,测试方案依据《需求规格说明书》和《概要设计说明书》进行设计。其中包括需求点简介,测试思路和详细测试方法等内容,进而来制定测试进度的。我觉得应该选B,然而有人说答案是A?

11. apk里有什么

  • res 文件夹,是用来存放资源文件的。
  • 一些 drawable-hdpi 等文件夹,是存放图片的。
  • layout 文件夹是存放布局的。
  • menu 文件夹是存放菜单的。
  • AndroidManifest.xml 是清单文件,每一个安卓的工程都会有。里面会记录android的一些版本号、使用的SDK版本、图标等信息。
  • assets 文件夹。里面也会记录一些资源文件。但一般用来记录较大型的资源文件。比如音乐文件、视频文件,或者一些文档、图片等。
  • classes.dex 。因为android现在使用DVM,将.java编译成.class,再编译成.dex,最后打包为.apk。是android平台的可执行文件的类型。
  • resources.arsc 编译后的二进制资源文件。定义了各个资源ID常量,供在代码中索引资源。
  • META-INF 文件夹基本就是和签名等安全相关的。如果我们没有对APK签名,那么其包里是没有这个文件夹的,如果签名才有。android中,没有签名的APK是不允许安装在android设备中的。

12. apache ab压力测试

  • ab常用参数的介绍:
    (1) -n :总共的请求执行数,缺省是1;
    (2) -c: 并发数,缺省是1;
    (3) -t:测试所进行的总时间,秒为单位,缺省50000s
    (4) -p:POST时的数据文件
    (5) -w: 以HTML表的格式输出结果
  • 设置并发数,设置总请求数,请求方式为get请求
    ab -c10 -n100 http://www.baidu.com/ // 10个用户 一共发送100次请求,访问百度首页
  • ab性能指标:
    (1) Requests per second:吞吐率
    (2) The number of concurrent connections:并发连接数
    (3) Concurrency Level:并发用户数
    (4) Time per request:用户平均请求等待时间
    (5) Time per request:across all concurrent requests:服务器平均请求等待时间
  • Apache自带的ab压力测试工具用法详解

13. Alpha测试

  • Alpha 是指内测,即现在说的 CB,指开发团队内部测试的版本或者有限用户体验测试版本。
  • Beta 是指公测,即针对所有用户公开的测试版本。
  • Alpha测试与Beta测试的区别

软件产品的Alpha测试和Beta测试属于()
答案:确认测试

14. 测试文档

  • 软件测试文档包括:
    (1) 测试计划
    (2) 测试用例
    (3) 测试方案
    (4) 测试报告
    (5) 性能测试报告
    (6) 用户操作手册等等
  • 软件测试分为如下几个阶段:
    (1) 测试需求分析阶段。
      测试需求分析阶段主要工作是获得测试项目的测试需求(测试规格)。
      输出产物:《可测试性需求说明书》和《测试规格》
    (2) 测试计划阶段。
      以测试需求为基础,分析产品的总体测试策略。
      输出产物:《产品总体测试策略》
    (3) 测试方案设计阶段。
      本阶段主要是以测试规格为基础获得特性测试方案,对于有自动化测试的项目,进行自动化测试的分析,获得测试策略。
      输出产物:《产品或者版本总体测试方案》
    (4) 测试用例实现阶段。
      本阶段主要是完成各个特性的测试用例的编写和自动化脚本的编写。
      输出产物:《产品自动化测试用例》和《手工执行测试用例》
    (5) 测试执行阶段。
      本阶段是根据测试策略开展测试执行和回归测试。
      输出产品:《产品或版本测试报告》和《缺陷分析报告》
    (6) 评估与关闭阶段。
      只对前面的各个阶段的执行情况,完成对测试项目的关闭,同时提供完整的度量数据和项目总结报告。
      输出产物:《遗留问题风险分析报告》、《度量分析报告》和《测试关闭报告》

15. CSRF漏洞

  • 什么是CSRF
      CSRF(Cross-Site Request Forgery,跨站请求伪造),也被称为one-click attack 或者 session riding,通常缩写为 CSRF 或者XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。它是一种常见的Web攻击方式。在2007年曾被列为互联网20大安全隐患之一。
      攻击者盗用了你在某个网站的身份,以你的名义发送恶意请求。
  • CSRF能够做的事情:
      以你的名义:
        发邮件
        发消息
        财产操作比如转账,或者购买商品
        修改密码
        删除文章
        …
  • CSRF漏洞原理

16. Python代码

17. 创建字典
  字典的创建及增删改查

18. 冒烟测试

  • 冒烟测试是在软件开发过程中的一种针对软件版本包的快速基本功能验证策略,是对软件基本功能进行确认验证的手段,并非对软件版本包的深入测试。
  • 冒烟测试也是针对软件版本包进行详细测试之前的预测试,执行冒烟测试的主要目的是快速验证软件基本功能是否有缺陷。如果冒烟测试的测试例不能通过,则不必做进一步的测试。
  • 进行冒烟测试之前需要确定冒烟测试的用例集,对用例集要求覆盖软件的基本功能。这种版本包出包之后的验证方法通常称为软件版本包的门槛用例验证。
  • 冒烟测试属于HLT(highleveltest)测试,HLT通常指SDV(系统设计验证)/SIT(系统集成测试)/SVT(系统验证测试)等测试活动。
  • HLT是站在系统的角度对整个版本进行测试,测试对象是一个完整的产品而不是产品内部的模块,常见的HLT测试包括系统测试和验收测试。
  • 冒烟测试

19. 白盒覆盖

  • 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
  • 六种覆盖标准发现错误的能力呈由弱到强的变化:
    (1) 语句覆盖:每条语句至少执行一次。
    (2) 判定覆盖:每个判定的每个分支至少执行一次。
    (3) 条件覆盖:每个判定的每个条件应取到各种可能的值。
    (4) 判定/条件覆盖:同时满足判定覆盖条件覆盖。
    (5) 条件组合覆盖:每个判定中各条件的每一种组合至少出现一次。
    (6) 路径覆盖:使程序中每一条可能的路径至少执行一次。

20. 程序的逻辑复杂度

  • 环路复杂度 用来定量度量程序的逻辑复杂度。以McCabe方法来表示。
  • 一个有e条边和n个节点的流程图F,其圈复杂度为:VF = e - n + 2
  • 环路复杂度越高,程序中的控制路径越复杂。
  • McCabe指出,典型的程序模块的环路复杂度为10。

笔试大题:

1. 计算岛屿的周长
  解析

2. 买卖股票的最佳时机
  方法一
  方法二


面试:

  1. 放假这两个月做了什么?
  2. 做过的项目有什么印象深刻的?
  3. 最深刻的bug是什么?怎么解决的?
  4. 觉得自己什么是最擅长的?
  5. Python的数据类型?
    (1) Python3 中有六个标准的数据类型:
      Number(数字)
      String(字符串)
      List(列表)
      Tuple(元组)
      Set(集合)
      Dictionary(字典)
    (2) Python3 的六个标准数据类型中:
      不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
      可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
    (3) Python3 基本数据类型
  6. Python中dict和list的区别?
      列表list()
      字典dict()

你可能感兴趣的:(面试)