某互联网大厂 软件测试实习生面经

1.自我介绍

2.算法测试和软件测试,那它们俩有什么区别?

软件测试:验证软件功能是否满足用户的需求
是偏向于产品上线前,做的功能测试,用户使用,偏UI

   软件测试是在软件投入使用之前通过手动或自动的方法对软件进行测试,以找出与预期结果不相符的地方,以检验软件功能是否符合用户的需求

算法测试:
是偏向于算法上线后,对效果做的测试,用户感知,偏后端,针对数据集
算法测试的类型主要包括–算法模型,需求规则,算法数据,功能测试,推荐效果测试,降级方案及性能优化,接口联调和测试工具开发

3. 你做了那么多机器学习算法的研究,为什么想来做测试?

由于研究生期间实验室项目需要,做的一直是机器学习算法相关的东西,但是我本人对测试开发比较感兴趣,实习想找这方面 的,以后毕业了就业方向也想往这边走,我自己也自学了一些测试开发相关的知识啥的(夸了夸测试开发的前景)

4. 你能详细描述一下你项目中的算法的流程和你是针对哪个点进行的改进吗?

(针对项目具体说)

5.你在中兴公司做的IP网络的测试,具体是做哪一部分的测试?只通过ping这一条命令吗?

配置参数:

IP地址/子网掩码/网关/DNS

在命令行ipconfig/all可以看目前IP地址的详细配置

网络的连通性测试 通过主机配置的IP地址和子网掩码

用Ping命令测试网络连通性,定位故障范围,检查网卡和TCP/IP协议

你有想过网络的丢包率这些参数吗?(buhui)

6.你掌握的软件测试的流程和方法?

1、需求分析

根据版本系统说明书以及需求分析说明书,对本次需求进行分析。

2、需求评审

SE、PM、开发、测试、QA人员对本次需求的实现方案以及可行性进行评审,对需求中有任何疑问也可在此环节中提出。

3、PM制定开发计划,包括开发人员安排,编码时间,转测时间等。

4、开发与测试并行执行

开发人员对story进行分析设计,编码及自测。

测试根据开发计划输出测试计划,对各story进行测试点分析,并输出测试用例。

5、测试用例评审

开发、测试等对本次需求测试用例进行评审,多方达成一致。

6、测试提供5%-10%的用例作为冒烟用例,冒烟通过,进入ST功能测试阶段;冒烟不通过版本打回,开发进行编码修改,直到冒烟通过为止

7、测试对测试环境进行部署OR升级,执行测试用例,测试用例包括接口测试用例以及web测试用例,ST周期一般为4-8个工作日。

8、测试发现缺陷提单给开发,开发人员进行BUG修复,当本次需求全部测试完成,开发对问题全部修复完成,即可进入SDV1系统测试阶段

9、测试对上一轮的问题进行回归,对系统所有功能进行全量测试,并进行性能测试。

10、SDV1阶段测试发现缺陷提单给开发,开发人员进行BUG修复,当本次需求全部测试完成,开发对问题全部修复完成,即可进入SDV2系统测试阶段,一个迭代一般2-3个SDV阶段

11、测试对上一轮问题进行回归,并对系统进行进行全量以及发散测试,周期一般2-3个工作日

12、直到测试无问题,OR问题比较难以解决,且影响很小,一致确认问题遗留。测试输出测试报告,项目经理发布版本

7.你知道的自动化测试的软件有哪些?

主流的自动化测试方案,无一例外,都由人机沟通的编程语言,加上机器操作的工具来组成。

功能自动化测试

VBScript + QTP(HP UFT),商用功能自动化测试方案

Python/PHP/Java/C#/JavaScprit/Ruby + Selenium/Appium + 单元测试框架,开源功能自动化测试方案

这里我们多介绍一点,Selenium/Appium 本身不能算是测试工具,而只是机器用来操作浏览器的工具,并且这个工具能听懂多种语言:

Java,C# 这两个重 (zhòng) 语言

Python,Ruby 这两个脚本轻语言

PHP,JavaScript 这两个专门处理 Web 的语言

工具外加指定的语言,可以让机器来操作浏览器,但是到此时还无法做到测试,于是才需要每个语言自己的单元测试框架,来一起完成这个功能自动化测试方案的构建。

此外,业界还一种暂时临时的方案,就是 Python 2 + Robot Framework + Selenium Library 插件 + 单元测试框架 构成的一种测试方案,这个方案笔者不是非常推荐,主要基于两点:

理念:这是一种基于关键字的方案,那么关键字是 QTP(HP UFT)的特长,并不是Selenium的本意

技术:Python 2 终究是要退出历史舞台的,如果从零开始做自动化测试,还是直接入手 Python 3 吧,然而 Robot Framework 不支持 Python 3……

Python/Java/C#/JavaScprit/Ruby + Gauge,又一款开源的功能自动化测试方案

Thoughtworks 的基于BDD理念的自动化测试工具

Gauge 本身就是完整的测试方案

Gauge 是从需求分析师(BA)到测试工程师(QA)都覆盖的测试方案

Java/Python + Macaca,阿里巴巴的功能自动化测试方案,缺点是文档少

