软件测试面试题


一、怎么样才能做好测试工作

软件测试这个职位重点是保障软件质量,但是软件质量的提升呢,并不能仅仅依赖测试,而是靠整个团队来完成的,整个团队需要有规范的

项目流程,并且产品、开发、测试、运维都需要做好自己的工作,才能把控软件的整体质量,单纯从测试这个岗位来说的话,我感觉做好测试工作需要做好

以下这些事情:

第一 良好的业务能力,可以快速熟悉业务系统,并找到对应的测试点

第二 良好的技术能力,测试基础、用例设计、数据库、linux、自动化、性能、代码等

第三 良好的沟通协调能力,在测试过程中需要和产品 开发 运维保持沟通,推动项目进展及时暴露风险

第四 保持耐心、细心、责任心

二、给你一个杯子,你怎么测试呢?

1、功能测试

主要关注水杯的基础功能

1.1 水杯是否可以正常装水

1.2 水杯是否正常喝水

1.3 水杯是否有盖子,盖子是否可以正常盖住

1.4 水杯是否有保温功能,保温功能是否正常保温

1.5 水杯是否会漏水,盖住杯子拧紧后是否会漏水

2、界面测试:

主要关注水杯外观、颜色、设计等方面

2.1 外观是否完整

2.2 外观是否舒适

2.3 颜色搭配及使用是否让人感到舒适

2.4 杯子外观大小是否适中

2.5 杯子是否有图案,图案是否易磨损

3、易用性测试:

主要关注杯子使用是否方便:

3.1 水杯喝水是否方便

3.2 水杯拿起放下是否方便,这里会衍生到水杯形状的测试

3.3 水杯装水是否方便

3.4 水杯携带是否方便

3.5 水杯是否有防滑功能

3.6 水杯装有低温或者高温水时,是否会让手感到不适

4、性能测试:

4.1 水杯装满水时,是否会漏出来

4.2 水杯最大使用次数

4.3 水杯的保温性是否达到要求

4.4 水杯的耐寒性是否达到要求

4.5 水杯的耐热性是否达到要求

4.6 水杯掉落后,是否可以正常使用

4.7 水杯长时间放置时,是否会发生泄漏

5、兼容性测试:

主要关注水杯是否可以装其他液体,如 果汁、汽油、酒精等

6、可移植性测试:

主要关注水杯放置环境等

6.1 将水杯放在常温环境下,使用是否正常

6.2 将水杯放在零下的环境中,使用是否正常

6.3 将水杯放在高于正常温度的环境下,使用是否正常

7、安全性测试

主要关注水杯外观和各种异常条件下是否释放有毒物质等

7.1 当水杯装满热水时,水杯是否会烫手

7.2 当水杯装上水后,是否会产生有毒物质

7.3 把水杯放在零下环境时,是否会产生有毒物质

7.4 把水杯放在高温环境时,是否会产生有毒物质

三、ios系统和android系统的区别?

第一、ios的稳定性会高一些,android相对会差一些,看厂商的优化了

第二、Android是因为开源而导致碎片化比较严重,每个厂商都定制了自己的ROM

第三、Android更容易出现信息的泄漏、权限问题、安全泄漏等问题

第四、IOS开发语言是swift和Objective-C,运行效率会高一些,Android的开发语言为java,运行效率低

第五、做兼容性测试的时候,Android要做的设备比较多,ios相对会少一些

四、如何保证自动化测试的稳定性?

主要表现在这几个方面:

一、元素定位的问题

二、用例之间的依赖问题

三、数据问题

元素定位问题可以采用智能等待的方式,尽可能避免用例依赖,可以解耦用例之间的关系,让每条用例都从一个共同的页面开始执行,比如首页,

这就需要在框架中采用后置处理的方式,使每条用例执行完成之后都回到首页,测试数据尽可能的现用现造,尽量避免使用假数据和死数据

五,网络协议的请求方式有哪些?

常用:post、get

不常用的:delete、put、head、option

get 和 post的区别?

1、长度       get请求参数是长度限制的             post无长度限制

2、格式       get只接受ascall码                          post无格式限制

3、参数位置    get参数写在URL                        post参数写在请求正文中

4、请求次数      get只发送一次                          post发送两次(1、请求头等相关信息          2、发送请求正文)(部分浏览器2次请求)

5、安全性,post比get传输更加安全

http协议包含哪些内容?

1、请求信息

  1)请求行-请求方式、请求地址、Http版本

  2)请求头

    host:主机

    server:服务器版本信息

    connect-encoding:实体报头的编码格式

  3)请求正文:data

