gfy111111 发表于 2006-7-3 20:59:26

倾情分享-亲历之测试工程师面试题+部分题目解答

我在深圳从事软件测试工作3年有余 从毕业到现在面试的公司很多 面试的全都是测试工程师
刚出来那会 我很不安分 老想着跳槽 特别是刚毕业的那会 疯狂找工作疯狂面试 疯狂碰壁
经过个人的回忆整理了下,以下是我面试的时候的部分笔试和面试题目 供大家交流 我也希望有过大公司
面试经历的人对我失败的面试经历提供建议和参考 也同时希望本来有能力的人 可以在考试之前准备下 避免阴沟里面翻船
同时也感谢之前的人慷慨把他们的面试经过写了出来 让我得以总结经验 目前我在家不错的it公司上班 呵呵 以后有机会的话
我会继续发出题目 并附上个人参考答案 欢迎大家一起交流 我的邮箱是gfy111111@163.com 电话是0755-81237191
以下是题目:
招商银行软件中心:
软件测试笔试部分试题:
集成测试是又叫(),()?
静态测试包含哪些活动?
动态测试又包含哪些活动?
试叙述对你参加过的一个软件项目测试的全过程。以及如何改进其测试流程?
简述你对测试工作的认识过程、在以后的工作的一些建议。
软件测试分为()和()两种。
TD如何备份?(考此题的时候 我就在想 完了 我从来没有用过td 其中 td的题目一共有三个
我只记得这一个了估计要对td很熟悉才能回答出来)。
试述软件配置管理中有哪些活动?
试述软件测试的生命周期?

对下面给出的程序控制图,分别以各种不同的测试方法写出最少的测试用例。
大致是:
a>5 and b =5            x=x/a
a=5orx>2
分 a b c d 四条路径

计算机笔试部分试题:(都是c++语言)
计算机中同步和互斥的原语是?

一个通信的原型 (里面有很多 read(),write(),connect()这样的动作 我对网络连接这块不熟悉 傻眼)

在c++中 定义 a[]={1,2,3,4,5,6}; b[]={1,2,3,4,5,6};
a+b 是多少?

(int*)*p = 1;是否正确?

写一个movememory的函数 我从来没有直接操作过内存 看到此题 傻眼

一个isleap()的函数,就是判断输入年份是否为闰年的函数 要你写出程序流程图和路径数量

数据库主要是对()和()进行操作?

数据库索引有哪两种实现方式 分别对应的数据结构是什么?

一个二叉树 无子节点的时候 高度为0高度为5的二叉树 节点数量是多少?

还考了排序二分排序和希尔排序

还有个题目看不明白意思

class A         class b:A
private         b1.1
protected
public
.....
是个考察各个类中的各个变量对外是否可见的问题。
面试题目:
您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?
维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?
如果你的上司 技术和业务能力都比你差 发生争执的时候 你应该如何沟通
如果你发现了一个bug 而开发人员却不认为这个是bug 而且他也不听你的解释 你该如何沟通
简单的介绍下你自己
说说你上家公司的测试流程
你对那种数据库最为熟悉
你可以问我两个问题(将谈话的控制权交回给我我估计这个时候应该是展示自己的时候
但是每次都说自己没有问题 郁闷~ 每次都错过好的机会)


深圳海之讯科技有限公司:
1.按照下列需求 用你所学的语言写一个程序 并写出测试用例 和测试报告
在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角
形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程
序流程图、控制流程图、找出基本测试路径 ,对此设计一个测试用例。
2.测试报告应该包含哪些内容?
3.测试的目的是什么?
4.举出几种常用的软件测试方法?
6、 为什么要进行软件测试?软件测试的目的是什么? (5 分)

颖源的测试工程师面试题目:
软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
其它的一些笔试题目没有什么特色

今天在盐田港的一家公司的笔试题目,规定要用e文回答问题 现在也写出来:
what is Software Testing?
What is testing life cycle?
What are the components of a test plan?
How can the testing team help prevent defects from occurring?
Tell what you know about Winrunner and LoadRunner?
Write more test cases for an user authentication function
procedure                                Expected Result
1.input valid user name
Input invalid password                        Prompt "Invalid Password"

