软件测试面试题目 1

一  软件测试常用概念


1.  黑盒测试和白盒测试常用的测试方法有哪些?举例说明。 
答:

黑盒测试:等价划分类,边界值分析,错误推测法等 

白盒测试:逻辑覆盖法,主要包括语句覆盖,判断覆盖,条件覆盖,判断条件覆盖,条件组合覆盖、路径覆盖。 

2  白盒测试和黑盒测试的区别

白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。  

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。


3.  静态测试和动态测试的概念。 
答:静态方法是指不运行被测程序本身,仅通过分析或检查源程序 的语法、结构、过程、接口等来检
查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析 、流程图分析、符号执行来找
错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配 的参数、不适当的循环嵌套和
分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等 。静态测试结果可用于进一步
的查错,并为测试用例选取提供指导。 
动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,
这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。 所谓软件的动态测试,就是通
过运行软件来检验软件的动态行为和运行结果的正确性。目前,动态测试也是公司的测试工作的主要方式。
根据动态测试在软件开发 过程中所处的阶段 和作用,动态测试 可分为如下几个 步骤:1、单元测 试  2、集
成测试 3、系统测试 4、验收测试 5、回归测试。


4.  等价类有几种,含义分别是什么? 
答:等价类分为以下几类: 
  有效等价类和无效等价类 
  有效等价类就是对程序的规格说明有意义的,合理的输入数据所构成的集合,利用有效等价类可验证程序是否实现了规格说明中的功能和性能。 
  无效等价类是那些对程序的规格说明不合理或者无意义的数据所构成的,为了验证程序做其不应作的事情。 



5.  等价类划分的优缺点。(答出一些使用过程中的体会即可) 
答:优点:考虑了单个数据域的各类情况,避免盲目或随机的选取输入数据的不完整性和不稳定性,同时可有效控制测试设计的数量。 
缺点:对组合情况考虑不足,同时等价类划分基于等价类中的输入都能产生相同的效果,在很多情况下用例选择不当会产生问题(如边界)。


6.  边界值测试方法的优缺点。 
答:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 
不过边界值分析法与等价类划分法一样,没有考虑输入之间的组合情况,因此需要进一步结合其他测试用例设计方法。 



7.  等价类划分的原则(了解大概即可,关键看是否会使用)。 
答:等价类划分的原则如下: 
  在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. 
  在输入条件规定了 输入值的集合 或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类. 
  在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类. 
  在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类. 
  在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则). 
  在确知已划分的等 价类中各元素在程序处理 中的方式不同 的情况下,则 应再将该等价 类进一步的划分为更小的等价类. 



8.  性能测试:如何评价系统的极限性能? 
答:  基本点:并发度、响应时间、单位时间吞吐量、系统稳定性、多场景。 
加分点:新旧版本对比,性能瓶颈分析方法(雪崩、线性拐点等)。


 
9.  判断测试活动中止的条件 
答:从以下几个角度分析,包括:无新发生bug且严重性高的老bug已修复;bug收敛;某一级别
bug低于一定比例;时间耗尽;满足特定覆盖率。另外,可以说说在以前的项目测试是如何结束的。 



10.  常见测试模型? 
答:常见的软件测试模型包括V模型、W模型、H模型、X模型和前置模型。([注]:具体解释太长了,
见附件1的前几页。)


 

二 常见的测试用例设计方法都有哪些?   (请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。)

  1. 等价类划分

    等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.

   等价类划分可有两种不同的情况:有效等价类无效等价类.


  2. 边界值分析法

  边界值分析方法是对等价类划分方法的补充。大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

  使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.


  3. 错误推测法

  基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

  错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例.


  4. 因果图方法

  前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.


  5. 正交表分析法

  有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。


  6. 场景分析方法

  指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。

  您认为做好测试用例设计工作的关键是什么?

  白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果

  黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题


 三 详细的描述一个测试活动完整的过程

  1. 项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后sqa进入项目,开始进行统计和跟踪

  2. 开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。

  3. 测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。

  4. 测试用例完成后,测试和开发需要进行评审。

  5. 测试人员搭建环境

  6. 开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现bug后提交给bugzilla。

  7. 开发提交第二个版本,包括bug fix以及增加了部分功能,测试人员进行测试。

  8. 重复上面的工作,一般是3-4个版本后bug数量减少,达到出货的要求。

  9. 如果有客户反馈的问题,需要测试人员协助重现以及回归测试。


 四 以往是否曾经从事过性能测试工作?请尽可能的详细描述您以往的性能测试工作的完整过程

  曾经做过一套网管系统的性能测试,主要测试该软件在同时管理大量终端的情况下,在响应时间,cpu/磁盘/内存等参数是否满足要求。

  也曾经做过软交换系统的呼叫性能测试,主要是测试软交换系统在有大量呼叫的情况下,响应时间,呼叫成功率,cpu/磁盘/内存等参数是否满足设计要求。

  您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

  测试网管系统中,使用的mimic来模拟终端,能够大量的节省成本。

  测试软交换系统的时候,使用的prolab来模拟终端并发送呼叫软交换,他完成了同时数百人才能完成的摘机拨号工作,主要工作原理是产生一些符合要求的ip包并发送给软交换系统,同时对软交换系统的回应进行处理,决定下一步动作。


 五 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?

  主要是保障在大量用户的情况下,服务能正常使用。

  在您以往的工作中,一条软件缺陷(或者叫bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(bug)记录?

  1. 在传统的bugzilla中,bug描述应该包括以下的信息

  2. 和bug产生对应的软件版本

  3. 开发的接口人员

  4. bug的优先级

  5. bug的严重程度

  6. bug可能属于的模块,如果不能确认,可以用开发人员来判断

  7. bug标题,需要清晰的描述现象

  8. bug描述,需要尽量给出重新bug的步骤

  9. bug附件中能给出相关的日志和截图。

  高质量的bug记录就是指很容易理解的bug记录,所以,对于描述的要求高,能提供的信息多且准确,很好的帮助开发人员定位。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值