常见的测试面试题总结

1.   α测试测试与β测试的区别java

首先alpha测试和beta都属于验收测试,这两种测试都须要用户参加,且都不能由程序员和测试员执行。广义上来说, α测试是“内测”, β测试是“公测”程序员

alpha测试是用户在开发环境或者是公司内部模拟实际操做环境的测试面试

α测试的特色是
  一、它是在开发环境下进行的(不对外发布)
  二、它不须要测试用例评价软件使用质量
  三、用户每每没有相关经验,能够是兼职人员,开发者或测试者坐用户旁边
  四、目的主要评价软件产品的功能、局域化、可用性、可靠性、性能等服务器

Beta测试是真实用户在实际操做环境下进行的测试。    并且顺序不能错,必须先进行Alpha测试再进行Beta测试;先α测试后β测试网络

Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。数据结构

而beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。架构

对于软件产品来讲,在系统测试后,才有α测试β测试,并且通用的软件产品须要较大规模的beta测试,测试周期比较长。若是产品经过了beta测试,那么就能够正式发行了。并发

 

若是还不可以理解明白,就类比一款叫作《王者荣耀》的游戏,有体验服(内测玩家)、正式服(大众的广泛玩家)。工具

 2.  单元测试有哪些内容?自顶向下和自底向上有什么区别?性能

单元测试的内容包括:接口测试、

          局部数据结构测试、

          边界条件测试、

          独立执行路径测试、

          内部错误处理测试

自顶向下的单元测试:先对最顶层的基本单元进行测试,把全部调用的单元作成桩模块;而后再对第二层的基本单元进行测试,使用上面以前已测试的单元作驱动模块,以此类推直到测试完全部的基本单元。

          优势:不须要开发驱动模块;

          缺点:测试过程愈来愈复杂,开发和维护成本增长;不是单元测试的一个好的选择 

自底向上的单元测试:先对最底层的基本单元进行测试,模拟 调用该单元  的单元作驱动模块;而后再对上一层进行测试,用下面以前已测试的单元作桩模块,以此类推直到测试完全部的单元。

          优势:不须要开发桩模块;

          缺点:测试过程愈来愈复杂,测试周期较冗长;

 

 

 3.  增量式集成测试有过了解吗?与非增量式集成测试有什么区别?

 增量式集成的策略有不少种,主要有如下三种:①自顶向下集成,②自底向上集成,③三明治集成

       该策略最大的特色就是:支持故障隔离、定位问题

非增量式集成测试策略也叫作大爆炸集成、一次性集成,即在最短的时间内把全部的系统组件一次性集成到被测系统中,并经过最少的用例来验证整个系统,不考虑各组件之间的相互依赖性或者可能存在的风险

       该策略最大的特色就是:问题定位和修改都比较困难,适用于维护型的项目,而且新增的项目只有少数的模块被增长或修改;或者适用于测试系统比较小,而且各个组件都通过了充分的单元测试。

 

 4.  白盒测试的逻辑覆盖类型有哪些?能由弱到强排个序吗?

         由弱到强依次排序: 语句覆盖、断定覆盖、条件覆盖、断定/条件覆盖、条件组合覆盖
    拓展1:还有,有时面试官或者笔试题上会问你    路径测试的环、节点的计算准备设计多少个测试用例?还有一种问法就是问圈复杂度,这是同一个意思,如何回答?
          对于考查基本路径法须要覆盖几条,有如下两种方法
            一直接画出一个树同样的分支图,有几条分支就有几条路径
                                           二直接套公式:基本路径=谓词节点+1     谓词节点是指条件语句,好比while、if 、break等
    拓展2:颗粒度与测试的关系,有没有什么顺序关系?
                           粒度从小到大顺序:单元->集成->系统->验收  (验收测试粒度最大)

 5.  在性能测试中,压力测试、负载测试、 稳定性测试能讲讲它们的区别吗?

  1.压力测试:压力测试(又叫强度测试),它在系统资源特别低的状况下软件系统运行状况,目的是找到系统在哪里失效以及如何失效的地方。
        目的是测试软件的瓶颈和极限,一般会出现一个阈值、峰值等数据(重点在阈值、峰值)
       2.负载测试:指数据在超负荷环境中运行,程序是否可以承担,可以坚持多久,通常会出现一个可坚持的时间(重点在时间)
  3.稳定性测试:是指被测试系统在特定硬件、软件、网络环境条件下,给系统加载必定业务压力,使系统运行一段较长时间,以此检测系统是否稳定,
         通常稳定性测试时间为 n*12 小时

 6.  听过软件调试技术吗?有哪些呢,列举一下?LoadRunner用过吗,有哪几部分?

    试探法(强行排错法),
    回溯法:人工沿着程序的控制流程往跟踪代码,直到找出错误根源为止
    对分查找法:缩小错误的范围,
    概括演绎
    缘由排除法
