【产品测试】-经典面试题吐血整理

  • 产品需求变更怎么办?

    • 1.先看改动范围,如果改动范围小,可以重新测试
    • 2.如果改动范围大,可以和产品商量需求变更放在下一个版本完成,或者延迟发布,延长测试时间
    • 3.如果不能争取测试时间,加班加点完成,并且在测试报告中写明需求变更的情况,避免背锅
  • 软件测试的流程(如何开展测试)

    • 需求评审
      • 需求是否合理
      • 需求是否可测
    • 测试计划
      • 时间
      • 业务点(要测试哪些功能)
      • 资源(用什么工具)
    • 测试设计(有的公司没有时间做)
      • 测试用例
    • 全面开展测试
      • 测试执行
        • 测试环境搭建,测试工具搭建
    • bug提交
    • 新版本发布
      • 新功能测试
      • 回归测试
    • 测试报告总结
  • 总结:需求评审,测试计划,测试用例设计,执行测试,测试报告
  • 测试方法

    • 按照是否查看代码分为:黑色测试,白盒测试,灰盒测试
      • 白盒测试(结构测试,逻辑驱动测试)
        • 缺点:耗费比较大,不能检测到代码中遗漏的逻辑
        • 优点:可以检测代码的每一条分支和路径,揭示隐藏在代码中的错误,对代码的测试比较彻底
        • 测试方法:语句覆盖,条件覆盖,判定覆盖,条件组合覆盖,基本路径覆盖
        • 检查程序内部逻辑,对所有的路径进行测试,是一种穷举路径的测试方法
      • 黑盒测试(功能测试,数据驱动测试)
        • 不查看代码内部的逻辑,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否恰当地接收输入数据而产生正确的输出信息
        • 测试方法:等价类划分(有效等价,无效等价),边界值划分,因果图法,场景法
        • 优点:容易实施,不需要关注内部实现
        • 缺点:覆盖率比较低
      • 灰盒测试
        • 将黑盒测试和白盒测试结合在一起的综合测试方法,基于程序运行时的外部表现和程序内部逻辑设计测试用例的方法
    • 按开发阶段划分:单元测试,集成测试,系统测试(冒烟测试,回归测试),验收测试
      • 单元测试(开发初期阶段)
        • 对象:代码模块
        • 任务:模块接口测试,模块局部数据结构测试,模块边界条件测试,模块中的所有数据通路测试(通常情况下是白盒测试)
        • 优点:能尽早发现错误,降低修改成本
      • 集成测试(在单元测试之后)
        • 对象:经过了单元测试的模块
        • 任务:期望通过测试返现各断源接口之间存在的问题,最后总把经过测试的单元组合成符合设计要求的软件
      • 系统测试
        • 对集成好的软件和硬件系统进行测试活动
        • 系统测试是最重要的,因为系统测是在产品整体功能相对完善大的阶段,最能体现产品的缺陷。
      • 验收测试
        • 以用户为主的测试,针对核心业务测试流程进行测试
      • 回归测试
        • 对旧版本的bug进行了修复时候进行的测试,用来确认修改是否引入了新的错误
      • 集成测试和系统测试之间的比较
        • 测试角度:集成测试偏重于技术的角度进行测试,系统测试是偏重于业务的角度进行测试。
        • 测试内容:集成测试是测试各个单元模块之间的接口,系统测试是测试整个系统的功能和性能;
      • 性能测试
        • 包含: 并发测试,压力测试,负载测试
        • 关注: 响应时间,吞吐量,并发数,每秒能完成的响应数,cpu占用率,耗电量,网络
  • 测试朋友圈

    • 功能测试:
    • 界面/易用性测试:是否符合需求,美观,方便
    • 中断测试:前后台切换,锁屏解屏,断网重连,短信电话中断,插拔耳机或数据线
    • 网络测试:三大运营商的网络,网络切换(wifi,4g,2g),无网测试,弱网测试(延时,丢包)
    • 兼容性测试:安卓手机端,苹果手机端,pad端等
    • 安全测试
    • 性能测试:响应时间,吞吐量,内存占用等
  • 测试一个行李

    • 请问行李箱有什么具体需求嘛?
    • 功能测试:大小,厚度,容量,各个面承重等,拉杆伸缩收回是否灵活,开锁解锁是否方便
    • 界面测试:材质,颜色,花纹是否符合要求
    • 易用性测试:拉杆的手把是否防滑,拉链开合是否拖动
    • 兼容性方面:箱子滚轮滚动是否支持沙地,泥土地等
    • 安全测试方面:材质是否无毒,边角是否光滑无棱角
    • 压力测试方面:长时间的负重
  • web测试和app测试的区别

    • web和app的区别
      • web是b/d架构,基于浏览器;app是c/s架构,基于客户端。web中只要更新了服务器,客户端就会自动更新,app就不能保证客户端及时更新,因为app的更新是需要用户主动去完成的,如果app中修改了服务器,就意味着客户端用户使用的所用户使用的新版本都要进行回归测试。
    • 性能方面
      • web关注响应速度,app还看电量,流量,cpu,内存
    • 兼容性方面
      • web基于浏览器,主要看电脑硬件,电脑系统,app依赖手机或平板,专注系统是安卓还是ios,关心分辨率,屏幕尺寸
    • app比web多一项专项测试
      • 弱网测试,安装,卸载,更新,界面操作,触摸手势等
  • 瀑布模型和敏捷模型

    • 瀑布模型:
      • 分为好几个阶段,每个阶段之间有明显的分层,每一阶段的结果会作为下一个阶段的输入,强调文档。整个周期差不多完成之后才能看到结果,然后进行测试
      • 缺点:没有迭代和反馈,不能适应用户不断改变的需求,后期改动成本比较大
    • 敏捷模型
      • 按照一个短的迭代周期工作,强调快,每次都要交付一些成果,强调开发软件而不是文档,让客户参与进来,快速响应新的需求
      • 特点:以用户需求为中枢,而每个迭代周期都需要进行测试
  • V模型和W模型

    • V:把测试放在需求分析,系统设计和编码之后
    • W:测试活动和开发同步进行,测试对象不仅仅程序,还包括需求和设计
  • 对测试的理解

    • 测试是为了更可能多的发现产品的缺陷,避免上线后出现出现重大问题;对开发成果的检验
    • 发现并尽量深层次定位BUG产生的原因,一定程度上协助开发找到解决问题的方案
  • 为什么做测试

    • 为什么不做开发做测试
      • 相比于开发来说,测试的开发强度没有那么大,职业的寿命也要长一些
      • 对于测试本身的这个行业来说,它属于一个朝阳产业,现在缺口也挺大的,现在越来越重视软件的质量,测试行业还是很有发展的
      • 对于我自己来说,我认为目前我的性格,能力,也比较符合测试的需求。
    • 为什么不做安全做测试
      • 安全行业对安全知识要求得非常深入,目前我们学校对信息安全的培养其实更加侧重于计算机这一块,在安全方面的课程开得不多,一是在开发行业不够有竞争力,而是自己也没有多感兴趣
  • 如何写测试用例

    • 用例编号
    • 用例标题
    • 功能模块名称
    • 前置条件
    • 输入数据
    • 操作步骤
    • 预期结果
    • 优先级
    • 执行结果
    • 执行人
  • 作为一名软件测试工程师,应该具备什么样的素质和能力

    • 硬技能
      • 计算机知识:操作系统,计算机网络,并且还要至少会一门编程语言
      • 测试知识:各种测试理论,测试方法,测试用例编写
      • 业务分析能力:包括熟悉产品的隐藏需求和功能
    • 软技能
      • 沟通能力,耐心,负责任,耐心

猜你喜欢

转载自blog.csdn.net/qq_39328436/article/details/112203414