软件测试面试

问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。 首先,将问题提交到缺陷管理库里面进行备案然后,要获取判断的依据和标

问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。

首先,将问题提交到缺陷管理库里面进行备案然后,要获取判断的依据和标准:根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;根据用户的一般使用习惯,来确认是否是缺陷;与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

问:给你一个网站,你如何测试?

首先,查找需求说明、网站设计等相关文档,分析测试需求。

制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试

设计测试用例:功能性测试可以包括,但不限于以下几个方面:

链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。

界面测试可以包括但不限于一下几个方面:页面是否风格统一,美观页面布局是否合理,重点内容和热点内容是否突出控件是否正常使用对于必须但为安装的空间,是否提供自动下载并安装的功能文字检查

性能测试一般从以下两个方面考虑:压力测试;负载测试;

强度测试数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。

安全性测试:

1 基本的登录功能的检查

2 是否存在溢出错误,导致系统崩溃或者权限泄露

3 相关开发语言的常见安全性问题检查,例如 SQL 注入等。

4 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持兼容性测试,根据需求说明的内容,确定支持的平台组合,浏览器的兼容性;操作系统的兼容性;软件平台的兼容性

问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别? ?

300 个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。300 个用户在一个客户端上,需要更大的带宽。IP 地址的问题,可能需要使用 IP Spoof 来绕过服务器对于单一 IP 地址最大连接数的限制。所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

软件生存周期及其模型是什么?

软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"

什么是软件测试?软件测试的目的与原则

使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

软件测试的目的:

测试是程序的执行过程,目的在于发现错误一个成功的测试用例在于发现至今未发现的错误一个成功的测试是发现了至今未发现的错误的测试确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。确保产品满足性能和效率的要求确保产品是健壮的和适应用户环境的

软件测试的原则:

软件测试应尽早执行,并贯穿于整个软件生命周期软件测试应追溯需求测试应由第三方来构造穷举测试是不可能的,要遵循 Good-enough 原则必须确定预期输出(或结果)必须彻底检查每个测试结充分注意测试中的群集现象

缺陷的二八定理严格执行测试计划,排除测试的随意性注意合法合理的输入,也要注意非法的非预期的输入检查程序是否做了不该做的测试应从“小规模”开始,逐步转向“大规模”反复使用同样的测试会使软件具有抵抗力关注缺陷的修复

软件配置管理的作用?软件配置包括什么?

软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,贯穿整个软件生命周期,同时对软件开发过程的宏观管理即项目管理也有重要的支持作用。一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。

软件配置包括如下内容:

配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计

什么是软件质量?
软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。

目前主要的测试用例设计方法是什么?

白盒测试:逻辑覆盖循环覆盖基本路径覆盖

黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、场景法

软件产品质量特性是什么? ?
功能性:适应性、准确性、互操作性、依从性、安全性。
可靠性:成熟性、容错性、以恢复性。
可使用性:易理解性、易学习性、易操作性。
效率:时间特性、资源特性。
可维护性:易分析性、易变更性、稳定性、易测试性。
可移植性: 适应性、易安装性、遵循性、易替换性。

软件测试的策略是什么? ?
软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束
而规定的软件测试的原则、方式、方法的集合。

软件测试分为几个 阶段 各阶段的测试策略和要求是什么? ?
软件测试按阶段划分可以分为单元测试、集成测试、系统测试和<验收测试>
单元测试测试策略:
自顶向下的单元测试策略
总结:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。
自底向上的单元测试策略
总结:比较合理的单元测试策略,但测试周期较长。
孤立单元测试策略
总结:最好的单元测试策略。
系统测试的测试策略
数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容
量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;
可用性测试;版本验证测试;文档测试

测试人员在软件开发过程中的任务是什么?

1、寻找 Bug;

2、避免软件开发过程中的缺陷;

3、衡量软件的品质;
4、关注用户的需求。
总的目标是:确保软件的质量。
在您以往的工作中,一条软件缺陷(或者叫 Bug)记录都包含了哪些内容?如何提交高质量
的软件缺陷(Bug)记录?
一条 Bug 记录最基本应包含:编号、Bug 所属模块、Bug 描述、Bug 级别、发现日期、发现
人、修改日期、修改人、修改方法、回归结果等等;

要有效的发现 Bug 需参考需求以及详细
设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认
肯定,然后再向外发布如此才能提高提交 Bug 的质量。
黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
黑盒测试的优点有:
比较简单,不需要了解程序内部的代码及实现;
与软件的内部实现无关;
从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
在做软件自动化测试时较为方便。
黑盒测试的缺点有:
不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;
自动化测试的复用性较低。

白盒测试的优点有:
帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点有:
程序运行会有很多不同的路径,不可能测试所有的运行路径;
测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一
些功能需求;
系统庞大时,测试开销会非常大。
如何测试一个 纸杯?
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)
放 24 小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?

包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试
交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,
可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对
测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划
测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。

在您以往的工作中,一条软件缺陷(或者叫 Bug )记录都包含了哪些内容?如何提交高
质量的软件缺陷( Bug )记录?
在传统的 BugZilla 中,BUG 描述应该包括以下的信息
和 BUG 产生对应的软件版本和模块
开发的接口人员
BUG 的优先级
BUG 的严重程度
BUG 可能属于的模块,如果不能确认,可以用开发人员来判断
BUG 标题,需要清晰的描述现象
BUG 描述,需要尽量给出重新 Bug 的步骤
BUG 附件中能给出相关的日志和截图。
高质量的 BUG 记录就是指很容易理解的 BUG 记录,所以,对于描述的要求高,能提供的信息
多且准确,很好的帮助开发人员定位,因此提交高质量的软件缺陷记录需要注意对 BUG 记录
的描述质量多且准确。