感谢各位网友对此帖的关注,经常会有同行发email来问问题 于是有个新的想法 请见http://bbs.51testing.com/thread-61230-1-1.html

3.

[ 本帖最后由 gfy111111 于 2007-1-20 13:03 编辑 ]

turning 发表于 2006-7-7 16:35:55

谢谢楼主

dandan 发表于 2006-7-7 17:00:39

做个记号,

明天来看

fyhhly 发表于 2006-7-7 21:34:06

:)

我也是近来很想做软件测试...

去面试了一家公司..

面试题和LZ写出来的大似相近..可惜我回答得乱七八糟的..本来面试是过了..但是因为笔试太差了.所以.........哎~~~

希望LZ能给出答案.让小女子也学习学习..长长见识..

因为我还想再去找软件测试的工作

gfy111111 发表于 2006-7-12 00:05:47

谢谢 呵呵 我会尽快给出我自己的答案的 仅供参考

。。。。。。。。。。。。:)

Joan2005 发表于 2006-7-12 16:44:32

收下

gfy111111 发表于 2006-7-12 21:57:30

部分题目回答(很惭愧我自己有把握回答的不多 不敢误人子弟)

软件测试的生命周期:
答:需求分析-》测试计划-》测试执行-》回归测试
试叙述对你参加过的一个软件项目测试的全过程。以及如何改进其测试流程?
答:
1.项目启动此时业务已经和客户把合同签定下来 项目经理会把项目投标和立标的情况大致说一下 以至各个成员对将要开发的产品基本需求和产品在前景 架构 本项目开发周期时间和技术等方面有个大致的了解
2.需求分析阶段 每天的轮流会议 各人报告自己的进展情况 对需求的了解情况开发,测试环境的搭建 以及需求不断的细化与扩充
3.测试计划阶段 随着对需求的不断了解和加深 测试人员对待测的产品 环境 场景 功能点都已经比较明晰 对测试所要花的时间也很清楚 对项目的测试工作已经有了个全局的把握 本阶段会生成测试计划和测试用例
4.测试执行阶段 40%的需求会在这个阶段变动 开发的产品一变再变 测试计划和测试用例不断更改 直到产品基本定型
5.回归测试阶段 这个阶段测试人员主要的工作就是不断发现新的bug和验证已经修复的bug 并把与修改相关的地方重新验证之 直到退出测试
改进的地方:需求分析阶段的工作有待改进 最好能把客户提的要求 几天内给个原形给他 问他是不是要这样做 省的以后麻烦 :)

gfy111111 发表于 2006-7-12 22:08:59

继续。。。

您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?
答:第一,避免指责 测试人员不要发表开发人员写的代码如何如何臭bug如何如何低级等等带有感情色彩的语言 这样你以后发现的bug报上去 他会本能的排斥
      第二,谦虚 多使用 你认为这样对不对 或者 你看这样是不是更好些之类的语言
      第三,发生了争执不要紧 谁都有权利有自己的想法不同的看法商量之后 找搞需求的人 或者系统分析的人来定夺
      第四,确保自己对需求有足够的了解,这样沟通起来 更有效率
      回答到这里其它的朋友有没有不同的看法????

gfy111111 发表于 2006-7-12 22:12:00

再回一题

维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?

我个人认为是没有阻碍的沟通和相互协作

AlexanderIII 发表于 2006-7-12 22:15:40

顶一下
LZ七楼最后一句讲的,在需求分析阶段,按客户提出的要求几天内给个原形他,这是肯定的,难道之前做项目的时候不是这样的?

RAD里面有讲过的,在软件项目开发的时候,一定要让客户也参与到项目的原型设计里,才可以切合实际的开发.

gfy111111 发表于 2006-7-12 22:25:13

回复

之前的没有   有个别项目 因为编码量和成品的问题 并不能很快的做出原形 而且本来客户的需求也是多变的每个项目开始的时候 客户都是巴不得尽可能多些需求给你 反正他知道会有很多需求是deliver不了的   我想听听你的看发

