软件测试面试经验分享

时间:2024.4.20

软件测试面试经验分享

其实对目前的我来说,几乎没什么帮助,不过里面写的很实在也有很多实质性的内容,相信不比那些面试宝典什么的差吧~ 先留底~~

其实自从离开第一家公司后,我才有那么多的面试经历,不仅开阔了视野,也积累了面试经验。所以觉得有必要写下来以鞭策自己。

经历了几家公司的面试,发现面试大概分2种:

一种呢,面试很简单,面试官只注重您的项目经验和工作经验,这种类型的面试,只要你有一定的资历,然后能吹点,绝大部分都是能通过的。不能通过的,那是因为提的要求过高了,例如薪水要的高了点,人家不敢要的。降低点要求,也是能通过的;

另外一种呢,面试就比较复杂点,首先要通过笔试,然后再面试,而且面试官不但注重经验,而且还注重您的技术,会问一些技术问题。这种类型的面试,是需要一定的实力才能通过的,而不是能吹就行了。

我把前面那种称之为“经验型面试”,后面的称之为“综合型面试”。这2种面试,我都遇到过几家。我会一一把它写下来,那今天就先来一份“综合型面试”的面经。

有天,我接到A公司的面试通知,于是有了以下一份面经。这家公司的面试分2部分,先是笔试(后面附上笔试题目),然后是面试,下面让我慢慢道来,可能有点长。

一:笔试部分:(1小时)

A公司的测试笔试有2份题目:一份是综合类的试题,一份是纯JAVA的试题。对于综合类的试题,因为我基本上都会做,所以都记下来了,JAVA的题目,没有记住。

做题大概做了一个小时的样子,做完后就等着接下来的安排。

二:等待部分:(1小时)

做完题后,前台MM让我坐着等会。于是我就开始了漫长的等待

10分钟过去了,没人理我??

20分钟过去了,没人理我??

30分钟过去了,还是没有人理我??

??

如果不是A公司还有点名气,我都想发飙了。前台的MM也不懂接待,也不给咱倒水,也不抱歉的说句,让您久等了。等待区又没有报纸、杂志什么供消遣,那眼睛就盯着地板看来一个小时。靠,真难受。我这时才发现,原来公司一个前台、接待的好坏也直接影响应聘者如何看待一个企业的形象,应聘者对一个公司的印象从前台、接待开始的,其影响也是比较大的。牢骚完了,继续。

60分钟过去了,依然没人理我??

资料来源:中国教育在线 /

软件测试面试经验分享

65分钟的时候,终于叫我的名字了。

三:面试部分:(1小时)

第一轮面试,是一个男的面试的(我知道他的名字,不能随便透露人家的信息,呵呵),是A公司的测试经理。首先是要求我简单的面试自我介绍,然后重点问我做过那些项目,印象最深的是那个项目,为什么印象最深。当我说到增值业务的项目时,他又接着问增值业务的明细,因为A公司的强项就是做增值业务,所以他很清楚,也很关注我这块的回答。他问的很详细,先是问了平台部分,都有哪些功能,你参与测试了哪些功能,然后又问具体的业务,如短信业务、点播业务、WAP业务,接着问如何测试这些业务,又问如何测试计费和扣费的,反正有关增值业务的东西都问了,而最关注的是如何计费扣费,因为这是最关键的,计费扣费弄错了,这个项目就宣告失败了。后来,他又问我在电信做的项目的具体情况。我说了个大概,个中提到跟SAP有接口,他就打断我,问用的是什么接口。我说是web service接口。然后又问我什么是web service。

最后他问我了解网通的项目吗?我简单的说了一下,我说网通主要做的是固话、宽带、小灵通业务,而网通的增值业务,是指小灵通的增值业务和固话的增值业务为主。

最后他问我有没有问题问他,我就问了2个问题,

资料来源:中国教育在线 /


第二篇:软件测试面试集


由安博测试空间技术中心/提供

一、判断题

1.软件测试的目的是尽可能多的找出软件的缺陷。(Y)

2.Beta测试是验收测试的一种。(Y)

3.验收测试是由最终用户来实施的。(N)

4.项目立项前测试人员不需要提交任何工件。(Y)

5.单元测试能发现约80%的软件缺陷。(Y)

6.代码评审是检查源代码是否达到模块设计的要求。(N)

7.自底向上集成需要测试员编写驱动程序。(Y)

8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N)

9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N)

10.代码评审员一般由测试员担任。(N)

11.我们可以人为的使得软件不存在配置问题。(N)

12.集成测试计划在需求分析阶段末提交。(N)

二、选折

1.软件验收测试的合格通过准则是:(ABCD)

A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

B.所有测试项没有残余一级、二级和三级错误。

C.立项审批表、需求分析文档、设计文档和编码实现一致。

D.验收测试工件齐全。

2.软件测试计划评审会需要哪些人员参加?(ABCD)

A.项目经理

B.SQA负责人软件质量保证(SQA)

C.配置负责人

D.测试组

3.下列关于alpha测试的描述中正确的是:(AD)

A.alpha测试需要用户代表参加

B.alpha测试不需要用户代表参加

C.alpha测试是系统测试的一种

D.alpha测试是验收测试的一种

4.测试设计员的职责有:(BC)

A.制定测试计划

B.设计测试用例

C.设计测试过程、脚本

D.评估测试活动

5.软件实施活动的进入准则是:(ABC)

A.需求工件已经被基线化

B.详细设计工件已经被基线化

C.构架工件已经被基线化

D.项目阶段成果已经被基线化

三、添空

1.软件验收测试包括:正式验收测试,alpha测试,beta测试。

2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)

3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。

4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。

5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为:

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

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

(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

(4)把因果图转换成判定表。

(5)把判定表的每一列拿出来作为依据,设计测试用例。

四、简答(资料是搜集整理的,感谢前辈的解题)无

1.区别阶段评审的与同行评审

同行评审目的:发现小规模工作产品的错误,只要是找错误;

阶段评审目的:评审模块阶段作品的正确性可行性及完整性

同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导

阶段评审人数:5人左右评审人必须是专家具有系统评审资格

同行评审内容:内容小一般文档< 40页,代码< 500行

阶段评审内容:内容多,主要看重点

同行评审时间:一小部分工作产品完成

阶段评审时间:通常是设置在关键路径的时间点上!

2.什么是软件测试

为了发现程序中的错误而执行程序的过程

3简述集成测试的过程

系统集成测试主要包括以下过程:

1.构建的确认过程。

2.补丁的确认过程。

3.系统集成测试测试组提交过程。

4.测试用例设计过程。

5.测试代码编写过程。

6. Bug的报告过程。

7.每周/每两周的构建过程。

8.点对点的测试过程。

9.组内培训过程。

4怎么做好文档测试

仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142

检查文档的编写是否满足文档编写的目的

内容是否齐全,正确

内容是否完善

标记是否正确

5白盒测试有几种方法

总体上分为静态方法和动态方法两大类。

静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 6系统测试计划是否需要同行审批,为什么

需要,系统测试计划属于项目阶段性关键文档,因此需要评审。

7Alpha测试与beta的区别

Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

8比较负载测试,容量测试和强度测试的区别

负载测试:在一定的工作负荷下,系统的负荷及响应时间。

强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。 容量测试:容量测试目的是通过测试预先分 析出反映软件 系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试 还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据 的,并且它的目的是显示系统可以处理目标内确定的数据容量。

9测试结束的标准是什么?

用例全部测试。

覆盖率达到标准。

缺陷率达到标准。

其他指标达到质量标准

10描述软件测试活动的生命周期?

测试周期分为计划、设计、实现、执行、总结。其中:

计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;

设计:完成测试方案,从技术层面上对测试进行规划;

实现:进行测试用例和测试规程设计;

执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。

总结:记录测试结果,进行测试分析,完成测试报告。

11软件的缺陷等级应如何划分?

A类—严重错误,包括以下各种错误: 1. 由于程序所引起的死机,非法退出 2. 死循环 3. 数据库发生死锁 4. 因错误操作导致的程序中断 5. 功能错误 6. 与数据库连接错误 7. 数据通讯错误

B类—较严重错误,包括以下各种错误: 1. 程序错误 2. 程序接口错误 3. 数据库的表、业务规则、缺省值未加完整性等约束条件

C类—一般性错误,包括以下各种错误: 1. 操作界面错误(包括数据窗口内列名定义、含义是否一致) 2. 打印内容、格式错误 3. 简单的输入限制未放在前台进行控制 4. 删除操作未给出提示 5. 数据库表中有过多的空字段

D类—较小错误,包括以下各种错误: 1. 界面不规范 2. 辅助说明描述不清楚 3. 输入输出不规范 4. 长操作未给用户提示 5. 提示窗口文字未采用行业术语 6. 可输入区域和只读区域没有明显的区分标志

E类—测试建议

01. 为什么要在一个团队中开展软件测试工作?

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

02. 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

我曾经做过web测试,后台测试,客户端软件,其中包括功能测试,性能测试,用户体验测试。最擅长的是功能测试

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

测试类型有:功能测试,性能测试,界面测试。

功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。

区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试

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

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果 黑盒测试用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

05. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据

程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体。

4、测试内部数据结构的有效性,等等。

单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。

集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最

终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。

系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试) 系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。

