软件测试面试题

1.什么是软件测试?测试的目的?
答:为了发现程序中的错误而执行程序的过程。目的: 在最短的时间内找出尽可能多的缺陷。
2.什么是兼容性?
答:兼容性就是检查软件在不同操作系统、数据库、浏览器上是否可以正常运行。
3.软件评审一般有哪些人员参加?目的?
答:有客户、项目经理、发开人员、测试人员。目的:检查软件在未上线前是否存在缺陷,兼容性等问题,是否存在于与客户理解不一样的地方,同时看看是否还有需要改进的地方。
4.发现的缺陷越多,说明软件缺陷越多吗?
答:是的,如果发现一个缺陷,就会可能有多类似的缺陷,由于发开人员的习惯,一个地方有,另一个地方就会有相同的问题。
5.说一下缺陷测试报告的组成?
答:缺陷编号,缺陷标题,缺陷描述,缺陷优先级,缺陷的重要性,缺陷所属的模块,版本,缺陷的开发人员,输入数据,输出结果,缺陷分析。
6.所有的软件缺陷都能修复吗?
答:所有的软件缺陷要修复吗? 答:理论上是所有的缺陷都能修复,但是并不是所有的缺陷都要修复,一些对于使用软件没有影响的缺陷,可以不用修复,因为修复小的缺陷需要花费很多时间,项目上面可能因为时间问题而忽略这些小问题。
7.功能测试用例需要详细到什么程度才合格?
答:测试用例覆盖所有的测试点。
8.测试用例通常包括哪些内容?
答:用例编号、测试项目、测试标题、测试背景、优先级、预置条件、输入数据,输出结果,执行步骤、预期结果,实际结果,编写人,执行人,备注
9、测试项目是从什么时候开始的?为什么?
答:一般软件测试越早开展越好,从需求阶段就要测试,软件测试不仅对功能测试,还要对需求文档测试,越早发现bug越好,这样就会减少开发人员后续修改程序的次数,降低成本。如果软件开发拆差不多了才发现一个致命的错误,是要花费很多时间和人力进行修改的,要是一早就发现 的话就不会出现这样的问题。
10、软件测试活动的生命周期
答:指软件从进入测试到推出测试的过程中,所要经历的引入程序错误、通过测试发现错误和清除程序错误的过程。
Beta测试:Beta测试是从用户角度进行的测试,是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试,他是在开发者无法控制的软件环境下进行的软件现场应用。
11.软件的缺陷等级如何划分?
答:1致命的,造成系统或死机者应用程序崩溃,数据丢失,功能丧失等2严重的,功能或者特性没有实现,或部分功能丧失3一般的,虽然不影响系统的基本使用,但是没有很好的实现功能,没有达到预期结果。4微小的,小问题,对功能几乎没有影响,产品属性可以使用。
12.单元测试策略有哪些?并试着描述这些策略?
答:①自顶向下的单元测试: 从顶层调用的单元做成桩模块,对第二层测试,使用上面已测试的单元做驱动模块,依次类推,直到全部单元测试结束。②自底向上的单元测试:先对模块调用的最底层模块进行测试,模拟调用该模块的模块为驱动模块,其次,对上一层模块进行单元测试,用已经被测试过的模块做桩模块。以此类推,直到全部单元测试完成。③孤立测试的单元测试策略:无需考虑每个模块与其他模块手之间的关系,分别为每个模块单独设计桩模块和驱动模块,逐一完成所有单元模块的测试。
13、 什么是需求文档测试
答:主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现
14.什么是设计文档测试?
答:文档的设计是否符合需求,设计是否合理。
15、什么是α测试?
参考答案答:Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试
16、什么是软件质量
答:软件满足规定或潜在用户需求的能力。
17、什么是驱动模块?
答:驱动模块在大多数场合称为"主程序",它接收测试数据并将这些数据传递到被测试模块.单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据,为此写驱动驱动模块主要完成以下事情:1、接受测试输入;2、对输入进行判断;3、将输入传给被测单元,驱动被测单元执行;4、接受被测单元执行结果,并对结果进行判断;5、将判断结果作为用例执行结果输出测试报告。
18、什么是桩模块?
参考答案答:比如对函数A做单元测试时,被测的函数单元下还包括了一个函数B,为了更好的错误,定位错误,就要为函数B写桩,来模拟函数B的功能,保证其正确。
19、什么是白盒测试?
答:白盒测试(White-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
20、什么是静态测试?
答:通过运行程序测试软件称为动态测试.通过评审文档、阅读代码等方式测试软件称为静态测试
21、什么是单元测试
答:单元测试是对软件中的基本组成单位进行的测试
22、什么是集成测试
答:集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
23、什么是系统测试
答:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”
24、什么是验收测试
答:验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集
25、什么是回归测试?
答:回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。
26、白盒测试有哪几种方法?
答:白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。
27、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?(白盒与黑盒的区别)
答:1、黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。2 白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
28、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
答:大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。 接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。
29、针对缺陷采取怎样的管理措施?
答:1. 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。2. 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。3. 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。4. 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态, 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。 5. 为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。
30、单元测试、集成测试、系统测试的侧重点是什么?
答:单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。
31、设计用例的方法、依据有那些?
答:白盒测试用例设计有如下方法:基本路径测试\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试.这时候依据就是详细设计说明书及其代码结构黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法.依据是用户需求规格说明书,详细设计说明书。
32、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程
答:1) 测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,系统会自动通过Email通知项目组长或直接通知开发者。2) 经验证无误后,修改状态为已证实.待整个产品发布后,修改为关闭.3) 还有问题,重新开放,状态重新变为“New",并发邮件通知。4) 项目组长根据具体情况,重新reassigned分配给bug所属的开发者。5) 若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明)6) 开发者收到Email信息后,判断是否为自己的修改范围。7) 若不是,重新分配给项目组长或应该分配的开发者。8) 测试人员查询开发者已修改的bug,进行重新测试。
33、请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试
答:1、单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码,使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误,通常情况下是白盒的,对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试,及早的发现和解决不易显现的错误。2、集成测试:通过测试发现与模块接口有关的问题。目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构,应当避免一次性的集成(除非软件规模很小),而采用增量集成。自顶向下集成:模块集成的顺序是首先集成主模块,然后按照控制层次结构向下进行集成,隶属于主模块的模块按照深度优先或广度优先的方式集成到整个结构中去。自底向上集成:从原子模块开始来进行构造和测试,因为模块是自底向上集成的,进行时要求所有隶属于某个给顶层次的模块总是存在的,也不再有使用稳定测试桩的必要。3、系统测试:是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。4、回归测试:回归测试是指在发生修改之后重新测试先前的测试用例以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。5、验收测试:验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。验收测试包括Alpha测试和Beta测试。Alpha测试:是由用户在开发者的场所来进行的,在一个受控的环境中进行。Beta测试:由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场,用户记录测试中遇到的问题并报告给开发者,开发者对系统进行最后的修改,并开始准备发布最终的软件。
34、请你回答一下单元测试、集成测试、系统测试、验收测试、回归测试这几步中最重要的是哪一步
答:这些测试步骤分别在软件开发的不同阶段对软件进行测试,我认为对软件完整功能进行测试的系统测试很重要,因为此时单元测试和集成测试已完成,能够对软件所有功能进行功能测试,能够覆盖系统所有联合的部件,是针对整个产品系统进行的测试,能够验证系统是否满足了需求规格的定义,因此我认为系统测试很重要。
35、软件产品质量特性是什么?
功能性:适应性、准确性、互操作性、依从性、安全性。可靠性:成熟性、容错性、易恢复性。可使用性:易理解性、易学习性、易操作性。效率:时间特性、资源特性。可维护性:易分析性、易变更性、稳定性、易测试性。可移植性: 适应性、易安装性、遵循性、易替换性
36、因果图法测试用例的设计步骤:(1)确定软件规格(需求)中的原因和结果(2)确定原因和结果之间的逻辑关系(3)确定因果图中的各个约束(constraints)(4)画出因果图并转换为决策表(5)根据决策表设计测试用例

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值