【测试面试】经典测试面试题(转)

转自:http://www.javashuo.com/article/p-ccmwwvih-bu.htmlhtml

1、问:你在测试中发现了一个bug,可是开发经理认为这不是一个bug,你应该怎样解决?程序员

首先,将问题提交到缺陷管理库里面进行备案。面试

而后,要获取判断的依据和标准:数据库

  • 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
  • 若是没有文档依据,能够根据相似软件的通常特性来讲明是否存在不一致的地方,来确认是不是缺陷;
  • 根据用户的通常使用习惯,来确认是不是缺陷;
  • 与设计人员、开发人员和客户表明等相关人员探讨,确认是不是缺陷;

合理的论述,向测试经理说明本身的判断的理由,注意客观、严谨,不参杂我的情绪。编程

等待测试经理作出最终决定,若是仍然存在争议,能够经过公司政策所提供的渠道,向上级反映,并有上级作出决定。windows

 

2、问:给你一个网站,你如何测试?浏览器

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

制定测试计划,肯定测试范围和测试策略,通常包括如下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试服务器

设计测试用例:网络

功能性测试能够包括,但不限于如下几个方面:

  • 连接测试。连接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。
  • 提交功能的测试。
  • 多媒体元素是否能够正确加载和显示。
  • 多语言支持是否可以正确显示选择的语言等。

界面测试能够包括但不限于一下几个方面:

  • 页面是否风格统一,美观
  • 页面布局是否合理,重点内容和热点内容是否突出
  • 控件是否正常使用
  • 对于必须但未安装的控件,是否提供自动下载并安装的功能
  • 文字检查

性能测试通常从如下两个方面考虑:

压力测试;负载测试;强度测试

数据库测试要具体决定是否须要开展。数据库通常须要考虑连结性,对数据的存取操做,数据内容的验证等方面。

安全性测试

  • 基本的登陆功能的检查
  • 是否存在溢出错误,致使系统崩溃或者权限泄露
  • 相关开发语言的常见安全性问题检查,例如SQL注入等
  • 若是须要高级的安全性测试,肯定得到专业安全公司的帮助,外包测试,或者获取支持

兼容性测试,根据需求说明的内容,肯定支持的平台组合:

  • 浏览器的兼容性;
  • 操做系统的兼容性;
  • 软件平台的兼容性;
  • 数据库的兼容性

开展测试,并记录缺陷。合理的安排调整测试进度,提早获取测试所需的资源,创建管理体系(例如,需求变动、风险、配置、测试文档、缺陷报告、人力资源等内容)。

按期评审,对测试进行评估和总结,调整测试的内容。

 

3、在搜索引擎中输入汉字就能够解析到对应的域名,请问如何用LoadRunner进行测试

  • 创建测试计划,肯定测试标准和测试范围
  • 设计典型场景的测试用例,覆盖经常使用业务流程和不经常使用的业务流程等
  • 根据测试用例,开发自动测试脚本和场景:

录制测试脚本:新建一个脚本(Web/HTML协议);点击录制按钮,在弹出的对话框的URL中输入”about:blank”;在打开的浏览器中进行正常操做流程后,结束录制;调试脚本并保存,可能要注意到字符集的关联。

设置测试场景:针对性能设置测试场景,主要判断在正常状况下,系统的平均事务响应时间是否达标;针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃;执行测试,获取测试结果,分析测试结果

 

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

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

5、试述软件的概念和特色?软件复用的含义?构件包括哪些?

软件是计算机系统中与硬件相互依存的另外一部分,与计算机系统操做有关的计算机程序、规程、规则,以及可能有的文件、文档及数据

软件复用(SoftWare Reuse)是将已有软件的各类有关知识用于创建新的软件,以缩减软件开发和维护的花费。软件复用是提升软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。

能够被复用的软件成分通常称做可复用构件

 

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

软件生存周期(Software life cycle)又称为软件生命期,生存期。是指从造成开发软件概念起,所开发的软件使用之后,知道失去使用价值消亡为止的整个过程。通常来讲,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每一个时期又划分为若干个阶段。每一个阶段有明确的任务。

周期模型(典型的几种):

  • 瀑布模型
  • 快速原型模型:快速原型模型容许在需求分析阶段对软件的需求进行初步而非彻底的分析和定义,快速设计开发出软件系统的原型,该原型向用户展现待开发软件的所有或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意承认以后,进行软件的完整实现及测试、维护。
  • 迭代模型:迭代包括产生产品发布(稳定、可执行的产品版本)的所有开发活动和要使用该发布必需的全部其余外围元素。在某种程度上,开发迭代是一次 完整地通过全部工做流程的过程:需求分析、设计、实施和测试工做流程。实质上,它相似小型的瀑布式项目。RUP认为,全部的阶段均可以细分为迭代。每一次 的迭代都会产生一个能够发布的产品,这个产品是最终产品的一个子集。

生命周期阶段:

  • 软件计划与可行性分析
  • 需求分析
  • 软件设计
  • 编码
  • 软件测试
  • 运行与维护

 

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

在规定的条件下对程序进行操做,以发现程序错误,衡量软件质量,并对其是否能知足设计要求进行评估的过程。

软件测试的目的:

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

