文档库 最新最全的文档下载
当前位置:文档库 › 软件测试题1

软件测试题1

1.软件测试是软件开发的重要环节,进行软件测试的目的是(B )

A)证明软件错误不存在B)证明软件错误的存在

C)改正程序所有的错误D)发现程序所有的错误

2.对于软件质量描述不正确的是:(B )

A)高质量的过程产生高质量的产品 B)软件质量是测试人员测试出来的

C)软件质量是设计和规划出来的D)项目阶段结束意味着产品质量达到了预期的标准3.对于软件测试描述不正确的是:(C )

A)软件测试无法找到程序当中的所有缺陷

B)测试工程师需要在最短时间内完成最有效的测试

C)软件测试工程师只要了解需求就可以了

D)测试工程师也需要了解编码知识

4.测试工程师需要了解下面哪些知识:(D )

A)项目管理知识 B)测试知识 C)需求管理D)以上都包括

5.检查软件产品是否符合需求定义的过程称为:(A)

A)确认测试B)集成测试C)性能测试D)功能测试

6.评审是对软件进行表态测试的一种方法,下述结论中,哪个是与软件评审无关的内容:(D )A)尽量发现错误 B)检查软件文档 C)根据评审标准 D)依靠测试信息

7.路径测试是整个结构测试的重要组成,但在研究路径测试时,通常又是使用程序控制流图来代替(C )

A)程序框图B)结构图C)数据流图D)程序流程图

8.软件测试类型按开发阶段划分是(A )

A)需求测试、单元测试、集成测试、验证测试

B)单元测试、集成测试、确认测试、系统测试、验收测试

C)单元测试、集成测试、验收测试、确认测试、验收测试

D)调试、单元测试、集成测试、用户测试

9.下述说法错误的是(B )

A)单元测试又称为模块测试,是针对软件测试的最小单位—程序模块进行正确性检验的

测试工作

B)集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、

递增的测试。

C)集成测试是检验程序单元和部件的接口关系,逐步集成为符合概要设计要求的程序部

件或整个系统。

D)系统测试是真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、网络、系统软件和支持平台等正确配置与连接,并满足用户需求

10.下列关于alpha测试的描述:(C)

(1)alpha测试需要用户代表参加(2)alpha测试不需要用户代表参加

(3)alpha测试是系统测试的一种(4)alpha测试是验收测试的一种

A)(1)(3)B)(2)(3)C(1)(4)D(2)(4)

21.关于自动化测试描述正确的是(D )

A)引入自动化测试可以降低测试成本B)软件产品测试适合自动化测试

C)自动化测试工具能够完成所有的自动化测试D)自动化测试脚本同样需要进行验收和确认

22.关于软件性能简述不正确的是(A )

A)在看代码完成之前,无法进行与性能有关的工作B)性能是设计和规划出来的,

而不是测试出来的C)性能测试在很多情况下不能发现特定的性能缺陷23.LoadRunner中关于“关联(Conelation)”描述错误的是(D )

A)关联分为手动管理和自动关联B)关联是对提交数据的参数化过程

C)关联是为了解决服务器端生成数据后期使用的问题D)关联函数是一种注册类函数24.LoadRunner中Controller对于虚拟用户描述正确的是(C )

A)虚拟用户并发测试可以做到绝对并发B)在一台计算机上可以实际模拟任意多的虚拟用户

C)虚拟用户可分布在多台客户端上D)虚拟用户数和服务器端压力呈线性关系25.关于性能测试,描述错误的是(C )

A)性能测试是对系统的在性能方面的测量工作。

B)响应时间是系统重要的性能指标,原则上可以用秒表手工测试

C)思考时间是指系统停顿的时间

D)吞吐量是指系统在单位时间内处理事务的能力

26.下列哪些概念不属于性能测试(B )

A)测量响应时间B)可伸缩性C)吞吐量D)可维护性

27.测试一个WEB应用性能,可能会用到的协议有(C )

A)HTTP B)HTTP/HTTPS C)HTTP/HTTPS/SOAP D)HTTP/HTTPS/SOAP/UDP 28.单元测试范围包括(A)

A)方法间集成B)平行类测试C)类簇测试D)以上都是

29.关于JUNIT,描述错误的是(B )

A)JUNIT是Java语言的单元测试框架B)JUNIT只能测试公共函数

C)JUNIT推荐先测试后实现的方法D)setUp、tearDown函数只执行一次

