自动化测试

java基础知识

自动化理论及应用场景

自动化测试工具及框架

自动化经验

  3.TCP连接中time_wait状态是什么意思?说明其使用的场景,并指出它的好处和坏处分别是什么?

  第二题:算法分析和设计题

  1.有个任务定时器,每天要定时执行N个任务(N < 1000),其中有些任务的执行依赖于其他任务的执行,如A任务执行之后B任务才能执行,但这些任务之间不存在循环依赖。请用算法来说明任务的执行顺序,有伪代码更好。

  2.编程求某一个英文文本中完整句子的.数目,文本中只包含大小写字母、空格、“,”和“.”,完整的句子是指以“.”结束,且“.”号前必须出现至少一个字母。

  第三题:系统设计题

  设计一个系统,该系统记录用户的访问记录。每条记录包含访问的url、访问ip以及访问时间,系统每天至少要记录1000亿条记录,系统要对这些数据进行存储和维护,并提供实时的查询,至少满足下面两个查询:
  1.给定任意一个时间段(精确到分)和URL,计算该时间段内访问这个url的访问量;
  2.给定任意一个时间段(精确到分)和IP,计算该时间段内访问这个IP的访问量。

一.功能测试用例的设计

举例:

(一).我想要回家,让你给我买一张票,然后设计测试用例

答案:

1.确定需求(回家回哪,需要什么票,买什么时候的票)

2.开始测试

2.1功能测试(我去买票(买火车票,飞机票),买到票(什么时候),回来给你)

2.2可靠性测试(我去买票过程中被撞死了,票买不到怎么办,延期了,买那个点的票没了怎么办让我帮他买票的人的身份,比如是否有特殊优待,如军人,1米2以下儿童等,身份证丢了,或者票丢了,责任划分)

2.3可维护性测试(票是否可保存完好)

2.4兼容性(还不同人的去买,我中间招人去买,我坐车走路)

2.5算法测试(我通过不同的渠道买票花费的时间)

2.6竞品测试(别的人怎么买的票)

2.7安全性测试(身份信息保密)

2.8性能测试(一个身份证买多张票,同时多张身份证买多张票)

二.工作测试流程:

(一).功能测试流程

1.需求评审(重点,你发挥的作用是什么,需求可执行性,关联影响的功能模块,异常情况处理)

2.评估测试时间(测试计划)

3.测试用例设计(正交,边界值,等价类。。)

4.用例review(领导,开发,产品)

5.提测(确认开发进行过自测,功能主流程畅通,然后开始介入测试)(产品开发测试一块走流程)

6.codediff(代码改动点,从根源发现开发的问题,代码中明显测试代码(return,写死值),

公共静态变量在发生高并发时容易出问题,所以不能让这个变量的值去内存里面取)

7.执行用例

8.提bug(jira)

9.回归测试

10.确认测试(准生产环境确认)(分情况)

11.发布(线上回归))

12.BUG review(总结问题)

注意点:

发布测试来控制,测试环境部署测试来控制

发布过程中,开发运维做监控。(分批发布)

三.app专项测试:

1.CPU,内存,流量,电量,弱网,兼容性,FPS,中断,安装,稳定性

   怎么自动化实现,写一些自动化框架方法封装起来,重复的使用

2.冷热启动的区别

冷启动:在个人电脑中,冷启动是切断电源后重新启动。App类似,就是完全退出(不在后台运行)后重启启动。

热启动:非冷启动情况都可以称为热启动。热启动比冷启动多了一个触发点,那就是在后台启动App,比如双击苹果的HOME键,进行App的热启动。同时热启动通常会有一个计时器,特别是一些理财和银行的类的App会做此处理,当你间隔一段时间触发了热启动后,会让你再次登录(通过密码/手势/指纹)。也有比如网易新闻客户端这样的,当你间隔一段时间后触发热启动,会弹出广告页。

四.工具使用:

postman:接口,功能测试,可以做参数化

httprequester:接口,功能测试

jemter:接口功能性能工具

lr:接口功能性能

fiddler:抓包,设置代理,设置断点,mock数据

charles:抓包,设置代理,设置断点,mock数据

robot:功能自动化

uft(qtp):功能自动化

docker:容器

monkey:性能稳定性(app)

jenkins:自动持续集成

git,svn:代码管理

xmind/visio:脑图

soapUI:接口功能测试(HTTP,WEBSERVICE协议)

xshell/SecureCRT/putty:

slor:关键字分词

slor:我测试:我   测试分别去数据库搜索结果

nginx(反向代理)

tomcat(动态网页发布)

五.基础概念:

什么是性能测试

HTTP协议(哪些方法,什么区别(GET\POST),怎么组成,状态码)

TCP三次握手四次离手

线程,进程区别联系

内存泄露,内存溢出

死锁

六.自动化测试:

自动化测试脚本的应用场景:

1.重复性较多的,写脚本能省时间,节省效率,

接口重复回归,功能重复回归

2.手动做不了的测试

上万数据的准确性校验,脚本跑,错误数据筛选出来

数据更新机制的调整,全量变成增量更新()

自动化框架的搭建:

接口自动化框架

1.结构(1.框架思想(数据,关键字,行为,事件,混合)

2.读取用例的模块(excel,txt,mysql,xml)

3.发请求的模块(requests封装)

4.断言模块(re,遍历断言)

5.日志模块

6.测试报告生成模块

7.发邮件模块

8.配置文件)

2.怎么设计测试用例,注意哪些点()

3.怎么断言

功能自动化框架

1.和接口自动化类似

2.对页面各个控件的api封装(哪些封装,下拉框,选择框,对隐形控件怎么处理)

