测试常见问题合集


参考: anliux测试面经合集

测试基础知识

与开发阶段的联系

测试阶段是和开发阶段是一一对应的

测试阶段:单元测试–>集成测试–>系统测试–>验收测试

开发阶段:需求分析–>概要设计–>详细设计–>编码阶段

测试分类

按阶段划分

  • 单元测试(模块测试)

    其目的是检验软件的基本组成单位的正确性。

    测试方法:白盒测试

    测试内容:模块接口测试,局部数据结构测试,边界测试,路径处理测试

  • 集成测试:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行争取性检测的测试工作。

    测试方法:黑盒和白盒测试相结合。

    测试内容:模块之间数据冲突,模块之间功能冲突

  • 系统测试:包括对功能、性能以及软件所运行的软硬件环境进行测试。

    测试方法:黑盒测试

    测试内容:功能、界面、安全、兼容性、性能、可用性

  • 验收测试:部署软件之前的最后一个测试操作,确保软件准备就绪。

    测试方法:黑盒测试

    测试内容:同系统测试

按是否查看代码划分

  • 黑盒测试

    又称功能测试,把被测软件当做一个黑盒子,不关心盒子的内部结构,只关注软件的输入输出数据。

  • 白盒测试

    基于代码的测试,打开盒子去研究里面的源代码和程序结果

  • 灰盒测试

    介于黑盒和白盒测试之间的一种测试,多用于集成测试阶段,既关注输入输出,又关注软件内部的情况

按是否执行程序划分

  • 静态测试

    不运行程序本身,仅通过分析和检查源程序的语法、结构来检查程序的正确性

    检查项:代码风格和规则审核;程序设计和结构的审核;业务逻辑的审核

  • 动态测试

    运行改程序,检查运行结果和预期结果的差异,并分析运行效率、正确性和健壮性。主要由构造测试用例、执行程序、和分析程序组成

按是否手工执行

  • 手工测试

    人工一个个的输入测试用例,然后观察结果,与机器测试相对应

    优点:自动化无法代替探索性测试,发散思维类测试

    缺点:执行效率慢,容易出错

  • 自动化测试

    在预设条件下运行系统或者应用程序,评估运行条件。

其他测试

  • 回归测试

    修改代码之后,再重新测试以确认没有引入新的错误或导致其他代码产生错误。

  • Alpha 测试

    用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。

    不能有程序员或测试员完成。

  • Beta 测试

    是一种验收测试,Beta 测试由软件的最终用户们在一个或多个客房场所进行。

    Alpha 测试和Beta 测试的区别:

    1. 测试的场合不同:Alpha 测试是指把用户请到开发方的场所进行测试,Beta 测试是指在一个或多个用户的场所进行的测试。
    2. Alpha 测试是受开发方控制的,时间比较集中。Beta测试的环境是不受开发方控制的,数量相对较多,时间不集中。
    3. Alpha 测试先于Beta 测试执行,通用的软件产品需要较大规模的Beta测试,测试周期比较长

测试非技术类问题

如何理解测开

测试的目的是发现问题,检查系统是否满足要求,保证程序的质量。

测开的职责一方面就是通过手工测试,自动化测试来保证质量,另一方面是提高测试的效率。

和开发的区别

  • 开发是实现功能,也就是从无到有的过程;测试是发现软件的问题,检查系统是否满足要求,保证质量。测试和开发是相辅相成的,同步进行。
  • 有些的很明显的bug开发人员自己能找到,测试人员要比开发人员有更全面的想法才能找到深层次的问题点。

为什么做测开,不选研发?

  • 测试工程师经历了之前的误解之后,近年来公司开始重视质量,尤其是大公司,知道测试工程师的必要性,所以我相信虽然这个行业目前没有被足够的重视,但是后续会越来越好,我相信这个行业的前景。
  • 从技术栈和个人性格上来说,我比较有耐心,具有较好的学习能力,自身也符合测开工程师的要求。
  • 另外我了解了测试的基本理论之后,我觉得测试理论是一个比较普遍适用的技能。但是开发工程师有一定的专业性限制,比如说Java工程师可能一直是Java工程师,但是测试工程师可以测试由不同技术实现方案进行实现的产品,测试体系使用的面比较广。