AlexanderIII 发表于 2006-7-12 22:26:26

"一个isleap()的函数,就是判断输入年份是否为闰年的函数 要你写出程序流程图和路径数量"
这个好像在数据结构的书里面有例子的

判断条件是
一,能被4整除,但不能被100整除的年份是闰年.
二,能被100整除,同时也能够被400整除的年份是闰年.

gfy111111 发表于 2006-7-12 22:30:25

再接一句

敏捷开发是这样的 但一般只是在比较小的项目里面使用
很不幸的是 我之前的那个项目就是用的是 需求驱动开发 传统的开发模式其实 很多东西 我也是在学习 我本人也有尝试着去接项目来做   但是大项目还是接不了 限于经验吧 一般接些网站和些小程序来做做 有这方面经验的 可以介绍下

gfy111111 发表于 2006-7-12 22:31:42

是不是有点好高务远了?

:)

AlexanderIII 发表于 2006-7-12 22:34:35

原帖由 gfy111111 于 2006-7-12 22:25 发表
之前的没有   有个别项目 因为编码量和成品的问题 并不能很快的做出原形 而且本来客户的需求也是多变的每个项目开始的时候 客户都是巴不得尽可能多些需求给你 反正他知道会有很多需求是deliver不了的   我想听听 ...

呵,没啥看法,这是以前读书的时候上RAD课程的时候,导师讲过的,做课程项目的时候也讲过
现在你要我讲看法,呵,要看回那本书才可以讲得清楚呀..呵呵!


至于,你讲的客户巴不得尽可能多给需求你,这是好事,总好过一开始的时候没有讲清楚明白,在开发到一半的时候再加需求,造成整个开发过程的延误.但一定要讲清楚,哪些是可以实现的,哪些是不太现实的.

弄清楚了需求后,就可以用原型的方法(大概可以叫草稿吧,反正还没涉及到coding,有问题了,可以马上再改)将项目的大概弄清楚...

唔...

gfy111111 发表于 2006-7-12 22:40:34

关于测试生命周期的回答

测试计划 → 测试设计 → 测试开发 → 测试执行 → 测试评估 改进

下面是引自互联网的一位老兄的:
2006.05.12来自:blog     标签: SQA测试



测试生命周期
 

?测试计划 → 测试设计 → 测试开发 → 测试执行 → 测试评估   

?测试计划就是定义一个测试项目的过程,以便能够正确的度量和控制测试。


第一部分:测试计划
测试计划的问题:
  1、测试计划经常是等到开发周期后期才开始实行,使得没有时间有效的执行计划;
  2、测试计划的组织者可能缺乏Client/Server测试经验;
  3、测试的量度和复杂性可能太大,没有自动化工具,很难计划和控制。
测试策略:
  测试策略描述测试工程的总体方法和目标。描述目前在进行哪一阶段的测试(单元测试、集成测试、系统测试)以及每个阶段内在进行的测试种类(功能测试、性能测试、压力测试等)。
  测试策略包括
  1、要使用的测试技术和工具;
  2、测试完成标准;
  3、影响资源分配的特殊考虑例如测试与外部接口或者模拟物理损坏、安全性威胁。
  测试计划最关键的一步就是将软件分解成单元,写成测试需求。
  测试需求有很多分类方法,最普通的一种就是按照商业功能分类。把软件分解成单元元件有几个好处:
  1、测试需求是测试设计和开发测试用例的基础,分成单元可以更好地进行设计;
  2、详细的测试需求是用来衡量测试覆盖率的重要指标;
  3、测试需求包括各种测试实际和开发以及所需资源。
怎样估计测试工作量:
  1、效率假设:即测试队伍的工作效率。对于功能测试,这主要依赖于应用的复杂度,窗口的个数,每个窗口中的动作数目。对容量测试,主要依赖于建立测试所需数据的工作量大小。
  2、测试假设:为了验证一个测试需求所需测试动作数目。
  3、应用的维数:应用的复杂度指标。例如要加入一个记录,测试需求的维数就是这个记录中域的数目。
  4、所处测试周期的阶段:有些阶段主要工作都在设计,有些阶段主要是测试执行。