JavaScript + TestCafe,DevExpress 的开源功能自动化测试方案

pure node.js - TestCafe不使用Selenium,并且不需要插件来在实际浏览器中运行测试。它建立在node.js的顶部,因此它与现代开发工具集成和工作良好

无需额外的设置或配置- TestCafe是所有设置后立即运行测试npm install

完整的测试工具 - 使用单个启动命令,TestCafe启动浏览器,运行测试,收集结果并生成报告

JavaScript + Postman,免费的Web接口功能自动化测试方案

Groovy + SoapUI,开源的Web接口功能自动化测试方案

性能自动化测试

Java/C + HP LoadRunner,商业版性能测试方案

Java + JMeter,开源版性能测试方案

Python + locust,开源版性能测试方案

8.你觉得运营和测试在一个软件的流程中怎么结合起来?

9. 你应该学过数据库,你可以用数据库的SQL语句,写一个表的查询操作吗?

SELECT 语句用于从表中选取数据,查询获得的结果被存放在一个结果集中。例如:SELECT LastName,FirstName FROM Persons,表示从Persons数据表获取名为 “LastName” 和 “FirstName” 的列的内容。

INSERT INTO 语句用于向表格中插入新的行。使用该语句需注意插入时考虑清楚字段类型避免插入后出现缺值,乱码现象。例如:INSERT INTO Persons VALUES (‘Gates’, ‘Bill’, ‘Xuanwumen 10’, ‘Beijing’),表示向Persons数据表插入一条记录,记录的内容为’Gates’, ‘Bill’, ‘Xuanwumen 10’, ‘Beijing’。

Update 语句用于修改表中的数据。例如:UPDATE Person SET FirstName = ‘Fred’ WHERE LastName = ‘Wilson’,表示为 lastname 是 “Wilson” 的人添加 firstname。
DELETE 语句用于删除表中的行。例如:DELETE FROM Person WHERE LastName = ‘Wilson’,表示删除Person中LastName等于Wilson的记录。

以上四条语句都是常用的SQL语句,在实际应用中,我们往往会加上排序、分组、指针查询、计算等语句或函数来达到查询所需数据的目的。例如:SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer,表示查找每个Customer的总OrderPrice。

10.linux命令下,如何用命令行安装和更新一个软件?

下载各自平台的安装包之后,CentOS 下面使用 rpm -i jdk-xxx.rpm 进行安装,Ubuntu 下面使用 dpkg -i jdk-xxx.deb 进行安装。其中 -i 是 install 的意思。

也可以直接下载 tar.gz 文件,然后使用 tar 工具解压,就可以了:tar xvzf jdk-xxx.tar.gz。

11.你说一说你常用的linux命令及其使用方法

12.描述一下你所知道的数据结构算法,排序算法,例如快速排序算法?实现一下。

冒泡排序、选择排序、插入排序、希尔排序、堆排序、快速排序

快速排序:

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也非常实用

基本思想是:

1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。

13. 针对你所运营的微信公众平台,你如何写测试用例?

(1)功能测试

(随机想的相关的一些性能)

(2)界面测试

(自己想的)

(3)性能测试

(自己想的)

(4)安全性测试

 登录后台之后生成的Cookie,是否是httponly(否则容易被脚本盗取)

 用户名和密码是否通过加密的方式,发送给web服务器 

 是否屏蔽了SQL注入攻击

 是否可以保证后台回复人员的隐私

 防止暴力破解,检测是否有错误登录的次数限制

(5)兼容性测试

不同移动平台或PC环境下能否显示正常且功能正常

同种平台下不同微信版本能否显示正常且功能正v

不同分辨率下显示是否正常

(6)本地化测试

检查在不同语言环境下,页面的显示是否正确

14. 数组和链表的区别在哪里,在程序中具体的应用场景有哪些?

数组是将元素在内存中连续存储的,优点是数据连续存储内存地址连续,所以在查找数据时效率比较高,缺点是运行的时候空间大小无法根据需求进行增加和减少而改变的。数据增大时会出现越界的情况,数据小会浪费掉内存空间。在改变数据个数时,增加、插入、删除数据效率比较低链表是动态申请内存空间,不需要像数组提前申请好内存大小。

链表只需在用时申请即可,根据需要来动态申请或删除内存空间,对于数据增加和删除以及插入比数组灵活。还有就是链表中数据在内存中可以在任意的位置,通过应用来关联数据(就是通过存在元素的指针来联系)。

应用场景:
数组应用场景:数据比较少;经常做的运算是按序号访问数据元素;数组更容易实现,任何高级语言都支持;构建的线性表较稳定。

链表应用场景:对线性表的长度或者规模难以估计;频繁做插入删除操作;构建动态性比较强的线性表。

14.我们的工作是测试+开发+运营,一个人具备多种技术,所以你感兴趣吗?

15.你有意以后留在**地工作吗?

16.你有什么想要问我的?

发布了4 篇原创文章 · 获赞 1 · 访问量 263

猜你喜欢

转载自blog.csdn.net/weixin_45729335/article/details/104577880
今日推荐