软件测试工程师面试基础题Word下载.docx

上传人:b****6 文档编号:17205682 上传时间:2022-11-28 格式:DOCX 页数:21 大小:182.13KB
下载 相关 举报
软件测试工程师面试基础题Word下载.docx_第1页
第1页 / 共21页
软件测试工程师面试基础题Word下载.docx_第2页
第2页 / 共21页
软件测试工程师面试基础题Word下载.docx_第3页
第3页 / 共21页
软件测试工程师面试基础题Word下载.docx_第4页
第4页 / 共21页
软件测试工程师面试基础题Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

软件测试工程师面试基础题Word下载.docx

《软件测试工程师面试基础题Word下载.docx》由会员分享,可在线阅读,更多相关《软件测试工程师面试基础题Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

软件测试工程师面试基础题Word下载.docx

配置经理

CMO(配置管理员)

研发流程

•瀑布模型

应用的最为广泛的一种模型,也是最容易理解和掌握的模型,然而它的缺陷也是显而易见的。

•螺旋模型

综合了基本的瀑布式模型和演化/渐增原型方法。

•RUP流程

所有工作流在各个阶段都有体现。

•IPD流程

从整个产品角度出发,不仅仅针对研发。

5.测试阶段怎么划分?

1.测试计划阶段

2.测试设计阶段

3.测试实施阶段

4.测试执行阶段

6.什么是UT,IT,ST?

它们有什么区别?

UT:

单元测试

IT:

集成测试

ST:

 

区别:

测试方法

考察范围

评估标准

控制流测法

数据流测法

排错测法

分域测法

单元内部的数据

结构、逻辑控制

、异常处理等

逻辑覆盖率

集成测试

自顶向下增至测试方法

自底向上增至测试方法

混合增至测试方法

接口与接口数据

传递关系,

模块组合后的

整体功能

接口覆盖率

恢复测试方法

安全测试方法

强度测试方法

性能测试方法

容量测试方法

正确性测试方法

可靠性测试方法

兼容性测试方法

这个系统对需

求的符合度

测试用例对需求

规格的覆盖率

7.什么是回归测试?

为什么要回归测试?

回归测试的流程是什么?

回归测试的测试策略有哪些?

回归测试是指软件系统被修改或扩充(如系统功能增强或升级)后重新进行的测试,是为了保证对软件所做的修改没有引入新的错误而重新进行的测试。

回归测试目的是验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能。

流程:

1.在测试策略制定阶段,制定回归测试策略

2.确定需要回归测试的版本

3.测试版本发布后,按照回归测试策略来执行回归测试

4.回归测试通过,关闭缺陷跟踪单

5.回归测试不通过,缺陷跟踪单返回给开发人员,开发人员重新修改BUG.再次提交给测试人员回归测试

测试策略:

1.完全重复测试:

重新执行前期设计的用例,来确认问题修改的真确性和修改的扩散局部影响性

2.选择性重复测试:

1)覆盖修改法:

针对被修改的部分,选取或重新构造测试用例验证没有错误再次发生的选择方法

2)周边影响法:

该方法包括覆盖修改法,还要分析修改后对扩散的影响

3)指标达成法:

先确定一个达成的指标,基于这种要求选择一个最小的测试用例集合

8.画V&

V模型?

9.软件质量的定义是什么?

影响软件质量的因素是哪些?

ISO2000的八大原则是什么?

定义:

一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。

而质量就是实体基于这些特性满足需求的程度

因素:

流程、技术、组织。

一组活动(活动是否都是必须的;

活动角色之间的关系)

过程:

一组将输入转化为输出的相关联或相互作用的活动。

原则;

1.以顾客为中心:

组织依存于其顾客,因此,组织应理解顾客当前的和未来的需求,满足顾客要求并争取赶超顾客期望。

2.领导作用:

领导者将本组织的宗旨.方向和内部环境编统一起来,并创造使员工能够充参与实现组织目标的环境。