2、返回信息:

   1)状态行:HTTP版本、状态码、状态信息

   2)响应头和请求头一样

   3)响应正文:data

HTTP常见状态码

1XX    需要继续发送请求

2XX    成功

3XX    需要重定向

4XX    客户端请求数据有误

5XX    服务器响应错误

6XX     服务器响应错误

常见的状态码:

200(成功)服务器已成功处理请求

302(临时移动)服务器目前从不同位置响应请求,但是请求者应继续使用原有位置来进行以后的判断

400(错误请求)服务器不理解请求的语法

404(未找到)服务器找不到请求的网页

500(服务器内部错误)内部错误,无法完成请求

501(尚未实施)服务器不被完成请求的功能

504(网关超时)服务器作为网关或者代理,没有及时从上游服务器接收到请求

抓包工具怎么用/什么情况会用到抓包?

S-

  1、测试执行后,检查传输的数据是否正确

  2、出现bug,定位是前端还是后端问题

  3、弱网测试

  4、安全测试-传输过程中,数据是否有加密,数据篡改问题

 1、找到请求数据,检查是否正确

 2、定位出是前端还是后端的问题

 3、模拟手机弱网进行测试

 4、检查数据是否有加密传输、数据篡改是否成功

 web-浏览器自带F12

 App项目-fiddler,charles(青花瓷),wireshark(抓取tcp协议的包)

 1、web-F12即可抓包获取数据

    fiddler抓包

    1)、web

      Http协议抓包

           如果抓取不到-》将浏览器设置代理

      Https协议抓包

         勾选可以抓取Https协议

   2)、App

     1、手机设置代理

        手机要与fiddler安装电脑处于同一局域网下

        选择网络,手动输入代理-IP地址(PC端IP),端口(fiddler默认8888)

    2、手机抓取HTTPS包-需要安装证书

        2种方式

          1)生成的证书直接导入到手机安装即可

          2)手机浏览器里输入http://pc机器的IP地址:8888/ ->下载证书安装到手机上 

   3)、微信小程序

       微信开发者工具,抓包及抓包信息

2、定位前端还是后端bug

   1、看状态码,仅仅是服务器级别的错误

     4开头是请求错误,5开头是服务器问题

   2、精准定位   1、前端问题-请求链接,请求方式,cookie,请求数据是否正确

                         request问题,则是前端问题

   2、前端无问题,则是后端问题,查看服务器日志,也可以查看返回结果response

   3、测试弱网

       修改网络文件对应参数

  4、安全测试

    1、请求数据是否加密

        抓包去获取,看看关键信息是否有加密

    2、篡改数据

      设置断点-篡改是否成功

1、检查数据,判断传输的数据是否正确

2、根据判断,将bug提交到对应的开发手中

3、用fiddler模拟弱网,执行弱网测试

4、 安全测试,提高产品的安全性

六、接口测试怎么测的?

S-后端开发与数据层开发完成以后,可以开始接口测试

T-测试逻辑层与数据层,确认业务是否能够正常使用

A-具体怎么做

  1、接口文档-开发提供

    接口文档:接口URL地址,请求参数,请求方式,返回结果

    接口文档格式:HTML或Word

  2、接口分析-不同公司要求不同

   1、只测试接口是否能够跑通

        只需要考虑正常场景

   2、接口场景需要全面覆盖

        正常场景:

                申请借款模块:

                         不同的申请方式,还款方式,期数。。。

                         条件组合,测试不同组合下结果是否正确

                判定表的方法-每个条件组合,测试结构是否正确

                参数格式的校验、等价类、边界值等等

                参数定义的是string类型,传输数据,正常得是String, 输入int类型,也会被强行转成string类型

      整合一下:

           参数的约束:长度、必选项、数据类型

           业务场景:正确/错误业务场景,异常场景

           组合场景:相互依赖,相互排斥

           对于不理解的参数/返回值不理解,问开发

          异常场景:

               少一个必填参数

               多一个参数

  3、接口用例

  4、执行

     选择工具执行:

     1、jmeter

         1)打开jmeter

          2)新建线程组

          3)新建Http请求

                 请求方式-get、post

                 请求参数-表单格式,json格式,xml格式

     2、requests

     3、postman

     4、swagger

    5、soupui

    6、在线测试工具

5、检查对应的结果

   Jmeter-建立监听器,查看结果树

   requests print出来,打印结果

   1、检查返回结果是否正确

   2、检查逻辑结果,保存的数据是否正确

完成逻辑层和数据层的检查测试

      异常场景

相关