3.不同环境处理

4.xpath定位方法()

5.js定位方法()

平台工具:

1.接口自动化集成到平台上;

2.平台做测试环境,线上环境的监控

3.做公用统计线上badcase的统计

七.算法:

(会多门语言(前端了解。java熟练,python熟练))

排序算法:

冒泡

快排

查找算法:

二分查找,

队列,堆,栈实现:

八.linux:

常用命令背下来,熟悉,知道怎么用

ls -alih()

看日志(cat,head,tail,more)

grep|wc -l

九.数据库:

关系型数据库:

mangodb

mysql(sql,慢查询,配置)

oracal

GP数据库

非关系型数据库:

redis

十.服务架构:

服务分布式架构(超融合):概念实现理解

十一.网络

IP

网关

路由

根据子网掩码算网关

NAT

VPN

交换机配置

十二.典型例题

(一).Web页面出现空白页怎么定位问题

1.抓包(抓包)

2.看服务日志

3.看你当前url 用接口实际访问模拟下请求

4.mock数据,给请求,确认是那部分问题

(二).Web页面响应过慢怎么定位问题

从一个浏览器输入url到形成页面经历了什么

(三).你所测试的系统架构
--------------------- 
 

一、Linux相关

1. grep与find的区别?

   grep是查找匹配条件的行,find是搜索匹配条件的文件。grep的全称是global regular expression print 全局正则表达式版本,能够使用正则表达式查找匹配条件的行。

2. 查看IP?

  ifconfig

3. 说一下awk?


     awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式:它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的,在linux系统中已把awk链接到gawk,所以下面全部以awk进行介绍。


4. 正则表达式

5.杀死某一端口号的进程的方法?


(1)netstat -nlp 查看占用端口号的服务
(2)找到该端口号的进程
(3)找到该进程id
(4)kill它
linux下怎么根据端口号杀死进程_百度知道

7. 查看当前目录指令?

   pwd

8. 查看进程指令,讲一下该指令的参数和作用

ps

更详细的: Linux中用ps命令查看进程状态_wonder-CSDN博客_ps命令查看进程

9. 查找某个文件后100行中子串word出现的行

10. Linux中的grep和awk作用?

grep 主要用于搜索某些字符串,以行为单位
sed,awk 用于处理文本 ,可对行细分,处理文本

grep基本是以行为单位处理文本的; 而awk可以做更细分的处理,通过指定分隔符将一行(一条记录)划分为多个字段,以字段为单位处理文本。awk中支持C语法,可以有分支条件判断、循环语句等,相当于一个小型编程语言。
更详细的:grep与awk的区别_Jason的专栏-CSDN博客_grep和awk的区别
11. Linux中怎么选出文件中符合要求的某一列?

12. linux查看进程状态的命令?

ps

更详细的:Linux中用ps命令查看进程状态_wonder-CSDN博客_ps命令查看进程

13. Linux更改文件权限的命令

chmod

14. Linux怎么求某个成绩文件中某一列的平均值?

15. 有没有使用过linux系统?请列举你常用的命令。

16. linux系统下,机器间传送文件有哪些方式?

两台Linux系统之间传输文件的几种方法_OSKernelLAB(gatieme)-CSDN博客

二、数据库相关

     1. 如何删除表结构中的某一列?

    ALTER 

     2. index的作用

     3. having和where的区别

     4. 说一下ACID特性

     5. 写一个SQL语句,左连接和右连接

     6. SQL中的通配符是什么?

      7.SQL中的GROUP BY有什么用?

      8. SQL中的SELECT *FROM*WHERE是做什么的?

三、计算机网络相关

      1. TCP和UDP的区别,各自用在什么场合?


     TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
      UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快
      一个是可靠传输,一个是不可靠传输.可靠传输需要的开销大,因为要有确认回复.而UDP则是不需要回复确认的.像我们浏览网页,迅雷下载等等用的就是TCP协议,玩网游,看在线视频一般都是用UDP协议.然而随着现在应用程序的不断完善,渐渐弥补了UDP的不可靠性
      2. 用URL登录网站时需要哪些协议?浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等) - Albert.Deng - 博客园

      3. 浏览器中输入一个URL的响应过程 (回车,返回一个页面的过程) 中涉及到哪些操作?

        浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等) - Albert.Deng - 博客园

      4. Http1.0和Http1.1的区别,Http和Https,SSL协议

         HTTP1.0和HTTP1.1的区别 - 雪之灵 - 博客园

      5. HTTP常用的方法有哪些?POST和GET区别?

      常用方法  HTTP 请求方法 | 菜鸟教程

      区别  GET和POST请求的区别_小爷丶不太拽-CSDN博客_get和post请求的区别

      6. 了解SYN包吗?讲一下具体应用(讲了TCP三次握手过程,主动讲了TCP超时计时器可以保证可靠传输,又问了 TCP还有什么保证可靠传输的机制,握手 拥塞控制)

      7.socket编程过程(服务器 客户端,结合三次握手讲了一下)

      8.TCP客户端和服务器端的API函数?

       9.有A、B两个服务器节点,A发一个文件给B,但B没有收到,请发散你的思维,说出可能是由哪些情况造成的。

       10.TCP/UDP/http的区别。

         TCP、UDP和HTTP详解 - ~风轻云淡~ - 博客园

四、多线程相关

      1. 进程和线程的区别?线程是怎么划分的?

        https://blog.csdn.net/qq_32575047/article/details/80148379

      2.进程的空间分为哪些部分?

       简述Linux进程内存空间分为哪几个段?作用分别是什么?__牛客网

      3. 什么是死锁?

      什么是死锁?如何避免死锁?_Joe James-CSDN博客_什么是死锁如何预防死锁