如果开发认为测出来的不是bug,怎么办

  1. 首先看这个在需求里面有没有明确如何实现,可以找产品经理来进行确认,需不需要改动,三方商量确定好后再看要不要改。

  2. 先尽可能说出这个BUG的依据,把BUG复现出来,说清楚如果用户发现出了问题,会有什么不良后果。要坚持自己的立场,让问题得到最后的确认。

  3. 实在不行,就把这个问题提出来,和开发经理还有产品经理进行确认。

你认为测开工程师的需要哪些能力?

技术能力加软实力

技术能力:

  • 计算机基础知识
  • 编程能力,具备基本的开发能力
  • 软件测试相关的知识

软实力:

  • 性格(耐心,细心,有责任心)
  • 思维(逻辑思维能力,测试思维)
  • 能力(抗压能力,沟通表达,和产品研发对接)
  • 坚持原则(和产品开发沟通的时候,不能人云亦云,要有自己的原则)

对测开工作的职业规划

测试用例设计

测试用例模板

  • 功能测试
  • 性能测试
  • 安全测试
  • 可用性测试
  • 界面测试
  • 兼容性测试

登录界面测试

  • 功能测试

    • 用户名正确,密码正确,点击提交按钮,是否能正常登录
    • 输入错误的用户名或者密码,验证登录失败,有相应的提示信息
    • 用户名为空或者密码为空,是否有响应的提示信息
    • 登陆成功后页面能否正常跳转
    • 用户名和密码太长太短怎么处理
    • 用户名或者密码含有特殊字符,比如空格,和其他非英文的情况
    • 用户名或者密码以空格开头的情况
    • 记住用户名的功能
    • 密码是否是非明文显示
    • 牵扯到验证码的,验证码图案是否过于扭曲;点击换一个按钮是否好用
    • 登录页面中的注册、忘记密码等链接是否好用
    • 输入密码时,切换键盘大小写是否有提示
  • 性能测试

    • 打开登录页面,需要的时间是否在需求要求的时间内
    • 登录成功,跳转到新页面的时间是否在需求要求时间内
    • 模拟大量用户同时登陆,检查一定压力下能否正常登录
  • 安全测试

    • 登陆成功后的cookie是否是httponly,会不会通过js脚本被攻击
    • 用户名和密码是否通过加密的方式,发给web服务器
    • 用户名和密码输入框有没有禁止脚本输入,防止XSS攻击
    • 用户名和密码的输入框应该屏蔽SQL注入攻击
    • 用户名和密码应该在服务端验证,而不能单单在客户端验证
    • 防止暴力破解,检测是否有错误登录的次数限制
    • 是否支持多用户在同一机器上登录
    • 同一用户是否可以在多台机器上登录
  • 可用性测试

    • 是否可以全键盘操作,是否有快捷键
    • 输入框是否可以用tab键切换
    • 输入用户名和密码是否可以按回车登录
  • 界面测试

    • 布局是否合理,按钮是否整齐
    • 按钮的长度和高度是否符合要求
    • 界面的文字简洁易懂,没有错别字
  • 兼容性测试

    • 不同的浏览器版本下能否正常显示和功能正常

    • 不同版本的系统上能否正常显示和功能正常

    • 不同平台是否能正常工作,比如mac,windows

    • 不同版本的浏览器是否正常

    • 移动设备是否正常工作

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

淘宝搜索框测试

测试矿泉水瓶

  • 功能测试
    • 瓶盖是否容易打开或者拧紧
    • 水能不能正常倒出来
    • 瓶盖拧紧成都
    • 不同容积的水需要倾斜多少角度喝到
    • 出水的流畅性
  • 性能测试
    • 可容纳的最高温度
    • 最多可装多少水
    • 是否漏水
    • 可承受多大的重力杯子会变形
    • 从多高摔落会破损
    • 若装热水,多久会变冷
  • 安全测试
    • 是否防滑
    • 是否有异味
    • 装热水是否会裂开
    • 是否有缺口,会划嘴
    • 材料是否对人有害
    • 装热水是否会烫手
    • 材质是否对人有害
  • 界面测试
    • 外观是否美观
    • 标签内容包括营养成分,字体排版是否正确,是否有错别字
    • 标签是否容易脱落、褪色
    • 标签内容是否符合行业标准
  • 兼容性测试
    • 是否可以放在不同环境下
    • 是否可以装不同液体
  • 可用性测试
    • 是否防滑
    • 是否方便携带
    • 是否方便饮水

问题查找

猜你喜欢

转载自blog.csdn.net/weixin_41524366/article/details/107573761