3.全员参与:

各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组织带来最大的收益。

4.过程方法:

将相关的资源和活动作为过程进行管理,可以更高效地得到期望的结果。

5.管理系统方法:

针对设定的目标,识别.理解并管理一个由相互关联的过程的过程所组成的体系,有助于提高组织的有效性和效率。

6.持续改进:

持续改进是组织的一个永恒的目标。

7.基于事实的决策方法:

对数据和信息的逻辑分析或直觉判断是有效决策的基础。

8.互利的供方关系:

通过互利的关系,增强组织及其供方创造价值的能力。

其中与软件产品产品优其相关有:

(一.三.六.七项)

10.CMM/CMMI是什么?

它的等级怎么划分?

有什么目的?

有什么作用?

(1)能力成熟度模型;

一种比较流行的软件质量管理体系

(2)划分:

初始级;

可重复级;

已定义级;

已管理级;

优化级;

(3)目的:

评估软件承包商能力

协助软件组织改进过程,提高过程能力

(4)作用:

业界的实施标准

业界的一种交流语言

是中国企业获取国际订单的门槛

是向下采购的保障

是降低软件声场风险的有力手段

11.描述软件质量模型中的内容?

功能性:

当软件在指定的条件下使用时,软件产品提供满足明确和隐含需求的功能的能力

1.适合性Suitability---软件产品为指定的任务和用户目标提供一组合适的功能的能力。

2.准确性Accuracy---软件产品提供具有所需精确度的正确或相符的结果或效果的能力。

3.互操作性interoperability---软件产品与一个或更多的规定系统进行交互的能力。

4.保密安全性security---软件产品保护信息和数据的能力,以使未授权的人员或系统不能阅读或修改这些信息和数据,而不拒绝授权人员或系统对它们的访问。

5.功能性的依从性functionalitycompliance---软件产品遵循与功能相关的标准、约定或法规以及类似规定的能力。

这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等。

可靠性:

在指定条件下使用时,软件产品维持规定的性能级别的能力

1.成熟性maturity---软件产品为避免由软件中错误而导致失效的能力。

2.容错性faulttolerance---在软件出现故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。

3.易恢复性recoverability---在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力

4.可靠性的依从性reliabilitycompliance---软件产品遵循与可靠性相关的标准、约定或法规的能力。

易用性:

在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力

1.易理解性understandability---软件产品使用户能理解软件是否合适以及如何能将软件用于特定的任务和使用环境的能力。

2.易学性learnability---软件产品使用户能学习其应用的能力。

3.易操作性operability---软件产品使用户能操作和控制它的能力。

4.吸引性attractiveness---软件产品吸引用户的能力

5.易用性的依从性usabilitycompliance---软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力。

这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等,例如企业内部的界面规范。

效率:

在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力

1.时间特性:

timebehavior---在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力。

即完成用户的某个功能需要的响应时间。

2.资源利用性:

resourceutilization---在规定条件下,软件产品执行其功能时,使用合适的资源数量和类别的能力。

3.效率依从性:

efficiencycompliance---软件产品遵循与效率相关的标准或约定的能力。

维护性:

软件产品可被修改的能力。

修改可能包括修正、改进软件对环境、需求、和功能规格说明变化的适应

1.易分析性analyzability---诊断软件产品中缺陷或失效原因的能力。

2.易改变性changeability---软件产品使指定的修改可以被实现的能力。

3.稳定性stability---软件产品避免由于软件修改而造成意外结果的能力。

4.易测试性testability---软件产品使已修改软件能被确认的能力。

5.维护性的依从性maintainabilitycompliance---软件产品遵循与维护性相关的标准或约定的能力。

可移植性:

软件产品从一种环境迁移到另一种环境可正常使用或满足用户需求的能力

1.适应性adaptability---软件产品无需采用有别于为考虑该软件的目的而准备的活动和手段就可以适应不同的环境的能力。