30.关于测试驱动开发,描述错误的是( C)

A)测试驱动开发式是一种敏捷开发方法B)TDD需求开发人员学习测试相关知识

C)测试驱动开发不适合使用CMM/CMMI方法D)测试驱动开发可以和结对编程结合使用31.下面过程模型中不属于测试过程模型的是(D )

A)X模型B)V模型C)H模型D)B模型

32.下列哪个描述可以看作是测试工作结束的标志(D )

A)发现的缺陷全部修改B)缺陷发现率低于阈值

C)测试用例全部运行结束D)开发人员不再修改缺陷

33.测试过程中需要度量的基础数据(一阶度量元)不包括(C )

A)严重缺陷数B)关闭缺陷数C)缺陷密度D)各个阶段发现和清除缺陷数

34、独立的测试项目管理通常不包括下面哪些内容(B)

A)测试需求管理B)测试目标管理C)测试工作量管理D)被测试产品质量

35、TQM是指(C )

A)Team Quality Management B)Total Quality Management

C)Total Quick Management D)Total Quality Managers

36、估算过程中QCD标准是指(A )

A)Quality, Cost, Delivery B)Quality Cause Delivery

C)Quantity Cost Delivery D)Quality Cost Demand

37.PDCA环又被叫做(B)

A)Deming Wheel B)Continuous Improvement Cycle

C)Deming Cycle D)All of the above

38.The type oftestingdone during software implementation and before module

integration is called(A )

A)unit testing B)beta testing C)system testing D)acceptance testing 39.Which is NOT a concept of White Box Testing(B )

A)You should execute all loops at their boundary conditions

B)You should execute all interfaces at their boundary conditions

C)You should execute all logical decisions on their true and false sides

D)You should execute all independent paths within a module at least once 40.Black-box and white-box testing method are often used in software testing phase .in which,the white-box is mainly used t otestsoftware’s(D )

A)reasonableness of structure B)correctness of a program

C)external function of a program D)internal logic of a program

一:测试知识

1、一名优秀的测试工程师需要哪些素质;

2、说说你常用的定位bug的方法,都是用到哪些工具。比如程序崩溃,请描述常用的步骤。

3、你都使用过哪些测试工具?他们各有什么优缺点?

4、谈谈你对自动化测试的看法。

5、做好测试用例设计工作关键的是什么?

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

黑盒测试用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。

不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

6.、你所熟悉的测试类型有哪些?试着分析这些不同的测试类型的区别和联系?

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

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

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

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

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

接口测试也叫业务流程测试(包括功能模块之间、模块与模块之间、子系统之间)如果某些数据的主键是由数据库本身而实现的,可以不用删除,如果有些主从表是由程序员写的代码而实现,则要进行数据完整性的测试。

软件测试主要从以下16种类型进行测试:

一:功能测试(10个方面)

菜单、工具栏、快捷键、下拉框、按钮、单选按钮、复选按钮、切换、链接、触发键二:界面测试

登陆界面、总界面、输入界面(增、删、改、查)、处理界面、输出界面、报表界面、提示界面

三:容错测试

数据长度、数据类型、非法此操作

四:接口测试

接口测试也叫业务流程测试(包括功能模块之间、模块与模块之间、子系统之间)

内部接口:例如:导入、导出(通俗的讲是接口就是调用)

外部接口:

五:性能测试(TPS吞吐量、响应速度、cpu占用率、内存占用率)

平均吞吐量:单位时间内处理事务的个数

平均响应速度:做一个事务处理所用时间

例如:界面操作效率测试;报表输出及查询效率测试

六:负载测试(压力测试、强度测试、容量测试)

压力测试即就是大用户测试(针对B/S而言)

容量测试即就是大数据量测试

七:并发测试

指多个用户在同一时间对同一条数据的删除或者修改等处理

八:稳定性测试

例如:1小时触发600条信息,那么8个、10个等发信息的条数测试

九:恢复测试

突然断电(系统触发正常启动;数据包要在断电的地方继续进行处理)

十:配置测试

最低配置:

推荐配置:大多数用户所用的配置

十一:安装测试

安装过程;卸载过程

十二:文档测试

交给用户的文档。例如:系统帮助、用户使用手册、用户安装手册

十三:可用性测试(纯粹靠经验)

十四:初始化测试

是指系统刚刚安装完成后,在数据位空的情况下,如果被调用的模块为空,点击调用模块的时候,是否进行容错的测试。