软件测试的原则:

  • 测试用例中一个必须部分是对预期输出或接过进行定义
  • 程序员应避免测试本身编写的程序
  • 编写软件的组织不该当测试本身编写的软件
  • 应当完全检查每一个测试的执行结果
  • 测试用例的编写不只应当根据有效和预料到的输入状况,并且也应当根据无效和未预料到的输入状况
  • 检擦程序是否“未作其应该作的”仅是测试的一半,测试的另外一半是检查程序是否“作了其不该该作的”
  • 应避免测试用例用后即弃,除非软件自己就是个一次性的软件
  • 计划测试工做时不该默许假定不会发现错误
  • 程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比
  • 软件测试是一项极富创造性,极具智力的挑战性的工做

8、软件配置管理的做用?软件配置包括什么?

软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件创建时变动是不可避免的,而变动加重了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变动、控制变动、确保变动正确实现并向其余有关人员报告变动。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提升生产效率

软件配置包括以下内容:配置项识别、工做空间管理、版本控制、变动控制、状态报告、配置审计

 

9、什么是软件质量?

归纳地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述 的开发标准、以及全部专业开发的软件都应具备的隐含特征的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。

 

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

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

黑盒测试:边界值分析法、等价类划分、错误猜想法、因果图法、状态图法、测试大纲法、随机测试、场景法

 

11、软件的安全性应从哪几个方面去测试?

软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不一样测试策略也不一样。

  • 用户认证安全的测试要考虑问题: 明确区分系统中不一样用户权限 、系统中会不会出现用户冲突 、系统会不会因用户的权限的改变形成混乱 、用户登录密码是不是可见、可复制 、是否能够经过绝对途径登录系统(拷贝用户登录后的连接直接进入系统)、用户退出系统后是否删除了全部鉴权标记,是否能够使用后退键而不经过输入口令进入 系统 、系统网络安全的测试要考虑问题 、测试采起的防御措施是否正确装配好,有关系统的补丁是否打上 、模拟非受权攻击,看防御系统是否坚固 、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,如今最经常使用的是 NBSI 系列和 IPhacker IP ) 、采用各类木马检查工具检查系统木马状况 、采用各类防外挂工具检查系统各组程序的外挂漏洞
  • 数据库安全考虑问题: 系统数据是否机密(好比对银行系统,这一点就特别重要,通常的网站就没有过高要求)、系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据 的不完整,对于这个系统的功能实现有了障碍) 、系统数据可管理性 、系统数据的独立性 、系统数据可备份和恢复能力(数据备份是否完整,能否恢复,恢复是否能够完整)

 

12、什么是测试用例 什么是测试脚本 二者的关系是什么?

为实施测试而向被测试系统提供的输入数据、操做或各类环境设置以及指望结果的一个特定的集合。

测试脚本是为了进行自动化测试而编写的脚本。

测试脚本的编写必须对应相应的测试用例

 

13、简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

  • 静态测试是不运行程序自己而寻找程序代码中可能存在的错误或评估程序代码的过程。  
  • 动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差别,断定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
  • 黑盒测试通常用来确认软件功能的正确性和可操做性,目的是检测软件的各个功能是否能得以实现,把被测试的程序看成一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的状况下,依靠软件规格说明书来肯定测试用例和推断测试结果的正确性。
  • 白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员经过阅读程序代码或者经过使用开发工具中的单步调试来判断软件的质量,通常黑盒测试由项目经理在程序员开发中来实现。
  • α测试是由一个用户在开发环境下进行的测试,也能够是公司内部的用户在模拟实际操做环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
  • β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者一般不在测试现场,Beta测试不能由程序员或测试员完成。

 

14、软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?

SQA由一套软件工程过程和方法组成,以保证(软件的)质量。SQA贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变动管理、配置管理、版本管理和软件测试。

软件质量保证(SQA-Software Quality Assurance)是创建一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法可以正确地被全部项目所采用。软件质量保证的目的是使软件过程对于管理人员来讲是可见的。它经过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一块儿参与创建计划、标准和过程。这些将使软件项目知足机构方针的要求。

 

15、软件产品质量特性是什么?

功能性:适应性、准确性、互操做性、依从性、安全性。

可靠性:成熟性、容错性、易恢复性。

可以使用性:易理解性、易学习性、易操做性。

效率:时间特性、资源特性。

可维护性:易分析性、易变动性、稳定性、易测试性。

可移植性: 适应性、易安装性、遵循性、易替换性

 

16、软件测试的策略是什么?

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

 

17、软件测试分为几个阶段 各阶段的测试策略和要求是什么?

和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:

  • 单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工做,一般由开发人员进行。
  • 集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。因为在产品提交到测试部门前,产品开发小组都要进行联合调试,所以在大部分企业中集成测试是由开发人员来完成的。
  • 系统测试:系统测试是在集成测试经过后进行的,目的是充分运行系统,验证各子系统是否都能正常工做并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
  • 验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目能够和客户共同进行,对于产品来讲就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤为要进行文档测试。

单元测试测试策略:

自顶向下的单元测试策略:比孤立单元测试的成本高不少,不是单元测试的一个好的选择。

自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。

孤立单元测试策略:最好的单元测试策略。

集成测试的测试策略:

大爆炸集成:适应于一个维护型项目或被测试系统较小

自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或常常可能被修改;产口控制组件具备较大的技术风险,须要尽早被验证;但愿尽早能看到产品的系统功能行为。

自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

基于进度的集成
     优势:具备较高的并行度;可以有效缩短项目的开发进度。
     缺点:桩和驱动工做量较大;有些接口测试不充分;有些测试重复和浪费。