五、数据结构与算法相关

     1. 实现链表的逆序(反转),解释思路,写代码

      注意:考察有两点,一个是对实现思路的考察,一个是对特殊输入的考察,严谨性

      2. 如何判断一个链表是环形链表,解释思路,写代码

      3. 给定二叉树的先序遍历及中序遍历,请写出中这颗二叉树的后序遍历结果,并解释思路

      4. 链表的增删改查

      5. 手写快速排序算法,并设计测试用例

      6. 字符串反转

      7. 二叉树反序列化

      8. 二叉树的中序遍历,递归实现和非递归实现

        根据中序遍历的顺序,对于任一结点,优先访问其左孩子,而左孩子结点又可以看做一根结点,然后继续访问其左孩子结点,直到遇到左孩子结点为空的结点才进行访问,然后按相同的规则访问其右子树。因此其处理过程如下:(1)若其左孩子不为空,则将P入栈并将P的左孩子置为当前的P,然后对当前结点P再进行相同的处理;(2)若其左孩子为空,则取栈顶元素并进行出栈操作,访问该栈顶结点,然后将当前的P置为栈顶结点的右孩子;(3)直到P为NULL并且栈为空则遍历结束

      9. strcpy函数,编写测试用例

     strcpy在java中怎么用_百度知道

     10. 找出三位数中各个位的平方和等于原来数大小的数字,编写测试用例

     11. 找出一个数组中和为m的所有可能组合?

     12. 洗牌,如何保证每张牌经过洗牌后,不在现在的位置上

     13. 给出两个API getChilds()、getFather()求多叉树第n层节点数?

     14. 写双向链表插入删除?

     15. 二叉树怎么分层遍历每一层节点?

    16.统计一个文件中每个单词的出现次数

     查找一个字符串中每个单词的出现次数--Java_lqadam的博客-CSDN博客_java查找字符串出现次数

六、编程语言相关

     1.值传递和引用传递的区别?

     2. static的作用和使用方法?

     3. HashMap和Hashtable的区别?以及ConCurrentHashMap,区别原理?

     4. 抽象类和接口的区别?

     5. 多线程的实现方式?Volatile和ThreadLocal的理解及其作用?

     6. JAVA异常处理机制

     7. 多态怎么体现的

     8. map是怎么实现的?

      https://segmentfault.com/a/1190000011351123

     9. map与hash_map的区别?

     在JAVA中Map和HashMap有什么区别_百度知道

七、测试开发相关

    1. 你了解哪些常用的测试方法?

     软件测试介绍以及常见测试方法

    2. 为什么做测试开发,谈谈你对测试开发的理解
     软件测试的魅力何在?您为什么选择测试一行而不做开发? - 知乎

    3. 设计一个测试计划,包括测试进度和所需要人员

https://jingyan.baidu.com/article/219f4bf7e4a5f3de442d38f6.html

    4. 功能测试包括哪些方面的测试?

    5. 功能测试有哪些方法(答了等价类,边界值,因果图,让解释了一下等价类)

功能测试——测试方法 - 51Testing软件测试网

    6. 测试电梯,设计测试用例

测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机_slforeverlove的博客-CSDN博客_电梯测试用例

    7. 对测试的看法?讲了测试具体要承担的职业,让继续说,又说了测试需要具备的能力,还让继续,又说了测试和开发沟通的问题

    8. 为什么做测试?怎么学习测试的?学习了哪些东西?

    9. 设计测试用例的方法?

测试用例的几种常见设计方法 - 51Testing软件测试网

   10. 测试用例要素

测试用例八大要素 - 百度文库

   11. 软件测试方法的分类?

关于几种软件测试分类的方法_javaxiaobenhai的博客-CSDN博客

    12. 黑盒测试的测试用例设计方法?

黑盒测试用例设计方法 - magicianyin - 博客园

    13. 自动测试的软件有哪些?

常见的软件测试工具有哪些? - TestWriter的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园

    14.  对美团的一个活动页面做测试

    15. 什么是冒烟测试?

冒烟测试和回归测试的区别_百度知道

    16. 什么场合自动化测试不适合?

什么情况适用自动化测试 什么情况不适用自动化测试

    17. 用过什么测试软件?

     18.Web测试,给你一个登陆界面怎么进行测试?什么是性能测试?

      如何测试一个网页登陆界面 - 51Testing软件测试网

     19.给一个字符串转换为整数的函数怎么进行测试?

八、其他

   1. 自我介绍

   2. 项目介绍,项目中最大的收获,项目中或实习中做过什么软件测试的构造?

   3. 项目负责的模块占整个项目的百分之多少?负责的模块难点在哪?请详细介绍你的一个项目,并介绍你在其中承担了什么样的责任。

   4. 团队中和别的同学发生过意见不合的情况吗?如何解决的?

   5. 项目中遇到什么问题怎么解决的?

   6.为什么选择美团?对美团有什么了解?

   7. 为什么选择做测试开发?对于测试开发的理解?想做什么方向?

   8. 有什么问我的?

    9. 你认为你应聘测试开发岗有什么优势?举两个例子?

   10.对自己未来3年的职业规划?

    11.什么原因会让你决定离开美团?

    12.通过聊天的方式,简单的了解了下项目经历以及掌握的技能及掌握程度,如编程语言(美团测试开发这边貌似更倾向要懂JAVA的),数据库;了解或使用过哪些测试工具;是否熟悉计算机网络等计算机类的专业知识;

     13.找到100亿个URL中重复的URL?

     14.场景题:假如测试说程序有bug,而开发偏偏说没有,该怎么处理?(一脸懵逼,当时我就反问,你们是不是经常遇到这种操蛋的问题)

     15. 安卓的基本架构,四大组件

     16.你的梦想是什么?

     17.讲讲中断?