十五:数据完整性测试

是指当主表的某一条件信息被删除后,和这一条相关的从表的信息都应该被删除。

如果某些数据的主键是由数据库本身而实现的,可以不用删除,如果有些主从表是由程序员写的代码而实现,则要进行数据完整性的测试。

16种测试类型归类

1)此软件能做什么?

针对数据进行”功能、接口、容错、界面、权限、初始化、数据完整性测试“

2)软件做的怎么样?

性能、负载、恢复、稳定性、并发、系统安全

3)软件在什么环境条件下做?

配置、安装、文档、可用性

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

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

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

测试笔试题

一、判断题

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 负责人

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. 系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试。(有的可以合在一起)

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

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

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. 怎么做好文档测试

仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。检查文档的编写是否满足文档编写的目的,内容是否齐全,正确,内容是否完善,标记是否正确

5. 白盒测试有几种方法

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

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

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

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

7. Alpha 测试与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类--测试建议

一、问:在windows环境下,遇到用杀毒软件都无法杀的病毒除了重作系统应该怎么办,如何关闭后台进程,msn上不了都可能是什么问题,怎样解决。

答:

a) 对于病毒,可以从以下几个方面进行考虑:

i. 使用命令”msconfig”,开启系统配置实用工具,关闭陌生的启动项,然后重新启动,观察系统的运行情况。

ii. 使用任务管理器,杀掉不正常的进程,看系统的运行情况。

iii. 使用命令“regedit”,开启注册表配置工具,清除注册表中的表项。

iv. 如果杀毒工具提供了病毒的标识,可以利用搜索引擎,查找相关的手动删除方法。

v. 利用专杀工具进行清除。

vi. 给系统打上相应的补丁。

vii. 使用系统还原,还原系统。

b) 关闭后台进程:

i. 使用“管理工具”中的“服务”,将对应的服务关闭掉。

ii. 使用gpedit.msc来对系统进行配置。

iii. 使用服务自带的管理工具关闭。

iv. 直接在任务管理器重杀死进程。

c) MSN的问题:

i. 首先检查网络连接是否正常连通。

ii. 检查防火墙规则是否正常,是否禁止了程序或者端口。

iii. 帐号是否被他人窃取,并且修改了密码。

iv. 根据返回的错误消息,上MSN网站的Messenger子站点,查找相应的帮助,根据帮助的向导解决问题。

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

答:

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

b) 然后,要获取判断的依据和标准:

i. 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

ii. 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

iii. 根据用户的一般使用习惯,来确认是否是缺陷;

iv. 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

c) 合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。

d) 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

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

答:

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

b) 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:

i. 功能性测试

ii. 界面测试

iii. 性能测试

iv. 数据库测试

v. 安全性测试

vi. 兼容性测试

c) 设计测试用例:

i. 功能性测试可以包括,但不限于以下几个方面:

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

2. 提交功能的测试。

3. 多媒体元素是否可以正确加载和显示。

4. 多语言支持是否能够正确显示选择的语言等。

ii. 界面测试可以包括但不限于一下几个方面:

1. 页面是否风格统一,美观

2. 页面布局是否合理,重点内容和热点内容是否突出

3. 控件是否正常使用

4. 对于必须但为安装的空间,是否提供自动下载并安装的功能

5. 文字检查

iii. 性能测试一般从以下两个方面考虑:

1. 压力测试

2. 负载测试

3. 强度测试

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

v. 安全性测试:

1. 基本的登录功能的检查

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

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

4. 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持

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

1. 浏览器的兼容性

2. 操作系统的兼容性

3. 软件平台的兼容性

4. 数据库的兼容性

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

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

四、问:在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试。

答:

a) 建立测试计划,确定测试标准和测试范围

b) 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等

c) 根据测试用例,开发自动测试脚本和场景:

i. 录制测试脚本

1. 新建一个脚本(Web/HTML协议)

2. 点击录制按钮,在弹出的对话框的URL中输入”about:blank”。

3. 在打开的浏览器中进行正常操作流程后,结束录制。

4. 调试脚本并保存。可能要注意到字符集的关联。

ii. 设置测试场景

1. 针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标

2. 针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃。

iii. 执行测试,获取测试结果,分析测试结果

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

答:

a) 300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。

b) 线程之间可能发生干扰,而产生一些异常。

c) 300个用户在一个客户端上,需要更大的带宽。