系统测试的测试策略:

数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试

 

18、软件测试各个阶段一般完成什么工做?各个阶段的结果文件是什么?包括什么内容?

单元测试阶段:各独立单元模块在与系统地其余部分相隔离的状况下进行测试,单元测试针对每个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。

集成测试阶段:集成测试是在单元测试的基础上,测试在将全部的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程当中各部分工做是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。

系统测试阶段:将经过确认测试的软件,做为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其余系统元素结合在一块儿,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段须要提交测试总结和缺陷报告。

 

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

一、尽量早的找出系统中的Bug;
二、避免软件开发过程当中缺陷的出现;
三、衡量软件的品质,保证系统的质量;
四、关注用户的需求,并保证系统符合用户需求。
总的目标是:确保软件的质量。

 

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

一条Bug记录最基本应包含:

bug编号;
bug严重级别,优先级;
bug产生的模块;
首先要有bug摘要,阐述bug大致的内容;
bug对应的版本;
bug详细现象描述,包括一些截图、录像....等等;
bug出现时的测试环境,产生的条件即对应操做步骤;

高质量的Bug记录:
1) 通用UI要统1、准确
缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。
2) 尽可能使用业界惯用的表达术语和表达方法
使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。
3) 每条缺陷报告只包括一个缺陷
每条缺陷报告只包括一个缺陷,能够使缺陷修正者迅速定位一个缺陷,集中精力每次只修正一个缺陷。校验者每次只校验一个缺陷是否已经正确修正。
4) 不可重现的缺陷也要报告
首先缺陷报告必须展现重现缺陷的能力。不可重现的缺陷要尽力重现,若尽力以后仍不能重现,仍然要报告此缺陷,但在报告中要注明没法再现,缺陷出现的频率。
5) 明确指明缺陷类型
根据缺陷的现象,总结判断缺陷的类型。例如,即功能缺陷、界面缺陷、数据缺陷,合理化建议这是最多见的缺陷或缺陷类型,其余形式的缺陷或缺陷也从属于其中某种形式。
6) 明确指明缺陷严重等级和优先等级
时刻明确严重等级和优先等级之间的差异。高严重问题可能不值得解决,小装饰性问题可能被看成高优先级。
7) 描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置
描述要准确反映缺陷的本质内容,简短明了。为了便于在软件缺陷管理数据库中寻找制定的测试缺陷,包含缺陷发生时的用户界面(UI)是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。
8) 短行之间使用自动数字序号,使用相同的字体、字号、行间距
短行之间使用自动数字序号,使用相同的字体、字号、行间距,能够保证各条记录格式一致,作到规范专业。
9) 每个步骤尽可能只记录一个操做
保证简洁、条理井然,容易重复操做步骤。
10) 确认步骤完整,准确,简短
保证快速准确的重复缺陷,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。
11) 根据缺陷,可选择是否进行图象捕捉
为了直观的观察缺陷或缺陷现象,一般须要附加缺陷或缺陷出现的界面,以图片的形式做为附件附着在记录的“附件”部分。为了节省空间,又能真实反映缺陷或缺陷本质,能够捕捉缺陷或缺陷产生时的全屏幕,活动窗口和局部区域。为了迅速定位、修正缺陷或缺陷位置,一般要求附加中文对照图。
 附加必要的特殊文档和我的建议和注解
若是打开某个特殊的文档而产生的缺陷或缺陷,则必须附加该文档,从而能够迅速再现缺陷或缺陷。有时,为了使缺陷或缺陷修正者进一步明确缺陷或缺陷的表现,能够附加我的的修改建议或注解。
12) 检查拼写和语法缺陷
在提交每条缺陷或缺陷以前,检查拼写和语法,确保内容正确,正确的描述缺陷。
13) 尽可能使用短语和短句,避免复杂句型句式
软件缺陷管理数据库的目的是便于定位缺陷,所以,要求客观的描述操做步骤,不须要修饰性的词汇和复杂的句型,加强可读性。
以上归纳了报告测试缺陷的规范要求,随着软件的测试要求不一样,测试者通过长期测试,积累了相应的测试经验,将会逐渐养成良好的专业习惯,不断补充新的规范书写要求。此外,常常阅读、学习其余测试工程师的测试缺陷报告,结合本身之前的测试缺陷报告进行对比和思考,能够不断提升技巧。
14) 缺陷描述内容
缺陷描述的内容能够包含缺陷操做步骤,实际结果和指望结果。操做步骤能够方便开发人员再现缺陷进行修正,有些开发的再现缺陷能力不好,虽然他明白你所指的缺陷,但就是没法再现特别是对系统不熟悉的新加入开发人员,介绍步骤能够方便他们再现。实际结果可让开发明白错误是什么,指望结果可让开发了解正确的结果应该是如何。

 

21、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优势和缺点!      

黑盒测试的优势有:比较简单,不须要了解程序内部的代码及实现;与软件的内部实现无关;  从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,因此也能知道软件实现了文档中的哪些功能;在作软件自动化测试时较为方便。

黑盒测试的缺点有:不可能覆盖全部的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。

白盒测试的优势有:帮助软件测试人员增大代码的覆盖率,提升代码的质量,发现代码中隐    藏的问题。

白盒测试的缺点有:程序运行会有不少不一样的路径,不可能测试全部的运行路径;测试基于代码,只能测试开发人员作的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会很是大。

 