答:中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。 根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。

     18.智力题7个等重量的球还有一个稍重的球共8个怎么用天平2次找出最重的一个?

答:去6个均分成两组称一次,如果相等则再称剩下的两个。如果不相等取重的一组,取两个称。

日期:2017-2-25
职位:大数据测试工程师
问题一、如何优化自动化框架,单个用例执行ok多个用例执行有失败
1、插件造型是否合理;
2、断言是否合理;
3、用例之件使用弱关联;
4、一条用例验证一个功能点;
5、高内聚代偶合;
6、合理使用动态加载;
7、等待时间要合理
8、封闭装数要不易复杂。
问题二 自动化测试用例执行时间太长
1、减少用例等待时间;
2、优化封闭函数;
3、划分优先级,首先验证主流程用例;
4、优化脚本,减少用例之间的依赖;
5、多台电脑执行,分批执行。
问题三 测试人员如何对待代码
1、自动化测试人员应以脚本为主;
2、白盒测试人员应以驱动和测试桩为准;
3、测试人员能够作到理清代码思路和业务逻辑即可;
4、测试人员的代码水准定不能和开发相比。
问题四 如何规划
1、每周工作汇总形成博客;
2、坚持学习,包括脚本、业务;
3、可走dba和运维路线;
4、不断提升linux水平;
5、数据库也待提高。
————————————————
版权声明:本文为CSDN博主「xiao_hacker」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:面试经验:大数据测试工程师面试分享_xiao_hacker的博客-CSDN博客

测试开发工程师面试题目

1、什么是兼容性测试?兼容性测试侧重哪些方面?

主要检验的是软件的可移植性,检查软件在不同的硬件平台软件平台上是否可以正常的运行。细分会有:平台的兼容,网络兼容,数据库兼容,数据格式的兼容等。

2,常用的测试方法有哪些?

黑盒测试,白盒测试,静态测试和动态测试,手工测试和动态测试,回归测试,公测。

3,白盒测试和黑盒测试的区别?

黑盒测试是功能性测试,一般采用穷举输入测试,不会考虑内部的逻辑和实现。兼容性,安全性测试,压力测试,性能测试。

白盒测试是结构测试,一般是穷举路径测试,检测内部逻辑驱动结构。 – 语句覆盖 – 判定覆盖 – 条件覆盖 – 判定-条件覆盖 – 条件组合覆盖 – 路径覆盖。

4,静态测试和动态测试有什么区别?

静态测试是指不运行程序本身,仅通过分析程序文档结构,软件执行过程,检测程序的正确性,主要有变量,借口,递归等。

动态方法是指运行程序,检查运行结果与预期结果对比差异,并分析抗压性,健壮性等,这种测试包括三部分:构造测试实例,执行程序,分析程序输出结果。

区别一:静态测试是用于预防的,动态测试是用于矫正的
区别二:多次的静态测试比动态测试要效率和效益高
区别三:静态测试综合测试程序代码
区别四:在相当短的时间里,静态测试的覆盖度能达到100%,而动态测试经常是只能达到50%左右,原因动态测试发现的bug大部分只是在测试实际执行的那部分代码
区别五:动态测试比静态测试更花时间
区别六:静态测试比动态测试更能发现 bug
区别七:静态测试的执行可以在程序编码编译前,动态测试只能在编译后才能执行
区别八:静态测试能发现动态测试所不能发现的一些:"Syntax error,code that hard to maintain,code that hard to test,code that does not confirm to coding standard, and ANSI violations"

5、正交表测试用例设计方法的特点是什么?

  参考答案:

  用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;

  对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;

  具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。

6、什么是bugzilla?

是一套开源的bug追踪系统,可以管理软件开发中bug的提交,指派,修复,关闭等功能管理。提高测试和开发人员沟通效率。

7、测试用例设计的完整过程?

    1,需求分析,

    2,根据需求分析,得出测试需求

    3,设计测试方案

    4,评审设计方案,

    5,通过后设计测试用例,

    6,测试用例评审

    7,测试

8、什么是loadrunner

是一个自动化负载测试工具,通过模拟上千万用户实施并发负载及实时性能检测,他能预测系统行为并评估系统性能,原理是通过代理方式获得客户端与服务器端的数据流。分为用户动作设计,场景设计,测试数据设计三个部分。

9、Beta测试与Alpha测试有什么区别?

Beta是用户实际使用的测试,没有开发者在场,Alpha测试是公司内部测试,有开发者监控。

10、工作版本的定义

一般一个软件在不断的升级优化中会产生不同的版本号,每一次变化较大或有重大特点出现的时候,会升级版本号第一个号,比如1.x,2.x,版本发布后一般会有bug修复的版本,这时候就是1.x,2.x等。

11、什么是桩模块?什么是驱动模块?

集成测试前要为被测模块编辑一些模拟其下级功能的子模块的替身,以代替被测模块的借口,接受或者传递数据,这些假模块被称为桩模块。

驱动模块一般为主程序,它接收测试数据并将这些数据传递到被测试模块。

12、什么是扇入和扇出?

扇入是指该模块被调用的次数,扇入大,说明该模块的复用性好。

扇出是指该模块调用其他模块的个数,扇出大,说明该模块的业务逻辑复杂。

13、你认为做好测试工作的的关键是什么?

目的,管理,规范。