d) IP地址的问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。

e) 所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

六、问:软件都有多少种分类?

答:

根据功能的不同,电脑软件可以粗略地分成四个层次:

1、最贴近电脑硬件的是一些小巧的软件。它们实现一些最基本的功能,通常“固化”在

只读存储器芯片中,因此称为固件。

2、系统软件包括操作系统和编译器软件等。系统软件和硬件一起提供一个“平台”。它们管理和优化电脑硬件资源的使用。

3、支持软件。包括图形用户界面、软件开发工具、软件评测工具、数据库管理系统、中间件等。

4、应用软件种类最多,包括办公软件、电子商务软件、通信软件、行业软件,游戏软件等等。

软件测试面试题:

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

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比 ISO 质量认证一

样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

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

我曾经做过 web 测试,后台测试,客户端软件,其中包括功能测试,性能测试,用户

体验测试。最擅长的是功能测试

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

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

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

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

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

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

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

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

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

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

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

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

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

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

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

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

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

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

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

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

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

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

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

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

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

系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)

系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1)等价类划分

划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序

中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试

的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

2)边界值分析法

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

试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通

常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

3)错误推测法

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产

品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为 0 的情况.输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

4)因果图方法

前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件

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

9. 请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。

就说最近的这次网站功能的测试吧

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

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

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

第四步:执行测试

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

是的,曾经做过网站方面的性能测试,虽然做的时间并不久(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 :尝试链接数;

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

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

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

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

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

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

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

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

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

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

不到一年半的测试工作中,当时的感动和热情没有减退一点(即使环境问题以及自身经验,技术的不足,做测试的你一定也能理解)。

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

第二是发现 BUG 的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试

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

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

测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级

测试工程师奔去。而且我也有初步的职业规划,前 3 年累积测试经验,按如何做好测试工程师的 11,12 点要求自己,不断的更新自己改正自己,做好测试任务。

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

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

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

公司对测试流程没有规定如何做,但每个测试人员都有自己的一套测试流程。我说下我1 年来不断改正(自己总结,吸取同行的方法)后的流程吧。需求评审(有开发人员,产品经理,测试人员,项目经理)->需求确定(出一份确定的需求文档)->开发设计文档(开发人员在开始写代码前就能输出设计文档)->想好测试策略,写出测试用例->发给开发人员和测试经理看看(非正式的评审用例)->接到测试版本->执行测试用例(中间可能会补充用例)->提交 bug (有些bug 需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进 TD)->开发人员修改(可以在测试过程中快速的修改)->回归测试(可能又会发现新问题,再按流程开始跑)。

22. 当开发人员说不是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. 测试分析测试用例注意(事项)?

40. 你在你所在的公司是怎么开展测试工作的?是如何组织的?

41. 你认为理想的测试流程是什么样子?

42. 你是怎样工作的?

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

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

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

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

47. 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?

48. 测试结束的标准是什么?

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

50. 做测试多久了?以前做过哪些项目?你们以前测试的流程是怎样的?

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

51. 用过哪些测试工具?

52. 为什么选择测试这行?

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

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

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

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

工作成果,工作质量

56. 你的工作通常能在时限内完成吗?

在有足够的资源和合理的工作量的情况下,完全可以按时完成,并能比一般人做的更好57. 通常你对于别人批评你会有什么样的反应

有错即改,无错勉之

58. 如果明知这样做不对,你还会依照主管的指示去做吗?

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

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

为什么抱怨?是怎么样的问题?如果是客服问题,提交客服部门解决;如果是质量问题,分析原因,下一版本改进

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

自以为是的人

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

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

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

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

63. 什么叫单元测试?

64. 请就软件测试人员应该具备什么样的基本素质说说你的看法。

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

65. 请就如何在开发中进行软件质量控制说说你的看法

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

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

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

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

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

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

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

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

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

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

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

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

1. 软件测试的方法有?

2. 软件测试的过程?

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

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

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

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

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

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

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

10. 描述使用bugzilla 缺陷管理工具对软件缺陷(BUG )跟踪的管理的流程

11. 你在五年内的个人目标和职业目标分别是什么?

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

正确回答:从现在起的五年之内,我希望能够在一个很好的职位上待几年,而且最好有一次晋升,然后就期待着下一步。不管是向上提升,还是在企业内横向调动,对我个人来说,我希望找到一家企业,一家愿意做相互投入的企业待上一段时间。

12. 你怎样做出自己的职业选择?

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

正确回答在上大学四年级前的那个夏天,我决定集中精力在某一领域谋求发展。尽管我是学商业的,但是我不知道自己最终会从事哪一行业的工作。我花了一定的时间考虑自己的目

标,想清楚了自己擅长做的事情以及想从工作中得到的东西,最后我得出了一个坚定的结论,那就是这个行业是最适合我的。

13. 你都用什么测试方法

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

14. 怎么编写案例

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

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

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

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

1. 贵公司近期和远期的发展目标是什么?

2. 贵公司的主要竞争对手有哪些?

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

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

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

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

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

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

用友面试:

1.内联接和外连接,自联接有什么区别?

内联接通常是2 个表存在主外键关系时使用的,

内联接查询有2 种方式实现:

1)是在WHERE 子句中指定联接条件