22、如何测试一个纸杯?

功能度:用水杯装水看漏不漏;水能不能被喝到

安全性:杯子有没有毒或细菌

可靠性:杯子从不一样高度落下的损坏程度

可移植性:杯子在不一样的地方、温度等环境下是否均可以正常使用

兼容性:杯子是否可以容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和状况;盛上汽油(案例二)放24小时检查泄漏时间和状况等

压力测试:用根针并在针上面不断加剧量,看压强多大时会穿透

 

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

软件测试计划是指导测试过程的纲领性文件:

  • 领导可以根据测试计划进行宏观调控,进行相应资源配置等
  • 测试人员可以了解整个项目测试状况以及项目测试不一样阶段的所要进行的工做等
  • 便于其余人员了解测试人员的工做内容,进行有关配合工做

包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤为是测试管理人员,能够明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程当中的各类变动。

测试计划编写6要素(5W1H):

  • why——为何要进行这些测试;
  • what—测试哪些方面,不一样阶段的工做内容;
  • when—测试不一样阶段的起止时间;
  • where—相应文档,缺陷的存放位置, 测试环境等;
  • who—项目有关人员组成,安排哪些测试人员进行测试;
  • how—如何去作,使用哪些 测试工具以及测试方法进行测试

测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。因此其中最重要的是测试测试策略和测试方法(最好是能先评审)。

 

23、黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来讲明这些方法在测试用例设计工做中的应用。

1)等价类划分: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的表明值就等于对这一类其它值的测试.所以,能够把所有输入数据合理划分为若干等价类,在每个等价类中取一个数据做为测试的输入条件,就能够用少许表明性的测试数据.取得较好的测试结果.等价类划分可有两种不一样的状况:有效等价类和无效等价类.

2)边界值分析法:是对等价类划分方法的补充。测试工做经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.所以针对各类边界状况设计测试用例,能够查出更多的错误.

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

3)错误猜想法:基于经验和直觉推测程序中全部可能存在的各类错误, 从而有针对性的设计测试用例的方法.

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

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

5)正交表分析法:可能由于大量的参数的组合而引发测试用例数量上的激增,同时,这些测试用例并无明显的优先级上的差距,而测试人员又没法完成这么多数量的测试,就能够经过正交表来进行缩减一些用例,从而达到尽可能少的用例覆盖尽可能大的范围的可能性。

6)场景分析方法:指根据用户场景来模拟用户的操做步骤,这个比较相似因果图,可是可能执行的深度和可行性更好。 

7)状态图法:经过输入条件和系统需求说明获得被测系统的全部状态,经过输入条件和状态得出输出条件;经过输入条件、输出条件和状态得出被测系统的测试用例。

8)大纲法:大纲法是一种着眼于需求的方法,为了列出各类测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每一个叶子结点之间存在惟一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试全部功能所需测试用例的大体数量。

 

24、详细的描述一个测试活动完整的过程。(供参考,本答案主要是瀑布模型的作法)

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

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

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

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

测试人员搭建环境

开发人员提交第一个版本,可能存在未完成功能,须要说明。测试人员进行测试,发现BUG后提交给BugZilla。

开发提交第二个版本,包括Bug Fix以及增长了部分功能,测试人员进行测试。

重复上面的工做,通常是3-4个版本后BUG数量减小,达到出货的要求。

若是有客户反馈的问题,须要测试人员协助重现并从新测试。

 

26、BUG管理工具的跟踪过程(用BugZilla为例子)

测试人员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接口人员

开发接口将BUG分配给相关的模块的开发人员,状态修改成已分配,开发人员和测试确认BUG,若是是本人的BUG,则设置为接收;若是是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;若是认为不是问题,则须要你们讨论并确认后,拒绝这个BUG,而后测试人员关闭此问题。

若是开发人员接受了BUG,并修改好之后,将BUG状态修改成已修复,并告知测试在哪一个版本中能够测试。

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

 

27、您认为在测试人员同开发人员的沟经过程中,如何提升沟通的效率和改善沟通的效果?维持测试人员同开发团队中其余成员良好的人际关系的关键是什么?

尽可能面对面的沟通,其次是能直接经过电话沟通,若是只能经过Email等非及时沟通工具的话,强调必须对特性的理解深入以及能表达清楚。

运用一些测试管理工具如TestDirector进行管理也是较有效的方法,同时要注意在TestDirector中对BUG有准确的描述。

在团队中创建测试人员与开发人员良好沟通中注意如下几点:

一真诚、二是团队精神、三是在专业上有共同语言、四是要对事不对人,工做至上

固然也能够经过直接指出一些小问题,而不是进入BUG Tracking System来增长对方的好感。

 

28、你对测试最大的兴趣在哪里?为何?

回答这个面试题,没有固定统一的答案,但多是许多企业都会问到的。提供如下答案供考:

最大的兴趣,感受这是一个有挑战性的工做;

测试是一个经验行业,工做越久越能感受到作好测试的难度和乐趣

经过本身的工做,能使软件产品愈来愈完善,从中体会到乐趣

回答此类问题注意如下几个方面:

尽量的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,而且但愿经过测试提高本身的数据库掌握能力。

代表你作测试的目的是为了提高能力,也是为了更好的作好测试;提高能力不是为了之后转开发或其余的,除非用人企业有这样的安排。