2.易安装性installability---软件产品在指定环境中被安装的能力。

3.共存性co-existence---软件产品在公共环境中同与其分享公共资源的其它独立软件共存的能力。

4.易替换性replaceability---软件产品在同样的环境下,替代另一个相同用途的指定软件产品的能力。

5.可移植性的依从性portabilitycompliance---软件产品遵循与可移植性相关的标准或约定能力。

12.测试的方法有哪些?

白盒测试、黑盒测试、灰盒测试、β测试,α测试、可移植性测试、冒烟测试等

13.什么是白盒测试?

白盒测试是根据被测试程序的内部结构设计测试用例的一类测试,有人也称它为透明盒或者玻璃盒测试,涉及到软件设计的细节。

比如单元测试一般采用白盒测试方法,并参考LLD(详细设计)

14.什么是黑盒测试?

黑盒测试又称功能测试、数据驱动测试或者基于规格说明的测试,被测试程序当作黑盒处理,无法了解其内部的构造。

比如系统测试一般采用黑盒测试方法,并参考SRS

15.什么是静态测试?

不运行被测试的软件系统,而是采用其他手段和技术对被测试软件进行检测的一种测试技术。

例如:

代码走读、文档评审、程序分析等都是静态测试的范畴。

常用技术有静态分析技术

16.什么是动态测试?

按照预先设计的数据和步骤去运行被测软件系统,从而对被测软件系统进行检测的一种测试技术。

常用技术有动态分析技术

17.什么是人工测试?

测试活动(如评审、测试设计、测试执行等)由人来完成,狭义上是指测试执行由人工完成,这是最基本的测试形式

18.什么是自动化测试?

一般是指通过计算机模拟人的测试行为,替代人的测试活动,狭义上是指测试执行由计算机来完成

19.逻辑覆盖关注的内容是哪些?

1.语句覆盖

2.判定覆盖

3.条件覆盖

4.判定—条件覆盖

5.路径覆盖

20.常见的黑盒测试方法有哪些?

1.等价类划分法

2.边界值分析法

3.因果图分析法

4.判定表法

5.正交试验法

6.状态迁移法

21.什么是同行评审?

同行评审:

(PeerReview)是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。

需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排了进度。

根据形式正规的程度分为:

a)正规检视

b)技术评审

c)走查

同行评审的对象可以是计划、需求文档、设计图、代码等

22.自动化测试有什么意义?

1.对程序新版本运行前一版本执行的测试,提高回归测试效率

2.可以运行更多更频繁的测试,比如冒烟测试

3.可以执行手工测试困难或不可能做的测试,比如大量的重复操作或者集成测试

4.更好地利用资源,比如测试仪器或者被测对象

5.测试具有一致性和可重复性,即自动化测试的步骤和结果是完全一样的

6.测试的复用性,即自动化测试脚本可以拆分开给其它测试脚本使用

7.可以更快地将软件推向市场,软件发布前进行高效的回归测试,减少软件发布的时间

8.增加软件信任度,通过自动化测试提高了测试效率,可把节约的时间拿出来做更多的测试

23.测试用例的八大要素是什么?

1.测试用例编号

2.测试项目

3.测试标题

4.重要级别

5.预置条件

6.输入

7.操作步骤

8.预期输出

24.什么是缺陷管理?

引入的原因有哪些?

是在软件生命周期中获取、管理、沟通任何变更请求的过程。

可以确保你的问题如需求或者缺陷被跟踪管理而不丢失

引入原因:

1.开发过程中缺乏有效沟通,或者没有沟通

2.软件负责度越来越高

3.编程中产生的错误

4.需求不断变更

5.项目进度的压力

6.不重视开发文档

7.软件开发工具本身隐藏的问题

25.缺陷的属性有哪些?

1.缺陷发现人;

2.缺陷发现时间;

3.缺陷状态;