BUG 管理工具的跟踪过程用 BugZilla 为例子

测试人员发现了 BUG,提交到 Bugzilla 中,状态为 new,

BUG 的接受者为开发接口人员开发接口将 BUG 分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG,

如果是本人的 BUG,则设置为接收;

如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;

如果认为不是问题,则需要大家讨论并确认后,拒绝这个 BUG,然后测试人员关闭此问题。如果开发人员接受了 BUG,并修改好以后,将 BUG 状态修改为已修复,并告知测试在哪个版本中可以测试。

测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。

四、您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?
维持测试人员同开发团队中其他成员 良好的人际关系的关键是什么?
尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过 Email 等非及时沟通工具的
话,强调必须对特性的理解深刻以及能表达清楚。
运用一些测试管理工具如 TestDirector 进行管理也是较有效的方法,同时要注意在
TestDirector 中对 BUG 有准确的描述。

在团队中建立测试人员与开发人员良好沟通中注意以下几点:
一真诚
二是团队精神
三是在专业上有共同语言
四是要对事不对人,工作至上
当然也可以通过直接指出一些小问题,而不是进入 BUG Tracking System 来增加对方的好感。

你自认为测试的优势在哪里?
该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:
有韧性
有耐心
做事有条理性
喜欢面对挑战
有信心做好每一件事情
较强的沟通能力
从以前的经理处都得到了很好的评价表明我做的很好
集成测试通常都有那些策 略?
1、大爆炸集成
2、自顶向下集成
3、自底向上集成
4、三明治集成适应于大部分软件开发项目
5、基干集成
6、分层集成
7、基于功能的集成
8、基于消息的集成
9、基于风险的集成
10、基于进度的集成

常用(Linux 的常用命令

答:ls pwd mkdir rmdir rm cp mv cd ps ping tail more echo adduser passwd logout exit,

函数被限制在声明它的模块的本地范围内使用
引用与指针有什么区别?
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。

软件验收测试包括 ___ 、 ___ 、 ____ 三种类型。

软件验收测试包括正式验收测试、alpha 测试、beta 测试三种测试。
系统测试的策略有 ____________________________等 等 15 种方法。
系统测试的策略有很多种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、
配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可
用性测试。
设计系统测试计划需要参考的项目文档有 ___ 、 ___ 和 ____ 。
设计系统测试计划需要参考的项目文档有软件测试计划、软件需求工件、和迭代计划。
通过画因果图来写测试用例的步骤为 ___ 、 ___ 、 ___ 、 ___ 及把因果图转换为状态图共五
个步骤。 利用因果图生成测试用例的基本步骤是:
§ 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结
果(即输出条件),并给每个原因和结果赋予一个标识符。
§ 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么
关系? 根据这些关系,画出因果图。
§ 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。
为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 § 把因果图转换成判
定表。
§ 把判定表的每一列拿出来作为依据,设计测试用例。

什么是白盒测试?什么是黑盒测试? ? 什么是回归测试? ?
答:白盒测试是测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序
中的每条通路是否按照预定要求正确工作.它主要的针对被测程序的源代码,测试着可以完
全不考虑程序的功能.
白盒测试流程:详细设计-->源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例
-->被测程序-->执行路径-->覆盖情况分析 .
黑盒测试:(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一
个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品
的内部结构和处理过程。
回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回
归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。错
误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,
对相关修改的部分进行测试的方法。
设计用例的方法:
在测试的不同阶段运用不用的测试方法设计用例的方法依据不同:
白盒测试用例设计有如下方法:逻辑覆盖、循环覆盖和基本路径覆盖

黑盒测试用例设计方法:等价类划分、边界值分析、错误猜测、因果图、状态图、测试大纲、
场景法、正交策略表。
一个测试工程师应具备那些素质?
1、责任心
2、沟通能力
3、团队合作精神
4、耐心、细心、信心
5、时时保持怀疑态度,并且有缺陷预防的意识
6、具备一定的编程经验

问题九:你对我们公司了解有多少?

建议从招聘广告上多了解信息,同时到应聘公司的网站上去尽可能多的了解这个公司的情

况,以便回答好这类问题。
一套完整的测试应该由哪些阶段组成?
可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验
收测试

测试用例通常包括那些内容

版本、编号、项目、设计人员、设计日期、输入、预期输出、

软件测试用例的基本要素包括:测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。

 

在实际项目中你是如何做测试计划
答案:
1.对客户提供的或需求分析人员编写的用户需求文档或需求规格说明书进行分析,提炼出测试要点;

 

2.根据测试要点编写测试用例。

 

3.由评审组对测试用例进行评审--修改--再次评审--初步定稿

 

4.执行测试

 

4.1 按照测试用例对系统进行功能验证及客户的需求验证

 

4.2 将测试过程中产生的Bug录入缺陷管理系统

 

4.3 新版本发布后,对本次版本新增加的功能以及开发人员修正的Bug进行回归测试

 

4.4 根据项目需要提交测试报告。

 

您可能有感兴趣的文章
软件测试(理论基础)

什么是软件测试,软件测试究竟是做什么的

软件测试基础知识整理

软件测试概念及分类整理汇总

软件测试步骤详解