zoukankan      html  css  js  c++  java
  • 软件测试面试题集锦

    1.什么是兼容性测试?

    兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性
    兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。
    兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。
    兼容和配置测试的区别在于,做配置测试通常不是Clean OS下做测试,而兼容测试多是在Clean OS的环境下做的。

    2.我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?

    参考答案:
    1、检查系统是否有中毒的特征;
    2、检查软件/硬件的配置是否符合软件的推荐标准;
    3、确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务;

    4、如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的;

    5、在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况。

    3.正交表测试用例设计方法的特点是什么? 

    参考答案:
    用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;
    对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;
    具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。


    4.使用QTP做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作? 

    参考答案:
    分析用户登录的基本情况,得出一组数据,通过性测试/失败性测试的都有(根据TC来设计这些数据),然后录制登录的脚本,将关键的数据参数化,修改脚本,对代码进行加强,调试脚本。


    5.你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试)? 

    参考答案:Compatibility Testing(兼容性测试),也称“Configuration testing(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等。验证测试对象在不同的软件和硬件配置中的运行情况。 
    Functional testing (功能测试),也称为behavioral testing(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。 Performance testing(性能测试),评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。


    6.Beta测试与Alpha测试有什么区别? 

    参考答案:Beta testing(β测试),测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场
    Alpha testing (α测试),是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。


    7.软件的评审一般由哪些人参加?其目的是什么? 

    参考答案:
    在正式的会议上将软件项目的成果(包括各阶段的文档、产生的代码等)提交给用户、客户或有关部门人员对软件产品进行评审和批准。其目的是找出可能影响软件产品质量、开发过程、维护工作的适用性和环境方面的设计缺陷,并采取补救措施,以及找出在性能、安全性和经济方面的可能的改进。 
    人员:用户、客户或有关部门开发人员,测试人员,需求分析师都可以,就看处于评审那个阶段

    8.测试活动中,如果发现需求文档不完善或者不准确,怎么处理? 

    参考答案:
    测试需求分析 发现需求文档不完善或者不准确,应该立即和相关人员进行协调交流。

    9.阶段评审与项目评审有什么区别? 

    参考答案:
    阶段评审 对项目各阶段评审:对阶段成果和工作 项目评审 对项目总体评审:对工作和产品


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

    参考答案:
    软件测试计划就是在软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的综合分析和规划,保证有效的实施软件测试;


    11.简述一下缺陷的生命周期? 

    参考答案:提交->确认->分配->修复->验证->关闭


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

    参考答案:
    (1) 用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议 (2) 加密机制
    (3) 安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描 (4) 数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理 (5) 防病毒系统

    13.软件配置管理工作开展的情况和认识? 

    参考答案:
    软件配置管理贯穿于软件开发、测试活动的始终,覆盖了开发、测试活动的各个环节,它的重要作用之一就是要全面的管理保存各个配置项,监控各配置项的状态,并向项目经理及相关的人员报告,从而实现对软件过程的控制。
    软件测试配置管理包括4个最基本的活动:
    配置项标识 配置项控制
    配置项状态报告 配置审计
     
    软件配置管理通常借助工具来辅助,主要有MS SourceSafe、Rational ClearCase等


    13.单元测试的主要内容? 

    参考答案:
    模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试 33、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? 参考答案:
    (1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; 

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

    (3)各个子功能组合起来,能否达到预期要求的父功能; 

    (4)全局数据结构是否有问题;
     
    (5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。


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

    测试用例设计工作的关键是对可行的和不可行的都要考虑。

    1,输入 2,详细的操作步骤 3,预期输出 4,实际输出。


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

    检测时间,系统环境,硬体环境,严重程度,程式版本,确认人,功能模块,问题描述,详细操作步骤,是否会重现。


    16.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
    黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
    白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
    单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
    集成测试:在单元测试的基础上,对单元模块之间的连接和组装进行测试。
    系统测试:在所有都考虑的情况下,对系统进行测试。
    验收测试:第三方进行的确认软件满足需求的测试。

    17.测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
    答:测试计划工作是对测试工作内容的一个有效的组织和规划,能保证测试工作有效的展开。测试计划工作包括测试目标,测试范围的定义,测试方法的选择,测试进度里程碑,测试资源的有效配置和管理。
    测试计划工作也称为测试策略,主要描述测试工程的总体方法和目标,描述目前在进行那一阶段的测试(单元测试,集成测试,系统测试)以及每一阶段内进行的测试种类(功能测试,性能测试等)确定测试范围,生成测试数据等。
    其中软件计划中的测试目标最重要,他的软件测试的所需要达成的最终结果。

    18.介绍下SoapUI,如果你用着的话。这个框架需要注意什么?
      soapUI是一款桌面应用程序,能够监测、触发、模仿以及测试(功能和负载)基于SOAP/WSDL和REST/EADL的HTTP网络服务。
      和大多数的工具一样,都是使用HTTPREQUEST对相应的资源进行请求很提取。再得到response之后进行相应的处理,对XML进行XPATH定位。注意的是SOAP方法中包含GET,POST的方法,POST的方法主要使用Application/xml的MIME形式发送相应的POST数据。

    华为测试面试题http://www.spasvo.com/news/html/2014115163633.html
    阿里巴巴测试面试题http://www.spasvo.com/news/html/2013327133140.html

    http://www.spasvo.com/news/html/201358115555.html

    http://www.spasvo.com/news/html/2013719142052.html

    先说笔试:一般的公司会通过笔试淘汰一部分不符合他们公司职位要求的人员,毕竟每个公司具体岗位不一样,总希望招到能尽快上手的人,就像你做了2年多的纯功能方面的测试,而人家希望有点编程能力的做性能方面的测试,估计你会在笔试中被淘汰。所以笔试也是很重要的部分,当然你够牛就直接面吧。
    1. 编程基础,我不知道有多少做测试的朋友讨厌编程或者做软件开发,我个人是比较讨厌的,虽然学校里学的是计算机,但是到毕业也没正儿八经地写过超过百行的代码,但没写过不代表读不懂。所以选择填空还是可以应付的。对于可能的编程题,我是准备了一些如冒泡,折半算法、strcpy/strcmp/strlen 原函数等。编程的能力是需要积累的过程,所以贵在平时。对于编程能力是否有助与测试这个论坛上讨论过的问题,我的观点是第一至少你找工作时用的着,第二如果做性能测试应该也需要,第三如果有2年以上的测试经历应该也会觉得非常有必要。本人也正硬着头皮再学c,虽然学了忘忘了学。
    2.数据库知识,建议准备好sql语言,装个mysql自己通过敲命令,能掌握高级查询使用基本可以应对了。
    3.软件测试理论,这个大家都不陌生,也是必考的了,应该可以轻松应付。要注意准备下web测试和性能测试这块,现在做web的公司好多。
    4.根据公司具体的职位要求可以准备的有linux的命令,CMMI的基础知识,TCP/IP的基础知识,通信的如3G网络类知识等。

    下面说面试:通过面试真的能看出很多,技术、经验、性格人品等,当然都是通过你的答题来让人家了解的。
    1.请自我介绍一下。这个必答题。对于不善于表达的朋友要准备一把,我就是这种类型,好处是起码说起话来可以比较流利。说性格时可以提对做测试有优势点。
    2.说说你以前公司的测试流程。必答题。主要结合自己的项目经验相信讲一个自己做过的项目,从立项到测试结束,当然侧重测试和自己所做的内容。这里面试官一般都会根据你说的再提问。
    3.你是怎样做出自己的职业选择或者自己的职业规划。这题也经常问。可以从自己的优点说如何适合做软件测试,对与职业规划,我一般说在技术上往资深测试工程师发展。
    4. 你觉得自己作为测试工程的优势在哪里?/你认为自己比你的同事优秀在哪里?也经常问,可以从性格出发,讲自己优点,以及在项目中表现,领导的良好评价等,总之“恰当”地往好处说,不要言过其实,让人怀疑你的人品哦。说说自己的缺点?这个也不好回答,最好能恰当地引申回答到优点上。
    5.一个测试中不堪回首,或者让你很郁闷的事情。我被问到了,当时想不起来,后来想想可以讲一个项目中的失误及后果,然后讲自己如何去成功弥补及教训经验。我如果提前想一下就不会该说什么了。
    6.你的好友是如何评价你的?你的项目组长是如何评价你的? 这类题也经常问。回答总要往好处说,但是你要自信地回答。
    7.在成年后,哪些成绩给你带来最大程度的满足?蛮不错的题。记得我但是答的是第一次自己带一个小项目,顺利完成测试任务。
    8.列举几个可能碰到的题,大家可以想想。
    测试时你提交的bug被研发拒绝或者他认为不是问题,你如何处理?
    测试与开发沟通如何提高效率和改善沟通效果?测试工程师的素质和技能?
    你在压力下能工作的很好嘛?测试计划包括哪些?
    9.你期望的薪水?问的很多啦,根据自己能力和公司的大小,可以搜索下了解下情况。在工作难找的情况下OFFER到手实在些,骑驴找马总容易很多。
    关于这些面试题,自己想不好的可以网上搜搜,51上也有很多关于答题的技巧和答案。最后要说下心态,面试的时候自信最重要,自信也来自良好的准备,所以面多了总结下,下次就更自信了。想想没被录用只能说明公司不适合你,或者人家要不起你。说的废话蛮多的,最后希望Tester在自己的职业道路上走地顺利……

  • 相关阅读:
    禁止鼠标多次点击选中div中的文字
    深入浅出 Nodejs 学习笔记 1
    svn 树冲突
    nodejs 按行读取 readline
    git版本控制器的基本使用
    规范javascript书写
    media query
    软件工程
    The sixth day
    The fifth day
  • 原文地址:https://www.cnblogs.com/sallyliu/p/6370771.html
Copyright © 2011-2022 走看看