4.缺陷严重程度;

5.缺陷所属版本;

6.缺陷修改日期

26.画缺陷管理流程图?

27.如何写缺陷跟踪单?

缺陷跟踪单遵循5W原则;

1.Correct(准确):

每个组成部分的描述准确,不会引起误解

2.Clear(清晰):

每个组成部分的描述清晰,易于理解

3.Concise(简洁):

只包含必不可少的信息,不包括任何多余的内容

4.Complete(完整):

包含复现该缺陷的完整步骤和其他本质信息

5.Consistent(一致):

按照一致的格式书写全部缺陷报告

28.什么是测试覆盖率?

覆盖率是用来度量测试完整性的一个手段。

覆盖率是测试技术有效性的一个度量。

覆盖率=(至少被执行一次的item数)/item的总数

29.写计算语句覆盖率、判定覆盖率、条件覆盖率、判定-条件覆盖率、路径覆盖率、指令覆盖率等的表达式?

语句覆盖率=(至少被执行一次的语句数量)/(可执行的语句总数)

判定覆盖率=(判定结果被评价的次数)/(判定结果的总数)

条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数)

分支条件覆盖率=(条件操作数值或判定结果至少被评价一次的数量)/(条件操作数值总数+判定结果总数)

路径覆盖率=(至少被执行到一次的路径数)/(总的路径数)

指令块覆盖=(至少被执行一次的指令块数量)/(系统中指令块总数)

30.什么是系统测试?

系统测试(SystemTesting)是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试活动

31.系统测试的目的是什么?

1.通过与系统的需求定义做比较,发现软件与系统定义不符合或与之矛盾的地方;

2.系统测试的测试用例应根据需求分析说明书来设计,并在世界使用环境下运行

32.系统测试的类型有哪些?

功能测试;

性能测试;

压力测试;

容量测试;

安全性测试;

GUI测试;

可用性测试;

安装测试;

配置测试;

异常测试(恢复性测试);

备份测试;

健壮性测试;

文档测试;

在线帮助测试;

网络测试;

稳定性测试

33.系统测试执行的活动有哪些?

Ø

系统测试预测试项执行

系统测试与测试报告写作

系统测试用例执行

系统测试缺陷记录、修复

系统测试日报写作

系统测试报告写作

系统测试缺陷的回归测试

34.什么是单元测试?

目的是什么?

单元测试是对软件基本组成单元进行的测试,如函数(function)或(procedure)或一个类的方法(method)

单元测试的目的在于发现个模块内部可能存在的各种错误,主要是基于白盒测试

1.验证代码是与设计相符合的

2.发现设计和需求中存在的错误

3.发现在编码过程中引入的错误

35.单元测试的关注点?

1.单元接口

2.局部数据结构

3.边界条件

4.独立路径

5.出错处理

36.什么是驱动?

什么是桩?

驱动单元(Driver):

所测函数的主程序,它接受测试数据,并把数据传送给所测试单元,最后在输出实测结果,当被测试单元能完成相关的功能时,也可以不要驱动单元

桩单元(Stub):

用来代替所测试单元调用的子单元

37.单元测试的测试策略是哪些?

各有什么优缺点?

孤立的测试策略:

优点:

该方法是最简单,最容易操作的,可以达到高的结构覆盖率,该方法是纯粹的单元测试

缺点:

桩函数和驱动函数工作量很大,效率低.

自顶向下的单元测试策略:

可以节省驱动函数的开发工作量,测试效率较高。

随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。

自底向上的单元测试策略:

可以节省桩函数的开发工作量,测试效率较高。

缺点;

不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产生很大影响。

38.什么是集成测试?

集成测试是在单元测试的基础上,将所有函数按照概要设计要求组装成为子系统或系统所进行的测试

集成测试的目的是确保各组件组合在一起后能够按既定意图写作运行,并确保增量的行为正确。