验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

06. 测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?

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

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

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

1. 明确测试的目标,增强测试计划的实用性

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

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

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

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

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

4. 分别创建测试计划与测试详细规格、测试用例

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

08. 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

1.等价类划分

划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数

据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

2.边界值分析法

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

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

3.错误推测法

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

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

4.因果图方法

前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试

用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

09. 请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。 就说最近的这次网站功能的测试吧

首先:得到相关文档(需求文档和设计文档),理解需求和设计设计思想后,想好测试策略(测试计划简单点就OK了),考虑到测试环境,测试用例,测试时间等问题。

第二步:设计测试用例,测试策略是:把网站部分的功能点测试完,然后在进行系统测试(另外个模块呢有另一个测试人员负责,可以进行联调测试),网站模块的测试基本是功能测试和界面测试(用户并发的可能性很小,所以不考虑):这次的网站的输入数据呢是使用数据库中的某张表记录,如果表中某一数据记录中新加进来的(还没有被处理的,有个标志位),网站启动后会立刻去刷那张表,得到多条数据,然后在进行处理。处理过程中,会经历3个步骤,网站才算完成了它的任务。有3个步骤呢,就可以分别对 这3个步骤进行测试用例的设计,尽量覆盖到各种输入情况(包括数据库中的数据,用户的输入等),得出了差不多50个用例。界面测试,也就是用户看的到的地方,包括发送的邮件和用户填写资料的页面展示。

第三步:搭建测试环境(为什么这个时候考虑测试环境呢?因为我对网站环境已经很熟了,只有有机器能空于下来做该功能测试就可以做了),因为网站本身的环境搭建和其他的系统有点不同,它需要的测试环境比较麻烦,需要web服务器(Apache,tomcat),不过这次需求呢,网站部分只用到了tomcat,所以只要有tomcat即可

第四步:执行测试

11. 您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。

是的,曾经做过网站方面的性能测试,虽然做的时间并不久(2个月吧),当时呢,是有位网站性能测试经验非常丰富的前辈带着我一起做。

性能测试类型包括负载测试,强度测试,容量测试等

负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。

强度测试: 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况

容量测试:确定系统可处理同时在线的最大用户数

在网站流量逐渐加大的情况下,开始考虑做性能测试了,首先要写好性能测试计划,根据运营数据得出流量最大的页面(如果是第一次的话,一般是首页,下载页,个人帐户页流量最大,而且以某种百分比),

Web服务器指标指标:

* Avg Rps: 平均每秒钟响应次数=总请求时间 / 秒数;

* Successful Rounds:成功的请求;

* Failed Rounds :失败的请求;

* Successful Hits :成功的点击次数;

* Failed Hits :失败的点击次数;

* Hits Per Second :每秒点击次数;

* Successful Hits Per Second :每秒成功的点击次数;

* Failed Hits Per Second :每秒失败的点击次数;

* Attempted Connections :尝试链接数;

13. 您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

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

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

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

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

18. 在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?

19. 在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)

20.你对测试最大的兴趣在哪里?为什么?

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

刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。 不到一年半的测试工作中,当时的感动和热情没有减退一点(即使环境问题以及自身经验,技术的不足,做测试的你一定也能理解)。

我觉得做测试整个过程中有2点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业

务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。

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

34. 你的测试职业发展是什么?

测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的11,12点要求自己,不断的更新自己改正自己,做好测试任务。

35. 你自认为测试的优势在哪里?

优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥。

36. 你以前工作时的测试流程是什么?

公司对测试流程没有规定如何做,但每个测试人员都有自己的一套测试流程。我说下我1年来不断改正(自己总结,吸取同行的方法)后的流程吧。需求评审(有开发人员,产品经理,测试人员,项目经理)->需求确定(出一份确定的需求文档)->开发设计文档(开发人员在开始写代码前就能输出设计文

档)->想好测试策略,写出测试用例->发给开发人员和测试经理看看(非正式的评审用例)->接到测试版本->执行测试用例(中间可能会补充用例)->提交bug(有些bug需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进TD)->开发人员修改(可以在测试过程中快速的修改)->回归测试(可能又会发现新问题,再按流程开始跑)。

37. 当开发人员说不是BUG时,你如何应付?

开发人员说不是bug,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商量确定好后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的不是bug,我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题。如果确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。

23.你为什么想离开目前的职务?

因为公司运作情况并不理想,公司需要调整部门体系,公司考虑到缩减部门人员,所以大批量的裁员(有6,7个),这是我的第一份工作,对公司也有较深的感情,因为在这里我找到了职业理想(就是测试),所以公司需要精简人员,我自愿退出。虽然很舍不得,但我将会有新的发挥能力的舞台。

24:你对我们公司了解有多少?

25:你找工作时,最重要的考虑因素为何?

工作的性质和内容是否能让我发挥所长,并不断成长。

26:为什么我们应该录取你?

您可以由我过去的工作表现所呈现的客观数据,明显地看出我全力以赴的工作态度。

27:请谈谈你个人的最大特色。

我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。

28.白箱测试和黑箱测试是什么?什么是回归测试?

29。单元测试、集成测试、系统测试的侧重点是什么?

30。设计用例的方法、依据有那些?

31。一个测试工程师应具备那些素质和技能?

32.集成测试通常都有那些策略?

33.你用过的测试工具的主要功能、性能及其他?

34.一个缺陷测试报告的组成

35.基于WEB信息管理系统测试时应考虑的因素有哪些?

36.软件测试项目从什么时候开始,?为什么?

37.需求测试注意事项有哪些?

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

39.测试分析测试用例注意(事项)?

你在你所在的公司是怎么开展测试工作的?是如何组织的? 你认为理想的测试流程是什么样子?

你是怎样工作的?

软件测试活动的生命周期是什么?

请画出软件测试活动的流程图?

针对缺陷采取怎样管理措施?

什么是测试评估?测试评估的范围是什么?

如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么? 测试结束的标准是什么?

软件验收测试除了alpha,beta测试以外,还有哪一种?

做测试多久了?

以前做过哪些项目?

你们以前测试的流程是怎样的?

<答:测试计划-测试用例设计-测试执行-测试分析报告>

用过哪些测试工具?

为什么选择测试这行?

<答:它是一个新兴的行业,有发展潜力,而且很锻炼人,需要掌握更多的技能,比做开发要更难>

为什么值得他们公司雇用?

如果我雇用你,你能给部门带来什么贡献?

如何从工作中看出你是个自动自觉的人

你的工作通常能在时限内完成吗.(我想问一下就是她问这个问题的动机是什么)

通常你对于别人批评你会有什么样的反应

如果明知这样做不对,你还会依主管的指过去做吗

如果你接到一个客户抱怨的电话,你确知无法解决他的问题,你会怎么处理 你觉得什么样的人最难相处

为什么值得他们公司雇用?

帮助公司提高软件质量和测试部门的技术水平

如果我雇用你,你能给部门带来什么贡献?

分享我的测试经验和测试技能,提高测试部门技术水平

如何从工作中看出你是个自动自觉的人

自动自觉范围太广

1. 工作成果

2. 工作质量

你的工作通常能在时限内完成吗.(我想问一下就是她问这个问题的动机是什么)

在有足够的资源和合理的工作量的情况下,完全可以按时完成,并能比

一般人做的更好

通常你对于别人批评你会有什么样的反应

有错即改,无措勉之

如果明知这样做不对,你还会依主管的指过去做吗

在公司内部下级是否有申诉渠道?

如果你接到一个客户抱怨的电话,你确知无法解决他的问题,你会怎么处理 为什么抱怨?是怎么样的问题?

如果是客服问题,提交客服部门解决

如果是质量问题,分析原因,下一版本改进

你觉得什么样的人最难相处

自以为是的人

什么叫单元测试?

请就软件测试人员应该具备什么样的基本素质说说你的看法。 请就如何在开发中进行软件质量控制说说你的看法

简述软件测试的意义,以及软件测试的分类

