测试面试题:

一、从哪些层面去定位问题(前后端分离)

  1. 数据库层面的:可能少某个字段,或者字段值为空等等,这些可能在设计数据库时就埋下了错误的种子,导致程序调用数据库错误的数据产生bug,这一类问题不算普遍,但也是最容易忽视的一种情况,有时候从数据库入手定位bug说不定还能发现数据库的设计缺陷呢。

  2. 网络层面的:通常这种都是网络情况较差的时候产生的,比如手机的移动网络信号不好,又或是公司网络不稳定,导致js/css未加载完全或者请求超时等等,这种问题其实非程序bug造成的,可以不用提交bug,也不用让开发毫无头绪的去查代码的问题。当然如果可以的话也可以当优化建议提给开发,让他优化代码,比如压缩js/css,增加超时时间,超时后的重试机制。

  3. 代码层面的:普遍的bug基本都是代码有问题造成的,排除掉1和2剩下后就可以确定是程序bug了。对于了解网络架构的人来说,其实程序也分前端和后端的,一般对于界面显示有问题直接可以判断是前端的问题,比如系统兼容性,浏览器兼容性。

    而对于数据或者逻辑上的问题,则需要通过抓包工具来进行分析 :

    1)请求未返回数据,可能是client请求数据错误,可能是server端处理错误。

    2)请求返回错误的数据,那就是server端处理错误。

    3)请求返回正确的数据,那就是前端处理server端返回数据有错误

二、xmind画脑图(场景归纳)

 

三、登录页面测试用例?

   功能性用例设计点:

    1.  输入已注册的用户名和正确的密码,验证是否成功登录

    2.  输入已注册的用户名和不正确的密码,验证是否成功失败,且提示信息正确

    3.  输入未注册的用户名和任意密码,验证是否登录失败,且提示信息正确

    4.  使用未激活账户登录,验证是否登录失败

    5.  使用被停用用户登录,验证是否登录失败

    6.  用户名和密码两者都为空,验证是否登录失败,且提示信息正确

    7.  用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确

    8.  如果登录功能启用了验证码功能,在用户名和密码正确的情况下,

    输入正确的验证码,验证是否登录成功

    9.  如果登录功能启用了验证码功能,在用户名和密码正确的情况下,

    输入错误的验证码,验证是否登录失败,且提示信息正确

    10.用户名和密码是否大小写敏感

    11.页面上的密码框是否加密显示、或者是否需要有明暗码切换按钮

    12.后台系统创建的用户第一次登录成功时,是否提示修改密码

    13.忘记用户名和忘记密码的功能是否可用

    14.前端页面是否根据设计需求限制用户名和密码长度

    15.如果登录功能需要验证码,点击验证码图片或者点击换一张是否可以更换验证码,

      更换后的验证码是否可用

    16.刷新页面是否会刷新验证码

    17.如果验证码有时效性,需要分别时效性内和时效性外验证码的有效性

    18.用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面

    19.不同级别的用户,比如管理员和普通用户,登录系统后权限是否正确

    20.页面默认焦点是否定位在用户输入框中

    21.快捷键Tab和Enter等,是否可以正常使用

    22.为空和输入空格字符串的校验是否一致

    23.使用中文键盘输入字母和使用英文键盘输入字母传入后端的字符长度是否一致

    24.成功登录后的session的时效设置

    25.输入栏是否设置快速删除按钮

    26.用户名和密码是否支持特殊字符和中文

    27.浏览器的前进后退按钮,是否有效

    28.成功登出后,点击浏览器回退按钮,是否可以继续操作系统

    29.需求中是否有登录时间限制,如果有验证时间限制是否有效

    30.验证不同登录方式的正确性:扫码、账号密码、第三方……

    31.若支持手机号+验证码登录,验证码是否有时间限制,

    移动设备是否可以直接获取验证码

    32.操作错误提示信息是否简单明了

  兼容性测试用例设计点:

    1.  不同浏览器下,验证登录页面的显示以及功能正确性

    2.  相同浏览器的不同版本下验证登录页面的显示以及功能正确性

    3.  不同移动设备终端的不同浏览器下,验证登录页面显示以及功能的正确性

    4.  不同分辨率的界面下,验证登录页面的显示以及功能正确性

  安全性测试用例设计点:

    1.  用户密码后台存储是否加密

    2.  用户密码在网络传输过程中是否加密

    3.  密码是否具有有效期,密码有效期到期后,是否提示需要修改密码

    4.  不登录的情况下,在浏览器中直接输入登录后的URL地址,

    验证是否会重新定向到用户登录界面

    5.  密码输入框是否不支持复制粘贴

    6.  密码输入框内输入的密码是否都可以在页面源码模式下被查看

    7.  用户名和密码输入框分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面

    8.  用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串,

     验证系统行为是否被篡改

    9.  连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解

    10.同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期

    11.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性

    12.是否可以记住密码,记住的密码保存是否加密,记住的密码是否有有效期,

     过了有效期后是否清空密码

    13.是否支持第三方登录

    14.密码的强弱性,复杂度校验

    15.异地登录校验、更换设备登录校验、登陆信息异常是否考虑账户冻结停用、

    是否允许第三方平台存储密码

    16.是否可以使用登录的api发送登录请求,并绕开验证码校验

    17.是否可以用抓包工具抓到的请求包直接登录

    18.截取到的token等信息,是否可以在其他终端上直接使用,绕开登录,

    token过期时间校验

    19.登录错误后的提示是否存在安全隐患

  性能压力测试的用例设计点:

    1.  单用户登录的响应时间是否小于3秒

    2.  单用户登录时,后台请求数量是否过多

    3.  高并发场景下用户登录的响应时间是否小于5秒

    4.  高并发场景下服务端的监控指标是否符合预期

    5.  高集合点并发场景下,是否存在资源死锁和不合理资源等待

    6.  长时间大量用户连续登录和登出,服务器是否存在内存泄露

    7.  输入内容校验是否加入了函数防抖

 

四、测试用例设计方法

 

五、发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?(备案+有无文档)

  1.首先记录缺陷到管理工具中

  2.有文档的情况下,以文档为参考依据

  3.无文档情况下,将自己的理解方式或者大众使用规范为参考

 

六、软件测试结束的标志是什么?(宏观+微观)

  1.微观:产品上线运行一段时间正常

  2.宏观:产品在用,测试不断

 

七、软件测试方法有哪些?(黑灰白)

 

八、给你一个需求如何开展测试

  1.首先,查找需求说明、网站设计等相关文档,分析测试需求。

  2.制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:  

  功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试

  3.设计测试用例(功能,界面,性能、数据库、兼容,安全)

  4.开展测试