1. 明确测试的目标,增强测试计划的实用性,2.坚持“5W”规则,明确内容与过程

3.采用评审和更新机制,保证测试计划满足实际需求,4. 分别创建测试计划与测试详细规格、测试用例

 14、简述一下缺陷的生命周期?

提交->确认->分配->修复->验证->关闭

15,、软件的安全性应该从哪几个方面去测试?

    1,用户认证机制,

    2,加密机制

    3,安全防护策略,安全日志等,

    4,数据备份和恢复

    5,防病毒系统。

16、单元测试,集成测试,系统测试的区别?

测试方法不同:单元测试属于白盒测试,集成测试属于灰盒测试,系统测试属于黑盒测试。

考察范围测试重点不同:单元测试注重单元内部的数据结构,逻辑控制,异常处理。

集成测试注重模块之间的接口及接口之间的数据传递,系统测试注重满足需求。

基准不同:单元测试主要的逻辑覆盖,集成测试主要是接口覆盖,系统测试是测试用例对需求规格的覆盖率。

17、用户文档包括哪些?

用户手册

安装设置

联机帮助,指南向导,

示例模板,

授权注册登记表

 最终用户许可协议。

测试开发工程师常见面试题

1. CPU 和 GPU的区别
CPU 力气大啥P事都能干,还要协调。
GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟处理了,小弟兄弟多,有数百至数千个,而且是专门只干这行和只能干这行。
详细解释
2. 推荐的算法有哪些?
1 基于人口统计学的推荐
2 基于内容的推荐
3 协同过滤
4 混合推荐算法
3. 协同过滤
协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。
换句话说,就是借鉴和你相关人群的观点来进行推荐。
4. Linux命令
查看整个磁盘还剩多少空间 df -h
查看当前的文件夹下的磁盘使用情况 du –max-depth=1 -h
查看某一个文件(文件夹)的大小 du -sh或du -h –max-depth=0
du命令后面可以跟文件路径,来查看指定路径的大小 du -sh /root
找到一个文件中含有aaa 和 bbb和行 grep ‘aaa’ *.txt|xargs grep ‘bbb’
更多命令
5. 白盒和黑盒测试的方法有哪些?
黑盒测试的测试方法有:等价类划分、边界值分析法、猜错法、随机数法、因果图。
白盒测试的测试方法有:代码检查法、程序变异、静态结构分析法、静态质量度量法、符号测试法、逻辑覆盖法、域测试、Z路径覆盖和基本路径测试法。
6. Python实现字符串替换
a = ‘hello word’
a.replace(‘word’,’python’)或
import re
strinfo = re.compile(‘word’)
b = strinfo.sub(‘python’,a)
print b

 1.在上家公司的工作时间?对加班的看法?

  2.介绍一下httpRunner框架?它的原理(画图)?

  3.使用以上框架如何进行参数的提取,引用?如何断言?如何做到断言内容灵活变更?如何做到参数灵活变更?如何做到异步?如何请求https?

  4.使用以上框架如何做到只调用一次登录接口后面所有用例都不需要再登录?

  5.完整的接口自动化流程?

  6.完整的性能测试流程?

  7.性能测试中需要关注什么指标?

  8.公司技术栈?

  9.黑盒测试有哪些测试方法?分别简单介绍一下这些测试方法。

  10.如果在工作中,开发拒绝更改bug该怎么处理?

  11.个人的职业规划?

  12.软件测试按项目流程来分可以分成几种?

  13.个人的缺点?

  14.平时会通过哪些途径提升自己?

  15.做ui自动化中遇到的问题?

  16.介绍一下appium的架构?atx的架构?

  17.Chrome与ChromeDriver.exe的区别?

  18.介绍一下selenium的原理?

  19.测试用例包括什么要素?

  20.公司项目迭代的流程?

  21.数据库索引的作用?

  22.表中的数据如何保持唯一性?

  23.介绍一下数据库事务?

  24.如何防止程序并发时,数据库数据出错?

  25.什么是orm?

  26.tcp/ip协议中tcp四次挥手各代表什么意思?为什么第二次第三次连续挥手?

  27.在linux系统中如何查看nginx进程?如何查看端口号?如何查看内存使用情况?

  28.java项目如何部署?

  29.性能测试中tps上不去可能有哪些原因?

  30.接口测试中,登录接口需要验证码,该如何取到验证码?

  31.http状态码有哪些?各代表什么意思?

  32.有100ml的酱油和100ml的醋,从酱油中舀10ml到醋中,再从醋中舀10ml到酱油中,问酱油中的醋多还是醋中的酱油多?

  33.心算2的61次方的个位数是多少?

  34.以前工作中做的最好的成果?

  35.用代码输出下题所有可能性:两个队伍,甲队有ABC三人,乙队XYZ三人,他们要进行一对一对战,抽签决定。已知X不是对C,Z不是对A,B

  36.mysql的连表查询?

  37.对支付宝转账流程写测试点?

  38.对于测试开发的理解?

  39.对于测试架构师的理解?

  40.最近在学习的技术?

  41.python如何进行爬虫?

  42.如何测试dubbo接口?

  43.使用什么前端、后端框架进行的测试系统开发?

  44.性能测试中,服务器的cpu占用率高好还是低好?为什么?

  45.内存溢出和内存泄露的区别?

  46.作为一个测试leader,手下有组员,该如何指导组员开展自动化测试工作?

  47.在上家公司的薪资水平?

  48.从输入域名到展示页面发生了什么?

  49.介绍一下产品业务流程调用的服务的链路?

  50.测试用例编写的策略(包括哪些种类的测试)?

  51.在项目迭代过程中是否有和开发沟通代码架构,设计逻辑?

  52.测试计划包含什么内容?

  53.数据库事务的概念?事务的四个特性?

  54.数据库索引的种类?索引的优缺点?一个表最多几个索引?为什么索引可以加快检索速度?

  55.乐观锁的概念?悲观锁的概念?他们的区别?

  56.敏捷迭代和瀑布流迭代的区别?敏捷迭代中的两个清单三个角色四个仪式分别指什么?

  57.docker的概念?

  58.给到一个登陆框,需要进行哪些测试,并设计测试用例?

  59.在性能测试中发现cpu占用过高应该如何进行分析?

  60.压力测试和负载测试的区别?