1、功能测试,性能测试,界面测试,安全测试(可以简单点,比如只涉及到COOKIES里的内容),压力测试(商业性质的网站) 等等,B/S软件也要根据其具体功能采用不同的测试策略。

2、态度、责任心、自信、敏锐的观察力、良好的发散思维

3、先设计后开发模式,加强单元测试,加强代码走查,有一套完整的白盒测试方法。关键是加强开发人员的质量意识,增进程序员向工程师水平发展。

4、意义嘛,就自己想吧。软件测试的分类,这个很多人都按各种方法去分。无明确答案给你。

对测试的理解--基本的测试知识,对测试是否认可? 75。

3、谈一谈过去自己的工作--了解经历、提供进一步提问的素材,表达能力 测试技能

测试设计的方法并举例说明--测试技术的使用

测试工具--熟悉程度,能否与当前工作匹配?

如何做计划?如何跟踪计划?--日常工作能力

如果开发人员提供的版本不满足测试的条件,如何做?--与开发人员协作的能力 熟悉unix系统、oracle数据库吗?--是否具备系统知识

做过开发吗?写过哪些代码?--开发技能

阅读英语文章,给出理解说明?--部分英语能力

文档的意义--是否善于思考?(最简单的概念,不同层次的理解)

假如进入我们公司,对我们哪些方面会有帮助?--讲讲自己的特长

随便找一件物品,让其测试--测试的实际操作能力

软件测试的方法有?

软件测试的过程?

有一个新的软件,假如你是测试工程师,该如何做?

软件测试分哪两种方法?分别适合什么情况?

2。一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。

3。软件测试的类型有那些?分别比较这些不同的测试类型的区别与联系。

4。测试用例通常包括那些内容?着重阐述编制测试用例的具体做法

5。在分别测试winform的C/S结构与测试WEB结构的软件是,应该采取什么样的方法分别测试?他们存在什么样的区别与联系?

6。在测试winform的C/S结构软件时,发现这个软件的运行速度很慢,您会认为是什么原因?您会采取哪些方法去检查这个原因?

7。描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程 你在五年内的个人目标和职业目标分别是什么?

分析这个问题是用来了解你的计划能力的,通过这个问题,面试人同时还可以知道你的目标是否符合企业对你的安排。

错误回答我想在将来的某个时候考虑这个问题。如今企业的领导者更换频繁,我认为做太多的个人计划是荒谬可笑的,不是吗?

评论这种回答属于令人反感的一类。首先,当有人想了解你的目标时,"将来的某个时候"这种通俗说法并不奏效。其次,认为企业很脆弱,领导者更换频

繁,这种说法毫无疑问会令人反感,而且也是不合理的。最后,认为做计划可笑,看不起这个问题,而且反问面试人,这些都注定了这样的求职者最终会失败。 正确回答从现在起的五年之内,我希望能够在一个很好的职位上待几年,而且最好有一次晋升,然后就期待着下一步。不管是向上提升,还是在企业内横向调动,对我个人来说,我希望找到一家企业--一家愿意做相互投入的企业--待上一段时间。

评论这个问题没有回答得过分具体(那样可能会产生漏洞),而且它表明你有雄心,并且思考过在企业中的成长方式。通过表达横向调动和向上提升的愿望,表明你是一个有灵活性的人。

问题23 你怎样做出自己的职业选择?

分析 面试人提出这个问题是为了了解求职者的动机,看看他(她)应聘这份工作是否有什么历史渊源,是否有职业规划,是不是仅仅在漫无目的地申请很多工作。

错误回答 我一直都想在企业界工作。自孩提时代起,我就梦想自己至少也要成为大企业的副总裁。

评论 除了难以令人相信之外,这种回答还存在一个问题:它表明求职者会对副总裁以下的职位不感兴趣。

正确回答 在上大学四年级前的那个夏天,我决定集中精力在某一领域谋求发展。尽管我是学商业的,但是我不知道自己最终会从事哪一行业的工作。我花了一定的时间考虑自己的目标,想清楚了自己擅长做的事情以及想从工作中得到的东西,最后我得出了一个坚定的结论,那就是这个行业是最适合我的。

评论 这种回答表明,求职者认真地做过一些计划,缩小了自己的关注点,而且也认准了前进的方向。这种回答还表明,求职者理解个人职业规划的重要性,并且有能力做出认真的个人决策。

1. 你都用什么测试方法

2.怎么编写案例

3.怎么才能够全面的测试到每一个点

1. 你都用什么测试方法

针对不同的产品或者系统或者模块,有不同的测试方法。总体而言有白盒测试和

黑盒测试。

2.怎么编写案例

案例的编写与测试阶段的定义有很大的关系。系统测试和unit测试的案例可能不同。总体而言测试案例根据系统的需求而定。

3.怎么才能够全面的测试到每一个点

测试的全面性主要需要在设计测试计划的时候考虑,从测试策略,产品需求等等多个角度考虑从而定义全部的测试点。

1、谈谈软件测试技术,以及如何提高

2、谈谈软件测试职业发展,以及个人的打算

3、谈谈软件测试在企业的地位,也可以结合软件生命周期来谈

有可能清晰的思路比确切的答案更重要

在这里,主要说下笔试和面试的问题,希望大家共同参考。

1,一般公司里实际的软件测试流程是什么样的?你们公司又是怎样的? 2,软件工程师要具有那些素质?

3,你会哪些测试工具?怎么操作?

4,你能不能说下你的3到5年的职业计划(规划)

5,你觉得你来应聘有那些优势?

其余的还好说,但就第4个问题,我感到不好说哦!希望大家给个意见

第一关:首先要自我介绍,自己的性格怎么样,目前的工作经历积累了一些什么经验取得了些什么值得一说的成果。然后要说说对软件测试怎么看?还有对于软件测试有什么自己的想法。为什么会想到要做这行(因为我的简历上的工作经历没有关于测试方面的)。哦,还有期望薪资。

第二关:认为软件测试人员所要具备的基本素质,如果遇到问题会怎样处理,如果得不到研发人员的配合(就是研发说这个不是问题)你又会怎么处理?然后就是一些基本概念,比如软件测试的流程有哪些?如果我上任了,首先会怎么开始自己的工作计划。

(前两关通过了后面这个就好过多了)

第三关:像我介绍了一下公司的情况,告诉我主要针对什么内容的测试,会不会使用数据库。告诉我大概要做哪些内容,详细的可以上岗以后慢慢熟悉。

大概就这么多了,这对没有经过这一关的不知道有没有帮助,仅供参考吧 我觉得就像李波说的,关键是要给对方留下好印象:)

面试官最后会问你有什么问题要问吗。作为应聘者的你一般不要说没问题问,这会给面试官留下你不太重视这份工作的坏印象。所以如果你想得到这份工作的话应该抓住这最后的表现自己的机会:

你可以问:

1. 贵公司近期和远期的发展目标是什么? 2. 贵公司的主要竞争对手有哪些?

3. 贵公司有多少开发人员有多少测试人员?

4. 贵公司又进一步扩充测试人员的计划吗?

5. 如果我有幸能进入贵公司的话,我有怎么样的发展?

6. 测试人员的沟通能力很重要,贵公司有规范的沟通渠道吗?

7. 请介绍一下贵公司的福利情况。

8. 请问我什么时候能知道结果

问题一:什么是“软件测试”?

1。出自(IEEE, 1986; IEEE, 1990).

Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features ofthe software item 就是一个通过分析软件和需求之间的差异,发现bug,对软件的功能进行评价的过程。

2。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。

3。软件测试是为了发现错误而执行程序的过程。

这一种也是大多数文档和书籍进行的定义,其实和第一个定义没有什么区别。 问题二:什么是“测试案例”?

测试案例是一份文档,它描述了一个输入、反应、或者是与其相应的预期的响应,以便来判断应用软件的工作是否正常。测试案例应当包括测试标识、测试案例的名称、目标、测试条件/设置、输入数据要求、步骤、以及预期的结果。 问题三:如果时间不够,无法进行充分的测试怎么办?

使用风险分析,确定测试的重点。

由于很少有机会对一个应用软件进行所有可能的测试 (包括所有可能的事件组合、所有的相关性、或者一切可能出错的东西),对大多数软件开发项目来说,利用风险分析是适当的。这需要判断技能、常识、感觉和经验。如果有正当理由,也可采用正式的方法。需要考虑下列因素:

ü 对于该项目的用途而言,哪种功能最重要?

ü 哪种功能对用户最明显?

ü 哪种功能对安全影响最大?

ü 哪种功能对用户最有用?