不要过多的表达你的兴趣在招聘企业的范畴这外。好比招聘企业是作财务软件的,但是你表现出来的是对游戏软件的兴趣;或招聘是作JAVA开发的,而你的兴趣是在C类语言程序的开发。

 

29、你自认为测试的优点在哪里?

该面试也没有固定不变的答案,但可参考如下几点,并结合自身特色:

有韧性、有耐心、作事有条理性、喜欢面对挑战、有信心作好每一件事情、较强的沟通能力、从之前的经理处都获得了很好的评价代表我作的很好

 

33、简述你在之前的工做中作过哪些事情,比较熟悉什么。参考答案以下。

我过去的主要工做是系统测试和自动化测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进行测试。性能测试中,主要是进行的压力测试,在各个不一样数量请求的状况下,获取系统响应时间以及系统资源消耗状况。自动化测试主要是经过本身写脚本以及一些第三方工具的结合来测试软交换的特性测试。

在测试中,我感受对用户需求的彻底准确的理解很是重要。另外,就是对BUG的管理,要以需求为依据,并非全部BUG均须要修改。

测试工做须要耐心和细致,由于在新版本中,虽然多数原来发现的BUG获得了修复,但原来正确的功能也可能变得不正确。所以要注重迭代测试和回归测试。

 

34、在C/C++中static有什么用途?(请至少说明两种)
1)在函数体,一个被声明为静态的变量在这一函数被调用过程当中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量能够被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用

 

35、引用与指针有什么区别?
    1) 引用必须被初始化,指针没必要。
    2) 引用初始化之后不能被改变,指针能够改变所指的对象。
    3) 不存在指向空值的引用,可是存在指向空值的指针。

 

36、Internet采用哪一种网络协议?该协议的主要层次结构?Internet物理地址和IP地址转换采用什么协议?

TCP/IP协议主要层次结构为: 应用层/传输层/网络层/数链路层。

ARP (Address Resolution Protocol)(地据址解析协议)

 

37、说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪一种类型测试

自顶向下集成

优势:较早地验证了主要控制和判断点;按深度优先能够首先实现和验证一个完整的软件功能;功能较早证明,带来信心;只需一个驱动,减小驱动器开发的费用;支持故障隔离。

缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。

适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或常常可能被修改;产口控制组件具备较大的技术风险,须要尽早被验证;但愿尽早能看到产品的系统功能行为。

二、自底向上集成

优势:对底层组件行为较早验证;工做最初能够并行集成,比自顶向下效率高;减小了桩的工做量;支持故障隔离。

缺点:驱动的开发工做量大;对高层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

 

38、软件验收测试包括正式验收测试、alpha测试、beta测试三种测试。


39、系统测试的策略有不少种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。

40、设计系统测试计划须要参考的项目文档有软件测试计划、软件需求工件、和迭代计划


41.经过画因果图来写测试用例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。 利用因果图生成测试用例的基本步骤是:

§ 分析软件规格说明描述中,哪些是缘由(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每一个缘由和结果赋予一个标识符。

§ 分析软件规格说明描述中的语义,找出缘由与结果之间,缘由与缘由之间对应的是什么关系? 根据这些关系,画出因果图。

§ 因为语法或环境限制,有些缘由与缘由之间,缘由与结果之间的组合状况不可能出现。为代表这些特殊状况,在因果图上用一些记号标明约束或限制条件。 § 把因果图转换成断定表。

§ 把断定表的每一列拿出来做为依据,设计测试用例。

 

43、请说出这些测试最好由那些人员完成,测试的是什么?

代码、函数级测试通常由白盒测试人员完成,他们针对每段代码或函数进行正确性检验,检查其是否正确的实现了规定的功能。

模块、组件级测试主要依据是程序结构设计测试模块间的集成和调用关系,通常由测试人员完成。

系统测试在于模块测试与单元测试的基础上进行测试。了解系统功能与性能,根据测试用例进行全面的测试。

 

44、 设计测试用例时应该考虑哪些方面,即不一样的测试用例针对那些方面进行测试?

设计测试用例时须要注意的是,除了对总体流程及功能注意外,还要注意强度测试、性能测试、压力测试、边界值测试、稳定性测试、安全性测试等多方面。(测试用例须要考虑的四个基本要素是输入、输出、操做和测试环境;另外,测试用例须要考虑的是测试类型(功能、性能、安全……),这部分能够参照TP作答。此外,还须要考虑用例的重要性和优先级)

 

45、 在windows下保存一个文本文件时会弹出保存对话框,若是为文件名创建测试用例,等价类应该怎样划分?

单字节,如A;双字节, AA、我我;特殊字符 /‘。‘;、=-等;保留字,如com;文件格式为8.3格式的;文件名格式为非8.3格式的;/,\,*等九个特殊字符。

 

46、假设有一个文本框要求输入10个字符的邮政编码,对于该文本框应该怎样划分等价类?

特殊字符,如10个*或¥;英文字母,如ABCDefghik;小于十个字符,如123;大于十个字符,如11111111111;数字和其余混合,如123AAAAAAA;空字符;保留字符

 

47.软件测试项目从何时开始,?为何? 
软件测试应该在需求分析阶段就介入,由于测试的对象不只仅是程序编码,应该对软件开发过程当中产生的全部产品都测试,而且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费的成本就越大.

48、什么是回归测试?

回归测试: (regression   testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间之后再回头对之前使用过的用例在从新进行测试,看看会从新发现问题。错误回归,就是在新版本中,对之前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。


49.单元测试、集成测试、系统测试的侧重点是什么? 
  单元测试针对的是软件设计的最小单元--程序模块(面向过程当中是函数、过程;面向对象中是类。),进行正确性检验的测试工做,在于发现每一个程序模块内部可能存在的差错.通常有两个步骤:人工静态检查\动态执行跟踪 
  集成测试针对的是经过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能. 
  系统测试针对的是集成好的软件系统,做为整个计算机系统的一个元素,与计算机硬件\外设\某些支持软件\数据和人员等其余系统元素结合在一块儿,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试.


51.一个测试工程师应具有那些素质? 
一、责任心二、沟通能力三、团队合做精神四、耐心、细心、信心五、时时保持怀疑态度,而且有缺陷预防的意识六、具有必定的编程经验


53:你所了解的的软件测试类型都有哪些,简单介绍一下。

按测试策略分类:一、静态与动态测试二、黑盒与白盒测试 三、手工和自动测试 四、冒烟测试 五、回归测试;

按测试阶段分类:单元测试、集成测试、系统测试;

其余常见测试方法:一、功能测试 二、性能测试 三、压力测试 四、负载测试 五、易用性测试 六、安装测试 七、界面测试 八、配置测试 九、文档测试 十、兼容性测试 十一、安全性测试 十二、恢复测试

 

54:你认为作好测试计划工做的关键是什么?

明确测试的目标,加强测试计划的实用性

编写软件测试计划得重要目的就是使测试过程可以发现更多的软件缺陷,所以软件测试计划的价值取决于它对帮助管理测试项目,而且找出软件潜在的缺陷。所以,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具而且具备较高的实用性,便于使用,生成的测试结果直观、准确

坚持“5W”规则,明确内容与过程

“5W”规则指的是“What(作什么)”、“Why(为何作)”、“When(什么时候作)”、“Where(在哪里)”、“How(如何作)”。利用“5W”规则建立软件测试计划,能够帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),肯定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。

采用评审和更新机制,保证测试计划知足实际需求

测试计划写做完成后,若是没有通过评审,直接发送给测试团队,测试计划内容的可能不许确或遗漏测试内容,或者软件需求变动引发测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。

分别建立测试计划与测试详细规格、测试用例

应把详细的测试技术指标包含到独立建立的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立建立的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

 

 

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

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

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

 

56:你的测试职业发展目标是什么?

测试经验越多,测试能力越高。因此个人职业发展是须要时间累积的,一步步向着高级测试工程师奔去。并且我也有初步的职业规划,前3年累积测试经验,不断的更新本身改正本身,作好测试任务。

 

57:测试结束的标准是什么?

从微观上来讲,在测试计划中定义,好比系统在必定性能下平稳运行72小时,目前Bug Tracking System中,本版本中没有通常严重的BUG,普通BUG的数量在3如下,BUG修复率90%以上等等参数,而后由开发经理,测试经理,项目经理共同签字认同版本Release。

若是说宏观的,则是当这个软件完全的消失之后,测试就结束了。

 

59、一套完整的测试应该由哪些阶段组成? 
可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试

 

61、您是否了解以往所工做的企业的软件开发过程?若是了解,请试述一个完整的开发过程须要完成哪些工做?分别由哪些不一样的角色来完成这些工做?您在以往的测试工做中都曾经具体从事过哪些工做?其中最擅长哪部分工做?

开发过程---需求调研(需求人员)、需求分析(需求人员)、概要设计(设计人员)、详细设计(设计人员)、编码(开发人员)

测试过程---需求评审、系统测试设计、概要设计评审、集成测试设计、详细设计评审、单元测试设计、测试执行

测试工做的整个过程都作过,擅长作测试设计

过程决定质量,软件的过程改进正是为了提升软件的质量,将过往的种种经验教训积累起来。

 

62、测试用例设计的原则是什么?目前主要的测试用例设计方法有哪些?

表明性:可以表明并覆盖各类合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、操做和环境设置等.

可断定性:即测试执行结果的正确性是可断定的,每个测试用例都应有相应的指望结果.

可再现性:即对一样的测试用例,系统的执行结果应当是相同的。

方法有等价类、边界值、因果图、状态图、正交法、大纲法

 

63、面向对象的测试用例设计有几种方法?如何实现?

给类中的每一个构造函数设计一组测试用例

组合类中的类变量、实例变量

组合类中的各类方法

根据前置条件和后置条件设计测试用例

根据代码设计测试用例

 

64、LoadRunner分为哪三个模块?请简述各模块的主要功能。

Virtual User Generator:用于录制脚步

Mercury LoadRunner Controller:用于建立、运行和监控场景

Mercury LoadRunner Analysis:用于分析测试结果

 

65、你对测试最大的兴趣在哪里?为何?

最大的兴趣就是测试有难度,有挑战性!作测试越久越能感受到作好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何作好一名测试工程师。一共罗列了11,12点,有部分是和人的性格有关,有部分须要后天的努力。但除了性格有关的1,2点我没有把握,其余点我都颇有信心作好它。

刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着作测试须要不少技能才能作的好,虽然入门容易,但作好很难,比开发更难,虽然当时我很想作开发(学校专业课我基本上不缺席,由于我喜欢个人专业),但看到测试比开发更难更有挑战性,想作好测试的意志就更坚决了。

我以为作测试整个过程当中有2点让我以为颇有难度(对我来讲,有难度的东西我就很是感兴趣),第一是测试用例的设计,由于测试的精华就在测试用例的设计上了,要在版本出来以前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),若是你刚测试一个新任务时,你得花必定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这须要你自觉的学习能力,好比说网站吧,最基本的技术知识你要知道网站内部是怎么运做的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都须要最先的学好。至少在开始测试以前能作好基本的准备,可能会遇到什么难题?需求细节是否是没有肯定好?这些问题都能在设计用例的时候发现。