一.功能测试用例的设计

举例:

(一).我想要回家,让你给我买一张票,然后设计测试用例

答案:

1.确定需求(回家回哪,需要什么票,买什么时候的票)

2.开始测试

2.1功能测试(我去买票(买火车票,飞机票),买到票(什么时候),回来给你)

2.2可靠性测试(我去买票过程中被撞死了,票买不到怎么办,延期了,买那个点的票没了怎么办让我帮他买票的人的身份,比如是否有特殊优待,如军人,1米2以下儿童等,身份证丢了,或者票丢了,责任划分)

2.3可维护性测试(票是否可保存完好)

2.4兼容性(还不同人的去买,我中间招人去买,我坐车走路)

2.5算法测试(我通过不同的渠道买票花费的时间)

2.6竞品测试(别的人怎么买的票)

2.7安全性测试(身份信息保密)

2.8性能测试(一个身份证买多张票,同时多张身份证买多张票)

二.工作测试流程:

(一).功能测试流程

1.需求评审(重点,你发挥的作用是什么,需求可执行性,关联影响的功能模块,异常情况处理)

2.评估测试时间(测试计划)

3.测试用例设计(正交,边界值,等价类。。)

4.用例review(领导,开发,产品)

5.提测(确认开发进行过自测,功能主流程畅通,然后开始介入测试)(产品开发测试一块走流程)

6.codediff(代码改动点,从根源发现开发的问题,代码中明显测试代码(return,写死值),

公共静态变量在发生高并发时容易出问题,所以不能让这个变量的值去内存里面取)

7.执行用例

8.提bug(jira)

9.回归测试

10.确认测试(准生产环境确认)(分情况)

11.发布(线上回归))

12.BUG review(总结问题)

注意点:

发布测试来控制,测试环境部署测试来控制

发布过程中,开发运维做监控。(分批发布)

三.app专项测试:

1.CPU,内存,流量,电量,弱网,兼容性,FPS,中断,安装,稳定性

   怎么自动化实现,写一些自动化框架方法封装起来,重复的使用

2.冷热启动的区别

冷启动:在个人电脑中,冷启动是切断电源后重新启动。App类似,就是完全退出(不在后台运行)后重启启动。

热启动:非冷启动情况都可以称为热启动。热启动比冷启动多了一个触发点,那就是在后台启动App,比如双击苹果的HOME键,进行App的热启动。同时热启动通常会有一个计时器,特别是一些理财和银行的类的App会做此处理,当你间隔一段时间触发了热启动后,会让你再次登录(通过密码/手势/指纹)。也有比如网易新闻客户端这样的,当你间隔一段时间后触发热启动,会弹出广告页。

四.工具使用:

postman:接口,功能测试,可以做参数化

httprequester:接口,功能测试

jemter:接口功能性能工具

lr:接口功能性能

fiddler:抓包,设置代理,设置断点,mock数据

charles:抓包,设置代理,设置断点,mock数据

robot:功能自动化

uft(qtp):功能自动化

docker:容器

monkey:性能稳定性(app)

jenkins:自动持续集成

git,svn:代码管理

xmind/visio:脑图

soapUI:接口功能测试(HTTP,WEBSERVICE协议)

xshell/SecureCRT/putty:

slor:关键字分词

slor:我测试:我   测试分别去数据库搜索结果

nginx(反向代理)

tomcat(动态网页发布)

五.基础概念:

什么是性能测试

HTTP协议(哪些方法,什么区别(GET\POST),怎么组成,状态码)

TCP三次握手四次离手

线程,进程区别联系

内存泄露,内存溢出

死锁

六.自动化测试:

自动化测试脚本的应用场景:

1.重复性较多的,写脚本能省时间,节省效率,

接口重复回归,功能重复回归

2.手动做不了的测试

上万数据的准确性校验,脚本跑,错误数据筛选出来

数据更新机制的调整,全量变成增量更新()

自动化框架的搭建:

接口自动化框架

1.结构(1.框架思想(数据,关键字,行为,事件,混合)

2.读取用例的模块(excel,txt,mysql,xml)

3.发请求的模块(requests封装)

4.断言模块(re,遍历断言)

5.日志模块

6.测试报告生成模块

7.发邮件模块

8.配置文件)

2.怎么设计测试用例,注意哪些点()

3.怎么断言

功能自动化框架

1.和接口自动化类似

2.对页面各个控件的api封装(哪些封装,下拉框,选择框,对隐形控件怎么处理)

3.不同环境处理

4.xpath定位方法()

5.js定位方法()

平台工具:

1.接口自动化集成到平台上;

2.平台做测试环境,线上环境的监控

3.做公用统计线上badcase的统计

七.算法:

(会多门语言(前端了解。java熟练,python熟练))

排序算法:

冒泡

快排

查找算法:

二分查找,

队列,堆,栈实现:

八.linux:

常用命令背下来,熟悉,知道怎么用

ls -alih()

看日志(cat,head,tail,more)

grep|wc -l

九.数据库:

关系型数据库:

mangodb

mysql(sql,慢查询,配置)

oracal

GP数据库

非关系型数据库:

redis

十.服务架构:

服务分布式架构(超融合):概念实现理解

十一.网络

IP

网关

路由

根据子网掩码算网关

NAT

VPN

交换机配置

十二.典型例题

(一).Web页面出现空白页怎么定位问题

1.抓包(抓包)

2.看服务日志

3.看你当前url 用接口实际访问模拟下请求

4.mock数据,给请求,确认是那部分问题

(二).Web页面响应过慢怎么定位问题

从一个浏览器输入url到形成页面经历了什么

(三).你所测试的系统架构
--------------------- 
 

一、Linux相关

1. grep与find的区别?

   grep是查找匹配条件的行,find是搜索匹配条件的文件。grep的全称是global regular expression print 全局正则表达式版本,能够使用正则表达式查找匹配条件的行。

2. 查看IP?

  ifconfig

3. 说一下awk?


     awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式:它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的,在linux系统中已把awk链接到gawk,所以下面全部以awk进行介绍。


4. 正则表达式

5.杀死某一端口号的进程的方法?


(1)netstat -nlp 查看占用端口号的服务
(2)找到该端口号的进程
(3)找到该进程id
(4)kill它
linux下怎么根据端口号杀死进程_百度知道

7. 查看当前目录指令?

   pwd

8. 查看进程指令,讲一下该指令的参数和作用

ps

更详细的: Linux中用ps命令查看进程状态_wonder-CSDN博客_ps命令查看进程

9. 查找某个文件后100行中子串word出现的行

10. Linux中的grep和awk作用?

grep 主要用于搜索某些字符串,以行为单位
sed,awk 用于处理文本 ,可对行细分,处理文本

grep基本是以行为单位处理文本的; 而awk可以做更细分的处理,通过指定分隔符将一行(一条记录)划分为多个字段,以字段为单位处理文本。awk中支持C语法,可以有分支条件判断、循环语句等,相当于一个小型编程语言。
更详细的:grep与awk的区别_Jason的专栏-CSDN博客_grep和awk的区别
11. Linux中怎么选出文件中符合要求的某一列?

12. linux查看进程状态的命令?

ps

更详细的:Linux中用ps命令查看进程状态_wonder-CSDN博客_ps命令查看进程

13. Linux更改文件权限的命令

chmod

14. Linux怎么求某个成绩文件中某一列的平均值?

15. 有没有使用过linux系统?请列举你常用的命令。

16. linux系统下,机器间传送文件有哪些方式?

两台Linux系统之间传输文件的几种方法_OSKernelLAB(gatieme)-CSDN博客

二、数据库相关

     1. 如何删除表结构中的某一列?

    ALTER 

     2. index的作用

     3. having和where的区别

     4. 说一下ACID特性

     5. 写一个SQL语句,左连接和右连接

     6. SQL中的通配符是什么?

      7.SQL中的GROUP BY有什么用?

      8. SQL中的SELECT *FROM*WHERE是做什么的?

三、计算机网络相关

      1. TCP和UDP的区别,各自用在什么场合?


     TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
      UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快
      一个是可靠传输,一个是不可靠传输.可靠传输需要的开销大,因为要有确认回复.而UDP则是不需要回复确认的.像我们浏览网页,迅雷下载等等用的就是TCP协议,玩网游,看在线视频一般都是用UDP协议.然而随着现在应用程序的不断完善,渐渐弥补了UDP的不可靠性
      2. 用URL登录网站时需要哪些协议?浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等) - Albert.Deng - 博客园

      3. 浏览器中输入一个URL的响应过程 (回车,返回一个页面的过程) 中涉及到哪些操作?

        浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等) - Albert.Deng - 博客园

      4. Http1.0和Http1.1的区别,Http和Https,SSL协议

         HTTP1.0和HTTP1.1的区别 - 雪之灵 - 博客园

      5. HTTP常用的方法有哪些?POST和GET区别?

      常用方法  HTTP 请求方法 | 菜鸟教程

      区别  GET和POST请求的区别_小爷丶不太拽-CSDN博客_get和post请求的区别

      6. 了解SYN包吗?讲一下具体应用(讲了TCP三次握手过程,主动讲了TCP超时计时器可以保证可靠传输,又问了 TCP还有什么保证可靠传输的机制,握手 拥塞控制)

      7.socket编程过程(服务器 客户端,结合三次握手讲了一下)

      8.TCP客户端和服务器端的API函数?

       9.有A、B两个服务器节点,A发一个文件给B,但B没有收到,请发散你的思维,说出可能是由哪些情况造成的。

       10.TCP/UDP/http的区别。

         TCP、UDP和HTTP详解 - ~风轻云淡~ - 博客园

四、多线程相关

      1. 进程和线程的区别?线程是怎么划分的?

        https://blog.csdn.net/qq_32575047/article/details/80148379

      2.进程的空间分为哪些部分?

       简述Linux进程内存空间分为哪几个段?作用分别是什么?__牛客网

      3. 什么是死锁?

      什么是死锁?如何避免死锁?_Joe James-CSDN博客_什么是死锁如何预防死锁