ü 对客户来说,该应用软件的哪个部分最重要?

ü 在开发过程中,该应用软件的哪个部分可以最先测试?

ü 哪一部分代码最复杂,容易导致出现错误?

ü 哪一部分的应用程序是在急迫或在惊恐的情况下开发出来的?

ü 哪一部分程序与过去项目中引起问题的部分相类似/有关?

ü 哪一部分程序与过去项目中需要大量维护的部分相类似/有关?

ü 需求和设计的那些部分不清楚或不容易读?

ü 开发人员认为在应用软件中哪些部分是高风险的?

ü 哪些问题能造成最差的发行?

ü 哪些问题最能引起用户抱怨?

ü 哪些测试可以容易地覆盖多种功能?

ü 哪些测试在覆盖高风险部分的测试时使用时间最少?

问题四:如果需求一直在变化怎么办?

这是一个常见的令人头疼的问题。

ü如果可能,尽早与承担该项目风险的人接触,以便了解需求会怎样改变,从而可以尽早地改变测试计划和策略。

ü 如果在对应用程序进行初始设计时多考虑一些适应性,那么以后在发生需求的改变时,就不需要再为改变做很多事情了。

ü 好的代码注释和好的文档有助于开发人员作出相应的改变。

ü只要有可能,就应使用快速原型 (rapid prototyping),以帮助用户确认他们的需求,从而减少变更。

ü在项目的时间表中应当留出余量,以应付可能出现的变更。

ü尽量把新的需求纳入应用软件的“下一版”,而把原始需求作为“第一版”。 ü通过谈判,把易于实现的新的变更列入项目,而把难于实现的新需求列入该应用软件的以后的版本。

ü要确保让客户和管理人员了解变更对进度表的影响、所带来的风险、以及因变更所引起的大量资金消耗。

ü在应付改变时,应在为建立自动测试而作的努力和重新进行测试所做的努力之间取得平衡。

ü在设计自动测试剧本时,试图使其有一些灵活性。

ü在对应用软件进行自动测试时,要把注意力集中在看来不大会改变的部分。 ü对变更进行适当的风险分析,以减少回归测试的要求。

ü在设计测试案例时要有一定的灵活性。做到这一点并不容易,所以要降低测试案例的详细程度,或者只建立高级的通用型的测试计划。

ü 少注意详细的测试计划和测试案例,要把重点放在专门的测试 (ad hoc testing) 上。

测试的几个原则

1. 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。

2. 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。

3. 程序员应避免检查自己的程序。

4. 在设计测试用例时,应包括合理的输入条件和不合理的输入条件。

5. 充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。

6. 严格执行测试计划,排除测试的随意性。

7. 应当对每一个测试结果做全面检查。

8. 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。 关于bug

测试的原则---Good Enough

对于相对复杂的产品或系统来说,zero-bug是一种理想,good-enough是我们的原则。

Good-enough原则就是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现。我们的操作困难在于:如何界定什么样的测试是不充分的,什么样的测试是过分的。目前状况唯一可用的答案是:制定最低测试通过标准和测试内容,然后具体问题具体分析。

测试的规律----木桶原理和80-20原则

(1)木桶原理

在软件产品生产方面就是全面质量管理(TQM)的概念。产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持、甚至文化因素也会影响最终产品的质量。应该说,测试是提高产品质量的必要条件,也是提高产品质量最直接、最快捷的手段,但决不是一种根本手段。反过来说,如果将提高产品质量的砝码全部押在测试上,那将是一个恐怖而漫长的灾难。

(2)Bug的80-20原则。

实践证明。80%的bug往往隐含在20%的软件区域。所以一旦在某处发现了bug,多找找周围。这也是有经验的测试员的一种方式。

一般情况下,在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的Bug,而系统测试又能找出其余Bug中的80%,最后的5%的Bug可能只

有在用户的大范围、长时间使用后才会曝露出来。因为测试只能够保证尽可能多地发现错误,无法保证能够发现所有的错误。

1、 为什么要在一个团队中开展软件测试工作?

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

2、您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

我曾经做过web测试,后台测试,客户端软件,其中包括功能测试,性能测试,用户体验测试。最擅长的是功能测试

3、您所熟悉的软件测试类型都有哪些?

测试类型有:功能测试,性能测试,界面测试。

4、请试着分别比较不同的测试类型的区别与联系(如功能测试、性能测试……)

功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。

区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试。

黑盒测试的测试用例设计方法

·等价类划分方法

·边界值分析方法

·错误推测方法

·因果图方法

·判定表驱动分析方法

·正交实验设计方法

·功能图分析方法

等价类划分方法

含义:

在很多时候,某些数据输入后得到的输出结果是相同或者相似的,而与其他一些数据输入后的到的结果不相近,从而我们可以把输入数据划分成若干个集合,称之为有效等价类。从每一个集合中选取代表性的数据作为测试用例使用数据,从而减少了输入数据量提高了效率。

划分的等价类集合可以分为有效等价类和无效等价类。有效等价类就是将有效的符合逻辑的正确数据进行划分。无效等价类反之。

划分集合的方法有:

1)在限定取值范围或个数时,可以划分一个有效等价类和两个无效等价类;

2)在规定了输入值集合或必须是“XX类型”时,可以划分一个有效等价类和一个无效等价类;

3)在输入值为布尔类型时,可以划分一个有效等价类和一个无效等价类;

4)在输入一组(n个)值且伴有判断情况(m种)时,可划分n或m个有效等价类和一个无效等价类;

5)在输入规定正则表达式时,可以划分一个有效等价类和若干个无效等价类;

设计测试用例:

为每个等价类规定一个唯一的编号;

设计一个新的测试用例,尽最大可能引入未被引入的有效等价类。反复建立新用例,直到所有等价类被使用。

设计一个新的测试用例,仅仅引入一个未被引入的无效等价类。反复建立新用例,直到所有等价类被使用。

边界值分析方法

含义:

边界值分析方法是等价类划分方法的有力补充。由于在后者输入中,我们选择的是一些代表性的数据而不是全部数据进行输入,所以难免会有些会引起错误的特殊数据未被选择。由于这类数据往往集中在各个划分好的等价类的边界值附近,所以称之为边界值分析法。而且,在这种方法中,不单要考虑输入域也要考虑输出域。

选值方法:

一般原则是应当选择刚好等于,稍微大于和小于边界值的值进行测试。

1)当输入域为一个值的范围时,选择范围的边界值和略微超越边界值的值;

2)当输入域规定了值的个数时,选择max,max+1,min,min-1;

3)当输出域判断为一个值的范围时,使用1)方法;

4)当输出域判断为限定个数的值时,使用2)方法;

5)当输入输出域判断依据一个有序列时,选择有序列的第一个和最后一个元素;

6)当输入输出域判断依据一个内部数据结构时,使用改数据结构的边界值;

7)除了规定的范围,考虑会存在的其他未明示的可能;

设计测试用例:

对每个边界值建立一个新的用例。

错误推测方法

含义:

有些点虽然不是一个主要的输入输出接口,但是很容易出现错误,或者在产品的以前版本中某个点会反复出现错误。针对这些情况,设定一些测试用例来监视这些容易出错的地方,能够有效的提高错误产生点的判断效率。这种方法是一种预推测,一般都是经验的总结。

设计测试用例:

按照会发生错误的情况去书写测试用例,这样就能主动监测那些容易出错的点。

因果图方法

含义:

仅仅将值输入,是不断验证单个数据的情况。有时候,我们需要将各个数据联系在一起考虑,从而引申出多种组合,这时候有些单个数据完好的功能就可能出现错误。组合数据,主要就是根据他们之间的逻辑关系,使用同一组数据搭配不同的线路,来测试不同的路径。

设计测试用例:

第一步,分析软件说明,将输入和输出分别列出,并赋予一个唯一的标志符; 第二步,分析语义和设计,将输入和输出之间的对应关系和各自之间的联系列出来,画出因果图;

第三步,根据逻辑分析,从因果图中将不可能出现的情况移除;添加约束和限定条件;

第四步,将因果图转换为判定表;

第五步,根据判定表的每一列,设计一个新用例。

说明:

从因果图生成测试用例,包括了所有输入数据的取false和取true的情况,生成的测试用例数目达到最少。测试用例的数目是随着输入数据量的增加而增加。

判定表驱动分析方法

含义:

因果图可以生成判定表,但是也可以直接使用判定表。判定表(Decision Table)是列举和分析复合逻辑条件下多个路径的工具。主要是通过一个二维表格一目了然的将负责的逻辑结构和多种条件组合的情况表达出来。

组成:

条件桩(Condition Stub),列出所有条件。通常认为条件的次序是无关的。 动作桩(Action Stub),列出所有可能采取的动作,这些操作是没有次序约束的。

条件项(Condition Entry),列出针对它左列条件的取值。在所有坑能情况下的真假值。

动作项(Action Entry),列出在条件项的各种取值情况下应该采取的动作。

规则:

就是任何一个条件组合的特定取值及其相应要执行的操作。在判定表中,贯穿条

件项和动作项的一列就是一条规则。

判定表的建立步骤:

第一步,确定规则的个数,例如:有n个条件,每个条件可取值为0和1,则有2n个规则。

第二步,列出所有的条件桩和动作桩。

第三步,填入条件项。

第四步,填入动作项。得到初始判定表。

第五步,简化合并详细规则。

可以使用判定表的条件:

1)软件说明本身就是以判定表形式给出的。

2)条件的排列顺序步影响执行那些操作。

3)规则的排列顺序不影响执行哪些操作。

4)每当某一规则的条件满足,即可确定要执行操作,不受其他规则影响。

5)如果某一个规则的条件得到满足需要执行多个操作,这些操作的顺序应该是无关的。

① 专心:在执行测试任务的时候一定要专心,不可一心二用。高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。

② 细心:执行测试工作时候要细心,认真执行测试,不可以忽略一些细节,特别是刚接触测试的。某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。

③ 责任心:责任心是做好工作必备的素质之一,作为初级测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。在我以前工作过两年的一家外资

公司,他们要求测试人员首先必须具备非常强的责任心!

④ 自信心:自信心是现在多数测试工程师都缺少的一项素质,更不用说初级的测试工程师了,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。

⑤ 耐心:测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。

⑥ 恒心:从事软件测试工作,很多测试工程师也迎来了个人的发展瓶颈,很多人从测试工程师做到了测试经理的职位,不知道下一步如何发展;或者每天机械地从事着功能测试工作。测试工程师要想成功,更多的是靠平时的积累。不管是项目的积累,还是平时学习,两者都至关重要。

⑦ 平常心:测试的目的是为了发现缺陷,并确认缺陷得以纠正。在此特别声明:测试人员切勿一发现BUG就嘲笑开发人员技术不行,并进行人格上的攻击,必须保持一颗平常心去对待问题所在。要不然就会引起整个测试工作僵局,不管是开发还是测试人员都会对你有看法。就别想得到什么认可了。当然决定不是叫你圆滑之类,你必须懂得正确地处理好人际关系。毕竟那里是你的根据地。

智商测试类的题是这个网址的图形选项

/zhuanti/iq/

英语方面是英译汉,主要有

单元测试,集成测试,系统测试

Alpha测试, Beta测试

汉译英是:

回归测试是软件维护阶段的只要工作,在回归测试上花的耗费大约是软件维护阶段总费用的三分之一以上.

测试题是:

在桌面上单击右键,新建一个文本文档,问如何对这个过程进行测试,写出所有可能的测试方法和测试步骤

编程题:

用自己熟悉的语言编写一个数组排序的程序

第二个智力测试是:

有一个七行七列的街道,有七个朋友分别住在不同的街道上,有一天,他们想聚餐,问选择那里聚餐,才能使每个人都走最短的路程.原题有图.

文思创新软件测试面试题 收藏

1.14个心理测试题;

2.推断题:有一个说谎岛,上面居住者人还有吸血鬼,有一年岛上流行瘟疫,有一半的人和吸血鬼疯了,于是岛上有神志清醒的人和精神错乱的人,还有神志清醒的吸血鬼和精神错乱的吸血鬼,其中神志清醒的人和精神错乱的吸血鬼只说真话,而精神错乱的人和神志清醒的吸血鬼只说假话,并且他们回答问题只说“是”或“不是”;

有一天岛上来了一位“逻辑博士”在岛上遇见了P,博士问了一个问题就分出他是人还是吸血鬼,博士又问了一个问题就分辨出他是神志清醒的还是精神错乱的。

请写出博士问得两个问题;

写出你的思路。

3.一篇关于人文方面的英语文章翻译成汉语;

Answer the following questions in English:

4.what kind of phone do you use?

Why do you choose this kind of phone? List errors you find when you use it.

5. Now you work in team A but you want to change your work, that is to say you will join in Team B, how do you tell your Leader and the Project Manager this?

Key point:

1. what kind of work have you done in Team A?

2. why do you want to change your work?

口答:

1. Please introduce yourself briefly in English;

2.你为什么选择软件测试行业?

3.你的职业规划;

4.手机中通讯录的功能测试;

5.英文问题(在测试时代学到了什么-----英文题目)

6.你认为测试人员需要具备哪些素质?

单 元 测 试

单元测试

也称模块测试,这是针对软件设计的最小单位-模块进行正确性检验的测试工作,其目的在于发现各模块内部可能存在的各种差错。单元测试的依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用结构测试(白盒测试)技术,系统内多个模块可以并行地进行测试。

软件测试阶段可以分为若干个小的阶段,阶段的划分有多种,我现在按流程顺序将其分为四个阶段:

· 单元测试:由项目小组完成

· 集成测试:由项目小组完成

· 系统测试:由专业测试小组完成

· 用户测试(验收测试):用户和开发商共同完成。

测试的四个阶段完全逆向检测了软件开发的各个阶段。单元测试主要是测试程序代码,集成测试主要是对设计的检测,系统测试主要测试了软件的功能,

交接测试主要是对用户需求的一种检测。但是每个测试阶段仍要对其它测试阶段的测试内容加以测试,只是测试重点不同。

在单元测试前,先让我们明白以下几个问题,这可以使我们对单元测试更加清晰。

· 单元测试的目标: 确保模块是正确地编码

· 由谁去做: 通常由程序人员测试

· 怎样去测试: 功能测试可以用黑匣测试方法,代码测试可用白匣测试方法

· 什么时候可以停止:当程序员感到代码没有缺陷时

· 记录: 通常没有记录

我们在清楚以上问题后就可以编写测试用例了。测试用例是输入、执行条件和一个特殊目标所开发的预期结果集合。它按测试目的不同可分为以下几种类型:

· 需求测试用例:测试是否符合需求规范

· 设计测试用例:测试是否符合系统逻辑结构

· 代码测试用例:测试代码的逻辑结构和使用的数据

需求测试用例通常是按照需求执行的功能逐条地编写输入数据和期望输出。一个好的需求用例是可以用少量的测试用例就能够覆盖所有的程序功能。

设计测试用例检测的是代码和设计是否完全相符。是对底层设计和基本结构上的测试。设计测试用例可以涉及到需求测试用例没有覆盖到的代码空间(例如界面的设计)。

代码测试用例是基于运行软件和数据结构上的。它要保证可以覆盖所有的程序分支、最小的语句和输出。

以上三种用例所用的数据又可分为正常数据、边缘数据和错误数据。 · 正常数据:在测试中所用的正常数据的量是最大的,而且也是最关键的。少量的测试数据不能完全覆盖需求,但我们要从中提取出一些具有高度代表性的数据作为测试数据,以减少测试时间。