2)是在FROM 子句中使用join…on

内联接查询通常不仅仅联接2 表,可以 3 表甚至更多的表

参与内联接的表的地位是平等的

而外联接中参与联接的表有主从之分。以主表的每行数据去匹配从表的数据列,符合条件的数据将直接返回到结果集中,不符合的用NULL (空值)填充后再返回到结果集中。2. SQL 中 \’group by\’和\’order by \’有什么不同呢?

一个是对处理的数据进行分组,一个是对处理的数据进行排序

3. 自动测试的好处

如果你需要反复运行一组测试,那么自动测试将会对你非常有用。

自动测试使你能够应对频繁改变的代码从而跟上周期性回归测试的脚步。

自动测试可以使你能够自动运行主流业务场景从而跟上周期性回归测试的脚步。

自动测试可以帮助你测试大量测试矩阵(在不同操作系统上的不同语言)。

自动测试可以使你的测试同时运行在不同的机器上,而手动测试必须不断地继续执行。

自动测试的限制

花费大。编写测试用例,编写和配置自动化测试框架将会在测试开始时花费比手动测试更多的费用。

无法自动测试一些可视的场景。例如,如果你无法通过代码告诉自动测试工具字体颜色,那么只好使用手动测试。

手动测试的好处

如果一个测试用例在编码阶段只运行两次,那最好使用手动测试,它将比自动测试花费少得多的费用。

手动测试允许测试员进行更多的随机测试。以我的经验来看,更多的bug 将会由随机测试发现,而不是自动测试。并且,一个测试员花费越多的时间进行随机测试,发现真正的用户bug 的几率就越大。

手动测试的限制

手动进行测试将花费大量的时间。

每次有了新的build,测试员必须重新运行测试-经过一段时间以后将会非常繁琐和疲惫。

其他的因素:

你将哪些部分进行自动测试也由你使用的工具决定。如果该工具有很多限制,那么这些部分还是手动测试吧。

是否投资的回报值得运行自动测试?是否你自动化测试的产出值得建立和支持测试用例,自动框架和运行测试用例的系统?

自动测试的标准

有两个问题可以用来判断是否应该为你的测试用例进行自动化。

Q1:是否测试场景可以自动化?

A1:是的,并且花费很少。

A2:是的,但是花费很多。

A3:不,不可能进行自动化。

Q2:该测试场景有多么重要?

A1:我必须在任何可能的时候都对其进行测试。

A2:我需要有规律地对该场景进行测试。

A3:我只需要测试该场景一次。

如果这两个问题你的答案都是#1,那么你肯定需要自动化该测试。

如果这两个问题你的答案是一个#1 和一个#2,那么你最好自动化该测试。

如果这两个问题你的答案都是#2,那么你应该好好考虑一下是否你值得为自动化测试投资。

如果你无法自动测试,会有什么结果

让我们假设如果你有一个测试必须在任何可能的时间运行,但是却无法自动化它,你的选择是:再评估:是否我真的需要如此频繁地运行它?如果手动测试它会有多大的花费?寻找新的测试工具;考虑使用test hooks。

四款主流测试工具的测试流程

========winrunner========

1 启动时选择要加载的插件

2 进行一些设置(如录制模式等)

3 识别应用程序的 GUI,即创建map(就是学习被测试软件的界面)

4 建立测试脚本(录制及编写)

5 对脚本除错及调试(保证能够运行完)

6 插入各种检查点(图片,文字,控件等)

7 在新版应用程序中执行测试脚本

8 分析结果,回报缺陷

相关文档
相关文档 最新文档