测试资源:
  1、人力资源
  测试经理
  为测试项目提供总体方向。开发测试计划、征集并监督测试人员、申请系统资源、监视并汇报工作进程、测试评估、测试需求的分解。
  测试工程师 ---- 设计和开发
  设计:对被测软件的详细了解、分解测试需求的技能、选择在C/S环境下用来验证测试需求的技术。
  开发:熟悉SQA、VB、和脚本语言。
  测试工程师 ---- 执行
  负责测试执行和记录结果。需要能够安装系统,网络知识,初始化数据库和其他初始条件。重要的是诊断能力。
  测试系统管理者
  每个测试项目必须指定一个专人负责管理SQA Suite。包括在服务器上安装存储库,安装打印机连接,执行备份,以及其他维护工作。管理者必须高度熟悉SQA,网络工作经验。
  2、系统资源
  安装SQA Suite的硬件和软件环境
  数据库服务器
  该服务器必须专用于 测试工作,能够重置某些初始值,包括系统日期和时间等。
写测试计划的步骤:
  1、确定工程
  收集下列信息
文档 已创建(是/否) 版本/日期 需求详述     功能详述     项目计划     设计详述     原型     用户手册      定义新的工程,Adminà New Project。
  确定软件的结构,用Assetsà Software Structure选项定义软件结构。
  2、定义测试策略
测试策略项 例子 测试阶段 系统测试 测试类型 功能测试 测试技术 75%用SQA Suite自动测试,25%手工测试 完成标准 95%测试用例通过并且最高级缺陷全部解决 特殊考虑 测试必须在上午进行  3、分解软件,写测试需求
  分析各种信息
  反复检查并理解各种信息,和用户交流,理解他们的要求。可以按照以下步骤执行:
  1、确定软件提供的主要商业任务
  2、对每个商业任务,确定完成该任务所要进行的交易。
  3、确定从数据库信息引出的计算结果。
  4、对于对时间有要求的交易,确定所要的时间和条件。这些条件包括数据库大小、机器配置、交易量、以及网络拥挤情况。
  5、确定会产生重大意外的压力测试,包括:内存、硬盘空间、高的交易率
  6、确定应用需要处理的数据量。
  7、确定需要的软件和硬件配置。通常情况下,不可能对所有可能的配置都测试到,因此要选择最有可能产生问题的情况进行测试,包括:最低性能的硬件、几个有兼容性问题的软件并存、客户端机器通过最慢的LAN/WANF连接访问服务器。
  8、确定其他与应用软件没有直接关系的商业交易。包括:
    管理功能,如启动和推出程序
    配置功能,如设置打印机
    操作员的爱好,如字体、颜色
    应用功能,如访问email或者显示时间和日期。
  9、确定安装过程,包括定置从哪安装、定制安装、升级安装。
  10、确定没有隐含在功能测试中的户界面要求。大多界面都在功能测试时被测试到。还有写没有测到,如:操作与显示的一致性,如使用快捷键等;界面遵从合理标准,如按钮大小,标签等。
  把需求组织成层次图
  4、估计测试工作量
  ∑(每个测试的时间*每个需求的测试的数目*测试需求的的数目)
  (测试设计、开发、….)
  5、确定资源
  人力资源
职位 姓名 特殊责任/说明 测试经理     测试工程师
设计/开发(可以多人)     测试工程师
测试执行(可以多人)     测试系统管理员      系统资源
系统 名称/类型 数据库服务器 网络/子网
服务器名称
数据库名称
        SQA 测试存储库 网络/子网
服务器名称
      客户测试机 包括专门的配置需求