· 边缘数据:边缘测试是界于正常数据和错误数据之间的一种数据。它可以针对某一种编程语言、编程环境或特定的数据库而专门设定。例如若使用SQL Server数据库,则可把SQL Server关键字(如:';AS;Join等)设为边缘数据。

其它边缘数据还有:HTML的HTML;<>等关键字以及空格、@、负数、超长字符等。边缘数据要靠测试人员的丰富经验来制定。

· 错误数据:显而易见,错误数据就是编写与程序输入规范不符的数据从而检测输入筛选、错误处理等程序的分支。

由于执行测试用例的数据量巨大以及还要进行回归测试,所以可以考虑使用自动测试工具,但提取测试数据仍要依靠编写测试用例人员的经验。并且,我们还要注意到自动测试也许不能找到程序中所有错误,手动测试所找到的错误会比自动测试所找到的要多。

有了测试用例,我们就可以进行测试了吧?许多公司也是这样做的,但建议大家最好要先进行代码的审议。通过代码审议找到的错误可以比测试用例测试所能找到的错误更加深入,并且发现错误的时间也比测试用例要早。代码审议要以代码标准(根公司具体情况自行制定)为依据,一般情况下要检查以下几点:

· 代码风格和规则审核

· 程序设计和结构的审核

· 业务逻辑的审核

代码风格和规则的审核是在每个程序员完成一个模块或类的时候要进行编码规范的检查。要召开审核会议让所有的项目组人员都参加。在会前项目经理要做一个检查表,以表的内容为检查依据,检查表的内容主要是检查的要点。在审核会上项目组的每一个人员都能看到自己和其他人员的编码问题,从而起到预防的作用。这些问题都要被解决,并且解决的结果要在审议会上被确认。

进行程序设计和结构的审议是因为开发工具的不同和项目时间的限制而造成设计不详细。比较深入的设计通常是在编码阶段完成的,但由于程序人员和设计人员的经验是不同的,所以会出现很大的问题。我们引入了程序设计和结构审核来保证质量。审核人员要有先进的技术开发经验。在审核之前也要一个审核列表,列出主要几项,如:程序的概要、详细设计。但仅局限于列表是不够的,审议人员还要审议程序的精巧度和具有创造力的方面,这只能靠经验而不能只靠列表中的内容来审议。对于不同的程序员所检测代码的宽度和深度也是不同的。项目经理可以根据程序员经验的不同制定被审议人员的宽度和深度。例如:年轻的程序员要审议所有代码。但有经验的就可适当减少。

业务逻辑性审议必须要在代码完成后审议。业务逻辑审议实际上是审议单元模块的功能。这些功能是以系统说明为依据的。审议人员要有开发的经验并且对系统也要熟悉。审议人员通过执行程序从而了解底层代码的状态。这阶段的审议实际也包含了前两种审议,因为审议者也可以通过最后的结果检测单元模块设计和结构的准确性。

以上三种审议都要耗费一定的时间和资源,但是它却能更早地发现和解决不易显现的错误。

审议通过后,我们终于可以使用用例来进行代码测试和调试了。代码的调试是用来保证程序能按照系统需求正常运行的一种手段。但是我所提到的这种代码调试并不是简单的调试,它要包括以下两部分:

· 特征调试

· 代码覆盖调试

首先我们要先进行特征调试。它是通过运行程序找到代码中的错误,这与我们平时常进行的调试相同。到程序能运行后,我们可使用已编好的三种类型的用例并以正常数据测试用例进行测试,若不能正常运行则要用调试工具调试。在这阶段,我们要用大量正常数据去测试。测试后,该程序应可在绝大多数的正常数据中运行。

其次,我们要进行代码覆盖测试,一直要达到以下目标为至:

· 测试到每一个最小语句的代码

· 测试到所有的输出结果

我们应该通过一步步的调试去运行每个程序的所有语句和分支。如果我们想要百分之百地覆盖就应适当运用边缘数据和错误数据。测试在这个阶段的质量是难以掌握的。它基于程序员的责任心和经验。当这阶段完成后,每个程序员所测的深度也是不同的。因此,在这个测试阶段之前,项目经理(或测试工程师)应制定出测试指导和计划书。它们至少应包括以下内容:

· 测试的主要对象

· 主要调试点

· 怎样测试

· 什么时候可以完成

至今为至,我们已完成了代码的审议和调试。如果我们是严格按照以上步骤做的,那就可以保证代码没有太多的错误,至少没有使程序运行中断的错误了。如果我们不能很好地执行代码审议和正确的调试,那我们就不能顺利地通过测试,有时我们还要不得不返回来做这些事。

单元测试的基本方法

单元测试的对象是软件设计的最小单位——模块。单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。

单元测试任务

单元测试任务包括:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。 模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。测试接口正确与否应该考虑下列因素:

1 输入的实际参数与形式参数的个数是否相同;

2 输入的实际参数与形式参数的属性是否匹配;

3 输入的实际参数与形式参数的量纲是否一致;

4 调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同; 5 调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配; 6调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致; 7 调用预定义函数时所用参数的个数、属性和次序是否正确;

8 是否存在与当前入口点无关的参数引用;

9 是否修改了只读型参数;

10 对全程变量的定义各模块是否一致;

11是否把某些约束作为参数传递。

如果模块内包括外部输入输出,还应该考虑下列因素: 1 文件属性是否正确; 2 OPEN/CLOSE语句是否正确; 3 格式说明与输入输出语句是否匹配; 4缓冲区大小与记录长度是否匹配; 5文件使用前是否已经打开; 6是否处理了文件尾; 7是否处理了输入/输出错误; 8输出信息中是否有文字性错误;

检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确。局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误:

1 不合适或不相容的类型说明;

2变量无初值;

3变量初始化或缺省值有错;

4不正确的变量名(拼错或不正确地截断);

5出现上溢、下溢和地址异常。

除了局部数据结构外,如果可能,单元测试时还应该查清全局数据对模块的影响。

在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。此时设计测试用例是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。此时基本路径测试和循环测试是最常用且最有效的测试技术。计算中常见的错误包括:

1 误解或用错了算符优先级;

2混合类型运算;

3变量初值错;

4精度不够;

5表达式符号错。

比较判断与控制流常常紧密相关,测试用例还应致力于发现下列错误: 1不同数据类型的对象之间进行比较; 2错误地使用逻辑运算符或优先级; 3因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等; 4比较运算或变量出错; 5循环终止条件或不可能出现; 6迭代发散时不能退出; 7错误地修改了循环变量。

一个好的设计应能预见各种出错条件,并预设各种出错处理通路,出错处理通路同样需要认真测试,测试应着重检查下列问题:

1输出的出错信息难以理解;

2记录的错误与实际遇到的错误不相符;

3在程序自定义的出错处理段运行之前,系统已介入;

4异常处理不当;

5错误陈述中未能提供足够的定位出错信息。

边界条件测试是单元测试中最后,也是最重要的一项任务。众的周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。

单元测试过程

一般认为单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查,便可开始单元测试。测试用例的设计应与复审工作相结合,根据设计信息选取测试数据,将增大发现上述各类错误的可能性。在确定测试用例的同时,应给出期望结果。

应为测试模块开发一个驱动模块(driver)和若干个桩模块(stub),下页图显示了一般单元测试的环境。驱动模块在大多数场合称为“主程序”,它接收测试数据并将这些数据传递到被测试模块,被测试模块被调用后,“主程序”打印“进入-退出”消息。

驱动模块和桩模块是测试使用的软件,而不是软件产品的组成部分,但它需要一定的开发费用。若驱动和桩模块比较简单,实际开销相对低些。遗憾的是,

仅用简单的驱动模块和桩模块不能完成某些模块的测试任务,这些模块的单元测试只能采用综合测试方法。

提高模块的内聚度可简化单元测试,如果每个模块只能完成一个,所需测试用例数目将显著减少,模块中的错误也更容易发现。

考虑进行何种测试 收藏

黑盒测试(Black box testing) ____不考虑内部设计和代码,根据需求和功能进行测试

白盒测试 (White box testing) ── 根据应用软件的代码的内部逻辑,按照代码的语句、分支、路径和条件进行测试。

部件测试 (Unit testing) --最小范围的测试,针对特定的函数和代码模块进行测试。因为需要了解程序的设计和代码的细节才能进行,所以部件测试一般是程序员。而不是由测试人员来做。除非应用软件的结构设计良好,而且代码也写得清楚,否则部件测试并非易事。也许需要开发测试驱动模块或测试工具。

递增的综合测试(incremental integration testing)--不断进行的测试过程,每增加一个新的功能模块,都进行测试。这要求一个应用软件在最终完成之前,各功能模块要相对独立,或者已根据需要开发出测试驱动软件。这种测试可由程序员或测试人员进行。

综合测试(integration testing)--对应用软件的各个部分进行组合测试,来检查各功能模块在一起工作是否正常,“部件“可以是代码模块、独立的应用程序、也可以是网络中的客户/服务器应用软件。这种测试特别使用客户/服务器环境和分布式系统

功能测试(functional testing)--对一个应用软件的功能模块进行黑盒测试。这种测试应当由测试人员进行。但这并不意味着程序员在推出软件之前不进行代码检查。(这一原则适用于所有的测试阶段。)

系统测试 -- 针对全部需求说明进行黑盒测试,包括系统中所有的部件

端到端测试 (end-to-end testing) ── 类似于系统测试,但测试范围更“宏观”一些。模仿实际应用环境,对整个应用软件进行使用测试。例如与数据库进行交互作业、使用网络通信、与其他硬件、应用程序和系统之间的相互作用是否满足要求。

健全测试 (sanity testing) ── 是一种典型的初始测试。判断一个新的软件版本的运行是否正常,是否值得对它作进一步的测试。例如,如果一个新的软件每 5 分钟就破坏系统、大大降低系统的运行速度、或者破坏数据库,那么这样的软件就算不上是“健全”的,不值得在目前状态下进行进一步的测试。

回归测试 (regression testing) ── 每当软件经过了整理、修改、或者其环境发生变化,都重复进行测试。很难说需要进行多少次回归测试,特别是是到了开发周期的最后阶段。进行此种测试,特别适于使用自动测试工具。

认同测试 (acceptance testing) ── 基于说明书的、由最终用户或顾客来进行的测试。或者由最终用户/顾客来进行一段有限时间的使用。

负荷试验 (load testing) ── 在大负荷条件下对应用软件进行测试。例如测试一个网站在不同负荷情况下的状况,以确定在什么情况下系统响应速度下降或是出现故障。

压力测试 (stress testing) ── 经常可以与“负荷测试”或“性能测试”相互代替。这种测试是用来检查系统在下列条件下的情况:在非正常的巨大负荷下、某些动作和输入大量重复、输入大数、对数据库进行非常复杂的查询,等等。

性能测试 (performance testing) ── 经常可以与“压力测试”或“负荷测试”相互代替。理想的“性能测试”(也包括其他任何类型的测试) 都应在质量保障和测试计划的文档终予以规定。

可用性测试 (usability testing) ── 是专为“对用户友好”的特性进行测试。这是一种主观的感觉,取决于最终用户或顾客。可以进行用户会见、检查、对用户会议录像、或者使用其他技术。程序员和测试人员通常不参加可用性测试。

安装/卸载测试 (install/uninstall testing) ── 对安装/卸载进行测试 (包括全部、部分、升级操作)。

恢复测试 (recovery testing) ── 在系统崩溃、硬件故障、或者其他灾难发生之后,重新恢复系统的情况。

安全测试 (security testing) ── 测试系统在应付非授权的内部/外部访问、故意的损坏时的防护情况。这需要精密复杂的测试技术。

兼容性测试 (compatability testing) ── 测试在特殊的硬件/软件/操作系统/网络环境下的软件表现。

认同测试 (acceptance testing) ── 看顾客是否对软件满意。

比较测试 (comparison testing) ── 与竞争产品进行比较,以找出弱点和优势。

α 测试 (alpha testing) ── 在开发一个应用软件即将完成时所进行的测试。此时还允许有较小的设计修改。通常由最终用户或其他人进行这种测试,而不是由程序员和测试人员来进行。 β 测试 (beta testing) ── 当开发和测试已基本完成,需要在正式发行之前最后寻找毛病而进行的测试。通常由最终用户或其他人进行这种测试,而不是由程序员和测试人员来进行。

软件测试工具集

1 、 从测试功能上分

( 1 ) 单元测试 : 针对不同语言,如 JUNIT

( 2 ) 功级测试

E—Test :功能强大,由于不是采用 POST URL 的方式回放脚本,所以可以支持多内码的测试数据(当然要程序支持),基本上可以应付大部分的 WEB SITE 。

MI 公司的 WINRUNNER

COMPUWARE 的 QARUN

RATIONAL 的 SQA ROBOT

( 3 ) 压力测试

MI 公司的 WINLOAD

COMPUWARE 的 QALOAD

RATIONAL 的 SQA LOAD

( 4 ) 负载测试

LOADRUNNER

RATIONAL VISUAL QUANTIFY

( 5 ) WEB 测试工具

MI 公司的 ASTRA 系列

RSW 公司的 E—TEST SUITE 等

( 6 ) WEB 系统测试工具

WORKBENCH

WEB APPLICATION STRESS TOOL ( WAS )

( 7 ) 数据库测试工具

TESTBYTES

( 8 ) 回归测试工具

RATIONAL TEAM TEST

WINRUNNER

( 9 ) 嵌入式测试工具

ATTOLTESTWARE 。是 ATTOLTESTWARE 公司的自动生成测试代码的软件测试工具,特别适用于嵌入式实时应用软件单元和通信系统测试。

CODETEST 是 AppliedMicrosystemsCorp. 公司的产品 , 是广泛应用的嵌入式软件在线测试工具。

GammaRay 。 GammaRay 系列产品主要包括软件逻辑分析仪 GammaProfiler 、可靠性评测工具 GammaRET 等。

LogiScope 是 TeleLogic 公司的工具套件,用于代码分析、软件测试、覆盖测试。

LynxInsure++ 是 LynxREAL-TIMESYSTEMS 公司的产品,基于 LynxOS 的应用代码检测与分析测试工具。

MessageMaster 是 ElviorLtd. 公司的产品,测试嵌入式软件系统工具,向环境提供基于消息的接口。

VectorCast 是 VectorSoftware.Inc 公司的产品。由 6 个集成的部件组成,自动生成测试代码,为主机和嵌入式环境构造可执行的测试架构。

( 10 ) 系统性能测试工具

Rational Performance

( 11 ) 页面链接测试

Link Sleuth

( 12 ) 测试流程管理工具

Test Plan Control

( 13 ) 测试管理工具

TestDirector 微创 tcm Rational 公司的 Test Manager

Compuware 公司的 QADirector

TestExpert :是 Silicon Valley Networks 公司产品的测试管理工具,能管理整个测试过程,从测试计划、测试例程、测试执行到测试报告。 ( 14 ) 缺陷跟踪工具

TrackRecord 等

( 15 ) 其他测试工具包

TestVectorGenerationSystem 是 T—VECTechnologies 公司的产品。提供自动模型分析、测试生成、测试覆盖分析和测试执行的完整工具包,具有方便的用户接口和完备的文档支持。

TestQuestPro 是 TestQuest 公司的非插入码式的自动操纵测试工具,提供一种高效的自动检测目标系统,获取其输出性能的测试方法。

TestWorks 是 SoftwareResearch.Inc 公司的一整套软件测试工具,既可单独使用,也可捆绑销售使用。

常见的软件测试面试题

文章关键字: 软件工程师

时间:2008-12-10

常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

1. 等价类划分

常见的软件测试划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

2. 边界值分析法

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

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

3. 错误推测法

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

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

4. 因果图方法

前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能

会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

5. 正交表分析法

有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。

6. 场景分析方法

指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。

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

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

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

详细的描述一个测试活动完整的过程。

1. 项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显

冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪

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

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

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

5. 测试人员搭建环境

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

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

8. 重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。

9. 如果有客户反馈的问题,需要测试人员协助重现以及回归测试。

以往是否曾经从事过性能测试工作?请尽可能的详细描述您以往的性能测试工作的完整过程。

曾经做过一套网管系统的性能测试,主要测试该软件在同时管理大量终端的情况下,在响应时间,CPU/磁盘/内存等参数是否满足要求。

也曾经做过软交换系统的呼叫性能测试,主要是测试软交换系统在有大量呼叫的情况下,响应时间,呼叫成功率,CPU/磁盘/内存等参数是否满足设计要求。

您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

测试网管系统中,使用的Mimic来模拟终端,能够大量的节省成本。 测试软交换系统的时候,使用的Prolab来模拟终端并发送呼叫软交换,他完成了同时数百人才能完成的摘机拨号工作,主要工作原理是产生一些符合要求的IP包并发送给软交换系统,同时对软交换系统的回应进行处理,决定下一步动作。

您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么? 主要是保障在大量用户的情况下,服务能正常使用。

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

1. 在传统的BugZilla中,BUG描述应该包括以下的信息

2. 和BUG产生对应的软件版本

3. 开发的接口人员

4. BUG的优先级

5. BUG的严重程度

6. BUG可能属于的模块,如果不能确认,可以用开发人员来判断

7. BUG标题,需要清晰的描述现象

8. BUG描述,需要尽量给出重新Bug的步骤

9. BUG附件中能给出相关的日志和截图。

高质量的BUG记录就是指很容易理解的BUG记录,所以,对于描述的要求高,能提供的信息多且准确,很好的帮助开发人员定位。

负载测试

负载测试(Load testing),通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。

编辑本段容易混淆的其他测试

三分类定义

负载测试、压力测试和性能测试的测试目的不同,但其手段和方法在一定程度上比较相似,通常会使用相同的测试环境和测试工具,而且都会监控系统所占用资源的情况以及其它相应的性能指标,这也是造成人们容易产生概念混淆的主要原因。 运行环境

我们知道,软件总是运行在一定的环境下,这种环境包括支撑软件运行的软硬件环境和影响软件运行的外部条件。为了让客户使用软件系统感到满意,必须确保系统运行良好,达到高安全、高可靠和高性能。其中,系统是否具有高性能的运行特征,不仅取决于系统本身的设计和程序算法,而且取决于系统的运行环境。系统的运行环境会依赖于一些关键因素,例如:

系统架构,如分布式服务器集群还是集中式主机系统等。

硬件配置,如服务器的配置,CPU、内存等配置越高,系统的性能会越好。 网络带宽,随着带宽的提高,客户端访问服务器的速度会有较大的改善。 支撑软件的选定,如选定不同的数据库管理系统(Oracle、MySQL等)和web应用服务器(Tomcat、GlassFish、Jboss、WebLogic等),对应用系统的性能都有影响。 外部负载,同时有多少个用户连接、用户上载文件大小、数据库中的记录数等都会对系统的性能有影响。一般来说,系统负载越大,系统的性能会降低。

从上面可以看出,使系统的性能达到一个最好的状态,不仅通过对处在特定环境下的系统进行测试以完成相关的验证,而且往往要根据测试的结果,对系统的设计、

代码和配置等进行调整,提高系统的性能。许多时候,系统性能的改善是测试、调整、再测试、再调整、……一个持续改进的过程,这就是我们经常说的性能调优(perormance tuning)。

在了解了这样一个背景之后,就比较容易理解为什么在性能测试中常常要谈负载测试。从测试的目的出发、从用户的需求出发,就比较容易区分性能测试、负载测试和压力测试。性能测试是为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据,而负载测试、压力测试是为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等。通过负载测试,也是为了获得系统正常工作时所能承受的最大负载,这时负载测试就成为容量测试。通过压力测试,可以知道在什么极限情况下系统会崩溃、系统是否具有自我恢复性等,但更多的是为了确定系统的稳定性。 各区别定义

那么,如何给负载测试、压力测试下个定义呢?根据上述讨论,我们可以给出如下的定义:

负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。

压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄漏问题,还可以更快地发现影响系统稳定性的问题。例如,在正常负载情况下,某些功能不能正常使用或系统出错的概率比较低,可能一个月只出现一次,但在高负载(压力测试)下,可能一天就出现,从而发现有缺陷的功能或其它系统问题。通过负载测试,可以证明这一点,某个电子商务网站的订单提交功能,在10个并发用户时错误率是零,在50个并发用户时错误率是1%,而在200个并发用户时错误率是20%。

负载测试是为了发现系统的性能问题,负载测试需要通过系统性能特性或行为来发现问题,从而为性能改进提供帮助,从这个意义看,负载测试可以看作性能测试的一部分。但它们两者的目的是不一样的,负载测试是为了发现缺陷,而性能测试是为了获取性能指标。因为性能测试过程中,也可以不调整负载,而是在同样负载情况下改变系统的结构、改变算法、改变硬件配置等等来得到性能指标数据,从这个意义看,负载测试可以看作是性能测试所c的一种技术,即性能测试使用负载测试的技术、使用负载测试的工具。性能测试要获得在不同的负载情况下的性能指标数据。

通过负载测试和压力测试都可以获得系统正常工作时的极限负载或最大容量。容量测试,自然也是采用负载测试技术来实现,而在破坏性的压力测试中,容量的确定

可以看作是一种副产品——间接结果。

综合概括

所述,负载测试、压力测试和性能测试的概念可以概括如下:

负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。负载测试的加载方式也有很多种,可以根据测试需要来选择。

性能测试是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。

压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。

编辑本段Apache 负载测试

1000个请求,每次10个,这个测试和下载的网页大小有关系,几K的网页是快,要是下上M的文件当然慢了,至于keepalive是允许一个http连接开多个请求线程,这个参数是测试httpd里面KeepAlive;MaxKeepAliveRequests;MaxKeepAliveRequests;KeepAliveTimeout

;KeepAliveTimeout等选项设置数值的合理性的,你没设置的话使用默认值,应该跟你的测试没多大关系.

至于你想知道实用的情况怎样,其实大多数浏览器应该不会用到keepalive方式的,即使是firefox也需要另外装个插件才能多线程下载网页,IE6是单线程的,IE7不知道,如果你要开http下载文件,你的机器一定要强,可以考虑把连接数等数值设大一些,windows下的apache不是很清楚了,我一直都在linux下做服务的.

以下是网上零散的资料,我对他们进行了整理。

性能测试(或称多用户并发性能测试)、负载测试、强度测试、容量测试是性能测试领域里的几个方面,但是概念很容易混淆。下面将几个概念进行介绍。

性能测试(Performance Test):通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用。

关注点:how much和how fast

负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。

关注点:how much

强度测试(Stress Test): 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。包括

Spike testing:短时间的极端负载测试

Extreme testing:在过量用户下的负载测试

Hammer testing:连续执行所有能做的操作

容量测试(Volume Test):确定系统可处理同时在线的最大用户数

关注点:how much(而不是how fast)

容量测试,通常和数据库有关,容量和负载的区别在于:容量关注的是大容量,而不需要表现实际的使用。

其中,容量测试、负载测试、强度测试的英文解释为:

Volume Testing = Large amounts of data

Load Testing = Large amount of users

Stress Testing = Too many users, too much data, too little time and too little room

可能大家角色性能测试、负载测试和强度测试比较混淆。没错,这三个概念是比较容易使人糊涂。负载测试和强度测试,都属于性能测试的子集。下面举个跑步的例子进行解释。

性能测试,表示在一个给定的基准下,能执行的最好情况。例如,在没有负重的情况下,你跑100米需要花多少时间(这边,没有负重是基准)?

负载测试,也是性能测试,但是他是在不同的负载下的。对于刚才那个例子,如果扩展为:在50公斤、100公斤……等情况下,你跑100米需要花多少时间? 强度测试,是在强度情况下的性能测试。对于刚才那个例子,如果改为:在一阵强风的情况下,你在负重或没有负重的情况下,跑100米需要花多少时间?

更多相关推荐:
软件测试经验总结

软件生命周期(SDLC)的六个阶段1、问题的定义及规划此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。2、需求分析在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析…

手机软件测试经验总结

手机软件测试总结沙晶晶一个合格的手机软件测试工程师要掌握的东西是很多很多的。在我个人理解中,一个合格的高级手机软件测试工程师应该具有最基本的两点知识:软件测试理论知识和一定的开发技能。1.软件测试理论知识这个不…

软件测试6年工作经验总结

1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱…

软件测试工程师年终工作总结

20xx年终工作总结一:20xx年工作回顾及总结回顾20xx年这一年来的工作,我在公司领导及各位同事的支持和帮助下,严格要求自己,按照公司要求,比较好地完成了本职工作。通过近一年的学习和工作,工作模式上有了新的…

软件测试半年工作汇报总结

年工作总结工作刚满三个月,在这三个月的时间内,我主要做了以下几个方面的工作:1.对软件的熟悉与理解2.跟随开发人员对软件的改进进行了跟踪测试,利用功能组合的方法,对各种工具进行了测试,提交Bug共计405个,已…

软件测试总结报告

1引言1.1编写目的编写该测试总结报告主要有以下几个目的1.通过对测试结果的分析,得到对软件质量的评价2.分析测试的过程,产品,资源,信息,为以后制定测试计划提供参考3.评估测试测试执行和测试计划是否符合4.分…

软件测试总结

1按照开发阶段划分软件测试可分为单元测试集成测试系统测试确认测试和验收测试单元测试单元测试又称模块测试是针对软件设计的最小单位程序模块进行正确性检验的测试工作其目的在于检查每个程序单元能否正确实现详细设计说明中...

软件测试中的43个功能测试点总结

空间管理您的位置51Testing软件测试网werm520的个人空间日志转软件测试中的43个功能测试点总结上一篇下一篇查看40评论0评分00软件测试中的43个功能测试点总结功能测试就是对产品的各功能进行phpn...

软件测试经典面试题总结

1什么是兼容性测试兼容性测试侧重哪些方面兼容测试主要是检查软件在不同的软硬件平台上是否可以正常的运行即软件可移植性兼容的类型细分为平台的兼容网络兼容数据库兼容以及数据格式的兼容兼容测试的重点对兼容环境的分析通常...

软件测试总结理论

测试基础1软件测试的目的证明表达软件能够工作检测发现错误预防管理质量2测试执行单元测试UT执行一个测试用例的测试执行集成测试IT执行一个测试用例集的测试执行系统测试ST执行不同测试阶段的测试执行3回归测试的目的...

软件测试总结报告模板

项目名称测试计划ITSTRGTSTB修订历史记录目录目录31引言411编写目的412背景413用户群414定义415测试对象416测试阶段417测试工具418参考资料42测试概要521进度回顾522测试执行52...

学习【软件测试总结报告模板】

**系统测试总结报告1引言1.1编写目的编写该测试总结报告主要有以下几个目的1.通过对测试结果的分析,得到对软件质量的评价2.分析测试的过程,产品,资源,信息,为以后制定测试计划提供参考3.评估测试测试执行和测…

软件测试经验总结(25篇)