LoadRunner经过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题, 可适用于各类体系架构的自动负载测试,能预测系统行为并评估系统性能
    包括三部分: 脚本编辑工具 、测试执行工具 、结果分析工具
      首先能够新建场景,编写不一样的测试脚本,我在上一家公司是用java语言编写过测试脚本;
      编写完成以后,就能够执行测试了;
      测试结束以后,就能够生成各类图表,进行结果分析。

 7.  若是说咱们公司开发了一款手机APP应用,那么,属于界面元素测试内容有哪些?对手机软件的压力测试有哪些?

    窗口测试、菜单测试、文字测试、图标测试、鼠标测试

               存储压力、响应能力压力、网络流量压力、边界压力

  拓展:再提一个问题,并发压力算不算压力测试呢?

    否,由于并发压力是针对服务器的,由于每次并发是一个客户端,并发压力只发生在多用户操做的状况下,由于手机自己是对应一个用户操做,并不存在并发压力的可能

8.  确认测试、冒烟测试、回归测试的区别?

  1. 确认测试:也叫有效性测试,有的也叫合格性测试,主要指针对软件系统 /软件子系统的测试。通常来讲,有种比较约定俗成的顺序:UT--IT--VT--ST。
        但实际上并不是绝对如此, 严格的说,确认测试在某种状况下就属于集成测试,但在某种状况下就属于系统测试。如何理解?
        好比:①当你的被测系统由软件子系统、硬件子系统等一些子系统组成的时候,这个时候针对这个被测系统中的软件子系统的测试就属于集成测试中的“系统内集成(子系统间集成)”,
           因为确认测试自己就是测纯软件子系统的,因此在这个时候确认测试自己就属于集成测试阶段中的子系统集成测试了
           ②而当你的被测系统自己就是一个纯软件系统时,这个时候针对这个系统的测试就变成了系统测试了,因此在这个时候确认测试又变成了系统测试阶段的活动了
         主要看你所测的是独立的纯软件系统(系统测试)仍是软件系统中的子系统(集成测试),能够这样去理解
 
       2. 冒烟测试只是一个测试活动,并非一个测试阶段。也就是说,冒烟测试贯穿于测试的任何一个阶段,单元测试里会有冒烟测试、集成测试里会有冒烟测试、系统测试里也会有冒烟测试。
        冒烟测试和其余全部的测试活动的目的不同,它不是为了证实程序存在BUG, 而是为了证实程序的基本功能、核心功能没有问题
        冒烟测试通常是由程序员来执行;冒烟测试带有必定的随机性,它不须要去设计正式的测试用例,这个活动在开发部门内开展;
 
  3. 回归测试:是指修改了旧代码后,从新进行测试以确认修改没有引入新的错误或致使其余代码产生错误。 严格来讲,回归测试不是一个测试阶段,只是一种测试技术
        一种用于这种各个测试过程(UT、IT、ST、UAT)的测试技术。在理想的测试环境中、程序每改变一次,测试人员都要从新执行回归测试。
        所以,经过选择正确的回归测试策略来改进回归测试的效率和有效性是很是有意义的。
相关文章
相关标签/搜索