第二是发现BUG的时候了,这应该是测试人员最基本的任务了,通常按测试用例开始测试就能发现大部分的bug,还有一部分bug须要测试的过程当中更了解所测版本的状况得到更多信息,补充测试用例,测试出bug。还有如何发现bug?这就须要在测试用例有效的状况下,经过细心和耐心去发现bug了,每一个用例都有可能发现bug,每一个地方都有可能出错,因此测试过程当中思惟要清晰(测试过程数据流及结果都得看仔细了,bug都在里面发现的)。如何描述bug也颇有讲究,bug在什么状况下会产生,若是条件变化一点点,就不会有这个bug,以哪些最少的操做步骤就能重现这个bug,这个bug产生的规律是什么?若是你够厉害的话,能够帮开发人员初步定位问题。

 

66、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不一样的测试类型的区别与联系(如功能测试、性能测试……)
  测试类型有:功能测试,性能测试,界面测试。
  功能测试在测试工做中占的比例最大,功能测试也叫黑盒测试。是把测试对象看做一个黑盒子。利用黑盒测试法进行动态测试时,须要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 
  性能测试是经过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,二者能够结合进行。经过负载测试,肯定在各类工做负载下系统的性能,目标是测试当负载逐渐增长时,系统各项性能指标的变化状况。压力测试是经过肯定一个系统的瓶颈或者不能接收的性能点,来得到系统能提供的最大服务级别的测试。
  界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。并且设计良好的界面可以引导用户本身完成相应的操做,起到向导的做用。同时界面如同人的面孔,具备吸引用户的直接优点。设计合理的界面能给用户带来轻松愉悦的感觉和成功的感受,相反因为界面设计的失败,让用户有挫败感,再实用强大的功能均可能在用户的畏惧与放弃中付诸东流。
  区别在于,功能测试关注产品的全部功能上,要考虑到每一个细节功能,每一个可能存在的功能问题。性能测试主要关注于产品总体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(可否吸引用户的注意力),是否安全(尽可能在前台避免用户无心输入无效的数据,固然考虑到体验性,不能太粗鲁的弹出警告)?作某个性能测试的时候,首先它多是个功能点,首先要保证它的功能是没问题的,而后再考虑该功能点的性能测试

 

67、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
  黑盒测试:已知产品的功能设计规格,能够进行测试证实每一个实现了的功能是否符合要求。
  白盒测试:已知产品的内部工做过程,能够经过测试证实每种内部操做是否符合设计规格要求,全部内部成分是否以通过检查。
  软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看作一个黑盒子,测试人员彻底不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。所以黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现如下几类错误:
  一、是否有不正确或遗漏的功能?二、在接口上,输入是否能正确的接受?可否输出正确的结果?三、是否有数据结构错误或外部信息(例如数据文件)访问错误?四、性能上是否可以知足要求?五、是否有初始化或终止性错误?
  软件的白盒测试是对软件的过程性细节作细致的检查。这种方法是把测试对象看作一个打开的盒子,它容许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序全部逻辑路径进行测试。经过在不一样点检查程序状态,肯定实际状态是否与预期的状态一致。所以白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行以下检查:
  一、对程序模块的全部独立的执行路径至少测试一遍。
  二、对全部的逻辑断定,取“真”与取“假”的两种状况都能至少测一遍。
  三、在循环的边界和运行的界限内执行循环体。
  四、测试内部数据结构的有效性,等等。
  单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。一般而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
  单元测试是由程序员本身来完成,最终受益的也是程序员本身。能够这么说,程序员有责任编写功能代码,同时也就有责任为本身的代码编写单元测试。执行单元测试,就是为了证实这段代码的行为和咱们指望的一致。
  集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,而且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片断的组合,并最终扩展进程,将您的模块与其余组的模块一块儿测试。最后,将构成进程的全部模块一块儿测试。
  系统测试是将通过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
  系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统知足产品需求而且遵循系统设计。
  验收测试是部署软件以前的最后一个测试操做。验收测试的目的是确保软件准备就绪,而且可让最终用户将其用于执行软件的既定功能和任务。
验收测试是向将来的用户代表系统可以像预约要求那样工做。经集成测试后,已经按照设计把全部的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能性能如同用户所合理期待的那样。

 

68、当开发人员说不是BUG时,你如何应付?
  开发人员说不是bug,有2种状况,一是需求没有肯定,因此我能够这么作,这个时候能够找来产品经理进行确认,需不须要改动,3方商量肯定好后再看要不要改。二是这种状况不可能发生,因此不须要修改,这个时候,我能够先尽量的说出是BUG的依据是什么?若是被用户发现或出了问题,会有什么不良结果?程序员可能会给你不少理由,你能够对他的解释进行反驳。若是仍是不行,那我能够给这个问题提出来,跟开发经理和测试经理进行确认,若是要修改就改,若是不要修改就不改。其实有些真的不是bug,我也只是建议的方式写进TD中,若是开发人员不修改也没有大问题。若是肯定是bug的话,必定要坚持本身的立场,让问题获得最后的确认。

 