列表   测试开发的PC机 列表  6、创建工程调度表
任务 相关工作量(天) 整个SQA过程 38 测试计划 12 确定项目 1 定义测试策略   决定测试需求   估计工作量   确定资源   调度测试活动   生成测试计划文档   测试设计 7 分析测试需求   指定测试过程   指定测试用例   查看测试需求的覆盖率   测试开发 12 建立测试开发环境   录制和回放原型过程   开发测试过程   测试和调试测试过程   修改测试过程   建立外部数据集合   重新测试并调试测试过程   测试执行 6 设置测试系统   执行测试   验证测试结果   调查突发结果(unexpected result)   生成缺陷日记   测试评估 1 回顾测试日记   评估测试需求的覆盖率   评估缺陷   决定是否达到测试完成的标准    7、书写测试计划
  1、介绍
    目的
    背景
    测试范围
    项目文件列表
  2、测试需求
  

gfy111111 发表于 2006-7-12 22:41:09

超过字数限制了 跟进

3、测试策略
    测试类型
    1、功能测试
    2、用户界面测试
    3、性能测试
    4、压力测试
    5、容量测试
    6、配置测试
    7、安装测试
    工具
  4、资源
    人力资源
    系统资源
  5、调度
  6、文档
    软件元件
    测试特性(Assets)
    测试日记
    缺陷报告
第二部分:测试设计
测试设计的问题
  1、不做测试设计,测试过程也是胡乱建立的。
  2、测试设计不详细,不是基于可量度的测试策略,例如测试计划覆盖一个集合或者测试需求的一个子集。
  3、测试过程没有采用最好的技术来检验Windows C/S结构的测试需求
测试用例的选择规则
  1、选择与测试需求的实质部分最相关的测试用例。
  2、选择的测试用例应该不容易应用程序的改变的影响。
  下面是选择测试用例的几点具体规则:
  1、商业函数
  商业函数一般与数据库有关,要测试数据库的变化,有几种方法:
  1、如果数据库的的改变会反映在一个列表框中,那么就要选择验证列表框内容的测试用例。
  2、还可以检查交易完成后的确认对话框。可以检查对话框的标题。图象比较也可以检查确认对话框,但图象比较容易受其他因素影响。
  3、修改脚本,SQA Basic提供了强大的数据库支持。
  2、域的验证
  各种不同的域选择相应的测试用例。
  3、用户界面测试
  对象状态测试用例
  4、性能标准
  等待状态测试用例
  5、压力下的操作
  6、访问控制
  Object state test case
  7、配置测试
  不能选择图象测试用例(也分辨率有关)和文件测试用例(与驱动器有关)
  8、安装选项和验证
  对象状态用例和窗口存在用例,文件存在用例。
书写测试设计的步骤
    生成测试需求报告
       ↓
     指定测试过程
       ↓
   指定测试用例(可选)
       ↓
    回顾测试覆盖率
第三部分:测试开发
输入:被测软件、基于测试需求的测试设计
输出:测试过程和测试用例
目标:
  1、创建可以重用的测试过程和测试用例
  2、维护测试过程、测试用例与相关测试需求的一一对应。
测试开发的问题:
  1、测试开发很乱,与测试需求或测试策略没有对应性
  2、测试过程不可重复或不可重用
  3、测试过程被作为一个编程任务来执行,导致脚本太长,不能满足软件移植性的要求。
错误处理
  当测试过程发生错误时,有几种解决办法:
  1、跳转到别的测试过程
  2、调用一个能够清除错误的过程
  3、退出过程,启动另一个
  4、退出过程和应用程序,重新启动启动Windows,在失败的地方重新开始测试
测试开发的步骤
  1、设立开发环境
    SQA Suite
    连接到SQA存储库
    启动SQA Baisc或VB
    被测软件
    等等
  2、录制和回放原型过程
  原型过程指出所有未知窗口控制,使得他们都能象标准窗口那样动作或者没有特别的动作,把他们都划归为Generic类型。通过这个过程,SQA Robot就知道该怎样处理应用中的特殊控制。
  1、把recording option 中的Define Unknown Object as Type Generic选项设置为off
  2、使用的过程标识符要可以被覆盖,或者能被删掉。因为这只是个原型,用来教SQA Robot 录制的过程
  3、录制测试过程和测试用例
  1、录制模块测试过程和与测试需求最低层对应的测试用例;
  2、录制初始化过程;
  3、录制导航过程,把前面的过程串起来;
  4、测试和调试测试过程
  5、修改测试过程(可选)
  6、建立外部数据集合
  如果测试过程是用来循环一套输入和输出数据,就需要建立数据集合。
  7、重复测试和调试测试过程,回到4