五、数据结构与算法相关

     1. 实现链表的逆序(反转),解释思路,写代码

      注意:考察有两点,一个是对实现思路的考察,一个是对特殊输入的考察,严谨性

      2. 如何判断一个链表是环形链表,解释思路,写代码

      3. 给定二叉树的先序遍历及中序遍历,请写出中这颗二叉树的后序遍历结果,并解释思路

      4. 链表的增删改查

      5. 手写快速排序算法,并设计测试用例

      6. 字符串反转

      7. 二叉树反序列化

      8. 二叉树的中序遍历,递归实现和非递归实现

        根据中序遍历的顺序,对于任一结点,优先访问其左孩子,而左孩子结点又可以看做一根结点,然后继续访问其左孩子结点,直到遇到左孩子结点为空的结点才进行访问,然后按相同的规则访问其右子树。因此其处理过程如下:(1)若其左孩子不为空,则将P入栈并将P的左孩子置为当前的P,然后对当前结点P再进行相同的处理;(2)若其左孩子为空,则取栈顶元素并进行出栈操作,访问该栈顶结点,然后将当前的P置为栈顶结点的右孩子;(3)直到P为NULL并且栈为空则遍历结束

      9. strcpy函数,编写测试用例

     strcpy在java中怎么用_百度知道

     10. 找出三位数中各个位的平方和等于原来数大小的数字,编写测试用例

     11. 找出一个数组中和为m的所有可能组合?

     12. 洗牌,如何保证每张牌经过洗牌后,不在现在的位置上

     13. 给出两个API getChilds()、getFather()求多叉树第n层节点数?

     14. 写双向链表插入删除?

     15. 二叉树怎么分层遍历每一层节点?

    16.统计一个文件中每个单词的出现次数

     查找一个字符串中每个单词的出现次数--Java_lqadam的博客-CSDN博客_java查找字符串出现次数

六、编程语言相关

     1.值传递和引用传递的区别?

     2. static的作用和使用方法?

     3. HashMap和Hashtable的区别?以及ConCurrentHashMap,区别原理?

     4. 抽象类和接口的区别?

     5. 多线程的实现方式?Volatile和ThreadLocal的理解及其作用?

     6. JAVA异常处理机制

     7. 多态怎么体现的

     8. map是怎么实现的?

      https://segmentfault.com/a/1190000011351123

     9. map与hash_map的区别?

     在JAVA中Map和HashMap有什么区别_百度知道

七、测试开发相关

    1. 你了解哪些常用的测试方法?

     软件测试介绍以及常见测试方法

    2. 为什么做测试开发,谈谈你对测试开发的理解
     软件测试的魅力何在?您为什么选择测试一行而不做开发? - 知乎

    3. 设计一个测试计划,包括测试进度和所需要人员

https://jingyan.baidu.com/article/219f4bf7e4a5f3de442d38f6.html

    4. 功能测试包括哪些方面的测试?

    5. 功能测试有哪些方法(答了等价类,边界值,因果图,让解释了一下等价类)

功能测试——测试方法 - 51Testing软件测试网

    6. 测试电梯,设计测试用例

测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机_slforeverlove的博客-CSDN博客_电梯测试用例

    7. 对测试的看法?讲了测试具体要承担的职业,让继续说,又说了测试需要具备的能力,还让继续,又说了测试和开发沟通的问题

    8. 为什么做测试?怎么学习测试的?学习了哪些东西?

    9. 设计测试用例的方法?

测试用例的几种常见设计方法 - 51Testing软件测试网

   10. 测试用例要素

测试用例八大要素 - 百度文库

   11. 软件测试方法的分类?

关于几种软件测试分类的方法_javaxiaobenhai的博客-CSDN博客

    12. 黑盒测试的测试用例设计方法?

黑盒测试用例设计方法 - magicianyin - 博客园

    13. 自动测试的软件有哪些?

常见的软件测试工具有哪些? - TestWriter的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园

    14.  对美团的一个活动页面做测试

    15. 什么是冒烟测试?

冒烟测试和回归测试的区别_百度知道

    16. 什么场合自动化测试不适合?

什么情况适用自动化测试 什么情况不适用自动化测试

    17. 用过什么测试软件?

     18.Web测试,给你一个登陆界面怎么进行测试?什么是性能测试?

      如何测试一个网页登陆界面 - 51Testing软件测试网

     19.给一个字符串转换为整数的函数怎么进行测试?

八、其他

   1. 自我介绍

   2. 项目介绍,项目中最大的收获,项目中或实习中做过什么软件测试的构造?

   3. 项目负责的模块占整个项目的百分之多少?负责的模块难点在哪?请详细介绍你的一个项目,并介绍你在其中承担了什么样的责任。

   4. 团队中和别的同学发生过意见不合的情况吗?如何解决的?

   5. 项目中遇到什么问题怎么解决的?

   6.为什么选择美团?对美团有什么了解?

   7. 为什么选择做测试开发?对于测试开发的理解?想做什么方向?

   8. 有什么问我的?

    9. 你认为你应聘测试开发岗有什么优势?举两个例子?

   10.对自己未来3年的职业规划?

    11.什么原因会让你决定离开美团?

    12.通过聊天的方式,简单的了解了下项目经历以及掌握的技能及掌握程度,如编程语言(美团测试开发这边貌似更倾向要懂JAVA的),数据库;了解或使用过哪些测试工具;是否熟悉计算机网络等计算机类的专业知识;

     13.找到100亿个URL中重复的URL?

     14.场景题:假如测试说程序有bug,而开发偏偏说没有,该怎么处理?(一脸懵逼,当时我就反问,你们是不是经常遇到这种操蛋的问题)

     15. 安卓的基本架构,四大组件

     16.你的梦想是什么?

     17.讲讲中断?

答:中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。 根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。

     18.智力题7个等重量的球还有一个稍重的球共8个怎么用天平2次找出最重的一个?

答:去6个均分成两组称一次,如果相等则再称剩下的两个。如果不相等取重的一组,取两个称。

你可能感兴趣的:(测试,测试工具)