69、为何要在一个团队中开展软件测试工做?

由于没有通过测试的软件很难在发布以前知道该软件的质量,就比如ISO质量认证同样,测试一样也须要质量的保证,这个时候就须要在团队中开展软件测试的工做。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量状况。

 

71、一份测试计划应该包括哪些内容?

背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、经常使用术语、提交文档、风险分析。

 

72、针对于软件的行业背景,你如何理解软件的业务?

阅读用户手册了解软件的功能和操做流程;看一些业务的专业书籍补充业务知识;若是有用户实际的数据,能够拿实际的数据进行参考;参考之前的用例和BUG报告;在使用软件的过程当中多思考;多与产品经理交流。

 

74、如何定位测试用例的做用?

组织性:编写、组织性、功能覆盖、重复性、跟踪、测试确认

 

76、什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。

主要验证软件产品在不一样版本之间的兼容性。包括向下兼容和交错兼容,向下兼容是测试软件新版本保留它早期版本功能的状况,交错兼容是验证共同存在的两个相关但不相同的产品之间的兼容性。

 

77、对某软件进行测试,发如今WIN98上运行得很慢,怎么判别是该软件存在问题仍是其软硬件运行环境存在问题?

看软件的运行环境要求。若是符合要求则是程序存在问题,若不符合要求则是硬件系统存在问题

 

78、需求测试的注意事项有哪些?

是否使用了公司的模板、文档内容是否符合规范、全部的需求是分级是否清析适当、全部的需求是否具备一致性、需求是否可行(即,该需求组合有解决方案)、需求能否用己知的约束来实现、需求是否足够(即,能够把它送到一个规范的开发组织,并有一个生产出所须要产品的合理的可能性)、全部的其它需求是交叉引用是否正确、用户描述是否清楚、是否用客户的语言来描述需求、每一个需求描述是否清楚没有岐义,能够移交给一个独立的组去实现时也能理解、是否全部的需求都是可验证的、是否每条需求都具备独立性,即便发生了变化也不会影响其它需求、性能指标是否明确、非功能性需求是否获得充分表现、是否完整列出适用的标准或协议、标准和协议之间是否存在冲突

 

81、主键、外键的做用,索引的优势与不足?

  答:主键:是表中的惟一标示键。做用:保证明体的完整性;加快数据库的操做速度;增长新的表记录时,数据库会自动检索新记录的主键值,不容许该值与其余表中记录的主键重复;数据库会按主键值的顺序显示记录,若是没有设定主键,则按输入的顺序显示记录。

  外键:是主键的从属,表示了两个表之间的联系。做用:使用外键能够避免冗余。

索引的优势: 一、经过建立惟一性的索引,能够保证表中数据的惟一性; 二、加速数据的检索速度; 三、加快表与表之间的链接; 四、在使用分组与排序数据检索时,能够显著检索分组与排序的时间; 五、在查询的过程当中使用优化隐藏器,提供系统性能。

缺点: 一、建立索引须要时间,且随着数据量的增长而增长; 二、索引须要占用物理空间;

        三、当对表中数据进行修改时,索引也要动态维护,下降了数据的维护速度。

 

84、性能测试的流程?

  1.测试需求分析2.测试计划制定与评审3.测试用例设计与开发4.测试执行与监控5.分析测试结果6.编写性能测试报告7.测试经验总结

 

88、简述bug的生命周期?

  1, 有效地记录BUG 2, 使用BUG模板 3, 评价BUG优先级和严重性 4, BUG的生命 5, 维护BUG数据库

 

 

89、缺陷记录应包含的内容?

  缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷缘由; 

 

91 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不一样的测试类型的区别与联系(如功能测试、性能测试……)

  易用性测试-界面的友好性,操做方便性等。

  功能测试-系统中功能性需求的知足

  安全性测试-系统是否存在安全隐患和漏洞

  性能测试-系统在大并发下的响应速度和健壮性

 

93、您认为作好测试计划工做的关键是什么?

  了解项目或系统的业务需求

  和项目经理协调好,了解项目的进度计划安排状况 

 

 

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

  对业务和软件需求很是清楚,能够根据需求不一样选择不一样的测试用例设计

 

 

96、.您以往的工做中是否曾开展过测试用例的评审工做?若是有,请描述测试用例评审的过程和评审的内容

  评审计划->预审->评审;

  评审内容主要是测试用例对软件需求的覆盖程度,对于相关边界是否考虑,是否针对复杂流程准备多套测试数据,是否有专门针对非功能性需求的测试。 

 

 

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

  关键是测试脚本的录制,测试时候测试环境的干净。

100、.您以往所从事的软件测试工做中,是否使用了一些工具来进行软件缺陷(Bug)的管理?若是有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。

  CQ,也能够使用BugFree等免费工具。

10一、.您如何看待软件过程改进?在您曾经工做过的企业中,是否有一些须要改进的东西呢?您指望的理想的测试人员的工做环境是怎样的?

  将先进的经验或思想固化到过程当中,经过过程改进和能力提升来改进软件质量。

相关文章
相关标签/搜索