验证软件的组建对HLD的符合程度。

集成测试属于灰盒测试。

1.验证接口是否与设计相符合的

39.集成测试的关注点是什么?

单元间的接口:

在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;

全局数据结构是否有问题,会不会被一场修改;

集成后的功能

各个子功能组合起来,能否达到预期要求得父功能;

一个模块的功能是否会对另一个模块的功能产生不利的影响;

单个模块的误差积累起来,是否会放大,从而达到不可接受的程度

40.集成测试的测试策略是哪些?

大爆炸集成

1.大爆炸集成可以迅速完成集成测试,并且只要极少数的驱动和桩模块设计,它需要的测试用例也是最少的;

2.该方法比较简单、易行;

3.多个测试人员可以并行工作,对人力、物力资源利用率较高

1.这种一次性组装方式试图在辅助模块的协助下,在模块单元测试的基础上,将所测模块连接起来进行测试,但是由于程序中不可避免地存在模块间接口,全局数据结构等方面的问题,所以一次试运行成功的可能性并不很大;

2.在发现错误时,其问题定位和修改都较困难;

3.即使被测系统能够一次性集成,但还是会有许多接口错误很容易躲过测试而进入到系统测试范围内

自顶向下集成

1.自顶向下的集成方式在测试过程中较早地验证了主要的控制和判断点;

2.如果选择按深度方向组装的方式,可以首先实现和验证一个完整的软件功能;

3.功能可行性较早得到证实,还能够给开发者和用户带来成功的信心;

4.最多只需一个驱动,减少了驱动器开发的费用;

5.支持故障隔离

缺陷:

1.桩的开发和维护是本策略的最大成本;

2.底层组件行为的验证被推迟了;

3.随着底层组件的不断增加,整个系统越来越复杂,导致底层组件的测试不充分,尤其是那些被重用的组件

自底向上集成

1.允许对底层组件行为的早期验证,可以在任意一个叶子节点已经就绪的情况下进行集成测试;

2.在工作的最初可能会并行进行集成,在这一点上比使用自顶向下的策略效率高;

3.减少了桩的工作量,毕竟在集成测试中,桩的工作量远比驱动的工作量要大得多,但是为了模拟一些中断或异常,可能还是需要设计一定的桩

1.驱动的开发工作量也是很庞大的;

2.对高层的验证被推迟到了最后,设计上的错误不能被及时发现,尤其对那些控制结构在整个体系中非常关键

三明治集成

集合了自顶向下和自底向上两种策略的优点

中间层在被集成测试中不充分

基干集成

具有三明治集成的优点,更适合于大型复杂项目的集成

1.必须对系统的结果和相互依存性进行仔细的分析;

2.必须开发驱动和桩,并且由于被测系统的复杂性导致驱动和桩开发工作量的加大;

3.由于局部采用了大爆炸的策略,因此有些可能测试不充分

分层集成

优点

有大爆炸,自顶向下,自底向上,三明治的优点

缺点

有大爆炸,自顶向下,自底向上,三明治的缺点

基于功能集成

1.采用该方法,可以尽快的看到关键功能的实现,并验证关键功能的正确性;

2.由于该方法在验证某个消息处理时,可能同时加入多个组件,因此在进度上比自顶向下集成、自底向上集成或三明治集成要短

3.可以减少驱动的开发,原因与自顶向下的集成策略类似

1.对有些接口的测试不充分,丢失许多接口的错误;

2.可能会有较大的冗条测试

基于消息集成

1.采用该方法,可以尽快的看到关键消息处理的实现,并验证关键信息处理的正确性;

2.由于该方法在验证某个消息处理掉时候,可能会同时加入多个组件,因此在进度上不自底向上,自顶向下或三明治集成要短;

基于进度集成

1.具有比较高的并行度;

2.能够有效缩短项目开发的进度

1.可能最早拿到底层组件之间缺乏的整体性,只能进行独

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1