第四部分:测试执行
测试执行的问题
  1、自动化测试没有有效的利用,使得手工测试太多。
  2、测试结果的捕获没有系统性,而且没有查看或调查
  3、缺陷报告必须用手工加入缺陷跟踪系统
错误分类
  1、测试用例失败
    正常错误
  2、脚本命令失败
    当测试过程不能不能执行录制过程中的某个功能时,回产生这种错误,如鼠标单击按钮或选择菜单项等。它也能指示是缺陷还是测试过程的设计问题。
  3、致命错误
    导致测试停止,这种情况最好重起Windows。
具体步骤:
  1、建立测试系统
  2、准备测试过程
  3、运行初始化过程
  4、执行测试
  5、从终止的测试恢复
  6、验证预期结果
  7、调查突发结果
  8、记录缺陷日记
第五部分:测试评估
测试评估的目标
  1、量化测试进程
  2、生成缺陷和测试覆盖率的总结报告
测试评估的问题
  1、没有把测试覆盖率作为报告测试进程的根据,使得不知测试是否结束;
  2、没有做缺陷评估,缺陷评估是量度软件可行性的重要指标;
  3、不使用专门的软件工具进行数据输入任务和相应的评估活动,使得这些任务变得繁重累人。
测试覆盖率
  评估测试完成多少的标准
缺陷评估
  评估软件质量的重要指标,通常评估模型假设缺陷的发现是呈泊松分布的;严格的缺陷评估要考察在测试过程中发现缺陷的间隔时间长短。评估要估计软件当前的可靠性并预测随着测试的继续进行,软件可靠性会怎样提高。
  SQA Suite 提供四种形式进行缺陷评估:
  1、缺陷分布报告可以生成缺陷数量与缺陷属性的函数。如测试需求和状态。
  2、缺陷趋势报告可以看出缺陷增长和减少的趋势;
  3、缺陷年龄报告展示一个缺陷处于某种状态的时间长短
  4、测试结果进度报告展示测试过程在被测应用的几个版本中的执行结果以及测试周期。
具体步骤
  1、回顾测试日记
  2、评估测试需求的覆盖率
  3、分析缺陷
  4、决定是否达到完成测试的标准,没有满足标准时
    1、再测试
    2、降低标准
    3、确定软件的一个满足标准的子集,看是否可以发布。

gfy111111 发表于 2006-7-12 22:47:42

呵呵

原帖由 AlexanderIII 于 2006-7-12 22:34 发表


呵,没啥看法,这是以前读书的时候上RAD课程的时候,导师讲过的,做课程项目的时候也讲过
现在你要我讲看法,呵,要看回那本书才可以讲得清楚呀..呵呵!


至于,你讲的客户巴不得尽可能多给需求你, ...


朋友你是做开发的吗?感觉和你很投缘啊 你在哪? 我在深圳~    你说的很对其实开发流程这个东西 说实在的 因为自己是做测试的完整的流程自己从来没有从头到尾参与过之前碰到位哥们是南凌科技的一位面试官 忽然问了我这么个问题    如果开发把一个开发好的包给你你用什么标准来判断这个包是可接受的? 当时就把我给问蒙了汗颜啊

roadpeople 发表于 2006-7-12 22:52:01

今天去了一家公司笔试同样是汗颜啊!
看了各位的发言,只能对自己说:还得加强学习

gfy111111 发表于 2006-7-12 22:54:53

原帖由 roadpeople 于 2006-7-12 22:52 发表
今天去了一家公司笔试同样是汗颜啊!
看了各位的发言,只能对自己说:还得加强学习


17楼的 你把你碰到的题目贴在这里嘛。。。 说不定 可以给你解答的
页: [1] 2 3
查看完整版本: 倾情分享-亲历之测试工程师面试题+部分题目解答