经典软件测试面试题.docx
- 文档编号:7480074
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:57
- 大小:80.32KB
经典软件测试面试题.docx
《经典软件测试面试题.docx》由会员分享,可在线阅读,更多相关《经典软件测试面试题.docx(57页珍藏版)》请在冰豆网上搜索。
经典软件测试面试题
软件测试基础
测试的基本概念
测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。
1、测试的分类:
从测试方法的角度可以分为手工测试和自动化测试。
手工测试:
不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。
自动化测试:
利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。
目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。
从整体的角度可以分为单元测试、集成测试、系统测试、确认测试。
单元测试:
是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。
一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。
单元测试的依据是系统的详细设计;一般由项目组开发人员自己完成。
集成测试:
在单元测试的基础上,将所有模块按照设计要求组装进行测试。
一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。
系统测试:
系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。
确认测试:
模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。
从测试原理上分为:
白盒测试、黑盒测试和灰盒测试。
白盒测试:
是通过程序的源代码进行测试而不使用用户界面。
这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。
黑盒测试:
是通过使用整个软件或某种软件功能来严格地测试,而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。
测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。
在测试时,把程序看作一个不能打开的黑盆子,
在完全不考虑程序内部结构和内部
特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求
规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。
黑盒测试
方法主要有等价类划分、边界值分析、因—果图、错误推测法。
等价类划分:
是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.
1)划分等价类:
等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:
测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:
有效等价类和无效等价类.
有效等价类:
是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.
无效等价类:
与有效等价类的定义恰巧相反.
设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.
边界值分析:
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,
而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以
查出更多的错误。
错误推测法:
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.错误推测方法的基本思想:
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.例如,在单元测试时曾列出的许多在模块中常见的错误.以前产品测试中曾经发现的错误等,这些就是经验的总结.还有,输入数据和输出数据为0的情况.输入表格为空格或输入表格只有一行.这些都是容易发生错误的情况.可选择这些情况下的例子作为测试用例。
灰盒测试:
灰盒测试就像黑盒测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。
甚至于还读过部分源代码。
因此测试人员可以有真对性地进行某种确定的条件/功能的测试。
从软件特性上分为功能测试和性能测试。
功能测试:
是指为了确保软件系统功能实现的正确性,完整性和其他特性而进行的测试。
性能测试:
是指为了评估软件系统的性能状况,和预测软件系统性能趋势而进行的测试和分析。
2、BUG的定义:
BUG:
(小错误,缺陷,不足,过失…)一个计算机bug指在计算机程序中存在的一个错误(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault),这些bug使程序无法正确的运行。
Bug产生于程序的源代码或者程序设计阶段的疏忽或者错误。
Defect:
(缺陷)在软件工程(SoftwareEngineering)中,软件与它的需求(requirements)不一致,常常指软件无法正确完成需求所要求的功能,也称之为bug。
Fault:
(故障)被定义为存在于组件、设备或者子系统中异常的条件或者缺陷,常常会导致系统的失败。
Error:
(错误)一个error是指编写错误的代码,通常是无意中造成的。
一般有两类主要的错误,一是语法错误(syntaxerror),该类错误易于检测,因为代码在编译阶段无法解析而不能正常编译通过。
另一个是逻辑错误(logicalerror),因为它与代码的实际执行密切相关所以不易发现。
二、项目测试的规划
项目测试内容:
将项目测试分为项目开发阶段测试和项目完工验收测试两个部分。
开发阶段测试内容主要包括:
模块功能测试、集成测试和文档检查。
模块功能测试:
确保系统各功能模块能够正常运行,数据的IPO符合系统设计的要求。
单元和模块功能满足需求定义。
集成测试:
系统各模块组装后,根据业务流程的要求,能够正确地完成各业务功能,并且数据的处理和输出正确。
文档检查:
在项目开发阶段,按照项目进度表,根据《项目文档测试规范与标准》,对提交的项目文档和记录(技术文档和管理文档)进行检查和验证,以符合公司质量体系和项目制度的要求,对于技术类文档的关键要素,验证是否能够达到通过标准。
完工验收测试内容主要包括:
安装测试、功能验证、性能测试、需求验证、文档测试。
完工验收测试实际上是项目在结项前的一个全面的检查和验证。
可以作为项目结项的依据和放行条件。
需求测试:
检查软件产品是否满足该项目的需求说明书中规定的功能需求,检查需求的完整性、一致性、最新性,该项测试重点是需求满足的完整性。
安装测试:
根据项目提供的安装文档中的安装步骤,搭建系统运行环境,检查系统安装过程是否正确。
可能包括数据库服务器的安装与配置、应用服务器、控件注册、客户端的安装与配置、应用软件的安装。
功能验证:
按照需求说明书和系统概要设计,逐项检查各项功能(功能单元、功能模块)的可运行性和正确性。
文档测试:
文档测试从项目立项时就开始了,实际上就是文档检查,包括规范性检查和有效性检查。
目的是使项目相关的文档和记录既规范又有意义,不是为了应付的无用文件。
对于技术文档如:
需求说明书、概要设计、详细设计等,在技术评审时也进行了评测。
用户文档,如安装手册、用户操作手册,根据文档检查规范进行。
性能测试:
这部分测试的来源,严格来讲,取决于用户对软件特性的一些特定要求,另外,就是公司的开发部门对产品的一些基本的性能要求。
若用户从业务的角度考虑,对软件产品本身有特定的非功能要求,则必须在软件需求说明书中加以说明,使之具有可度量和可测试性。
对于一些多用户环境或数据处理能力和负载方面的测试,很难通过手工搭建测试环境来测试,所以可以参考使用一些专门的性能测试工具和手工测试相结合的方式。
项目测试的基本流程:
1、项目测试启动:
项目立项后,在测试配置库中创建项目。
2、测试计划:
系统详细设计后,制定测试计划,准备测试资源。
3、设计测试用例,主要是与业务相关的测试用例。
4、实施功能模块测试,搭建运行或开发环境,采用功能模块测试表的方式,开发人员在功能模块测试表中更新进度状态,测试人员在该表中描述测试进度。
形成测试错误列表,该表对每个错误都有相应的测试记录与之链接,在测试记录中,详细描述错误的情况。
在测试记录中还要包括修正信息和验证信息。
5、错误关闭后,测试人员维护测试记录表和更新测试用例库和问题库,作为经验积累。
6、项目在结项时,测试人员进行项目完工验收测试,填写项目测试报告。
该测试报告可作为用户验收的输入工件。
三、功能测试方法与内容
1、数据输入测试:
向系统输入数据或输入数据库操作命令时,一般是测试系统对数据库中数据操作的过程。
数据类型测试:
由于不同的数据库系统对数据类型要求的不同,在定义数据库表时,也规定了数据字段的数据类型。
测试步骤和方法:
在系统的数据维护功能界面上,录入或修改数据时,特意输入非系统设计的数据类型,检查系统是否可以接受,若不能接受则检查是否满足了系统在这方面的设计要求,如即刻清除非法内容、输入焦点不能到下一输入位置、出现系统自定义的提示信息、不允许出现开发工具的报错信息等。
若系统可以接受并保存,则要看数据库表的字段类型设计是否与用户或习惯上不一致,并且要注意其他模块在调取该数据时,是否有特定要求。
边界值测试:
根据数据取值范围的要求,输入符合取值范围的数据、取值范围的上、下限和超过取值范围的数据。
注意,除要测试数据库系统本身数据类型取值范围外,还要根据软件系统设计中的一些特定要求,设计测试用例来测试。
数据合法性测试:
测试人员除了要测试输入数据是否满足所使用数据库系统本身的数据类型和取值范围的要求外,还应该根据经验和软件系统和需求的特定要求检查输入数据的合法性。
比如:
日期合法性(出生年月、参保日期、发生时间、根据习惯和业务逻辑顺序对日期合理性的要求等)。
工资、比例、率等,都要注意输入的合理、合法性。
单引号和双引号:
不要忽略输入单引号和双引号可能引起的错误和数据问题。
在功能录入界面上,在某字段的输入框输入了包括单引号和双引号的数据,以后在通过Select语句查询时可能会出问题。
特别在基于WEB方式的系统,输入了单引号,在查询数据记录时,肯定会出现页面链接错误(页面无法链接或找不到或链接对象错误)。
空值测试:
在测试数据录入或修改的功能界面时,若不输入任何东西,系统又没有设计成NOTNULL,则这时,要非常注意其影响。
因为数据可以正常保存,但数据表该字段是空值,那么所有与该字段有关的操作,如:
查询(AND)、计算(累加、连乘)等,则可能出现数据问题(计算结果为0,无记录返回)。
对于测试人员首先要检查系统到底是作为空值,还是作为空串或空字符处理。
另外对于允许不输入任何值的字段,在测试过程中,要检查是否在界面显示或打印报表时,这些字段作为了关键要素或标题等情况。
空格:
在数据维护的功能界面上,输入数据时,要注意是否在输入位置有空格,首先看系统设计时,是怎么考虑的,若系统允许输入空格,则检查条件查询或作为调用参数时的数据返回情况;另外检查程序是否使用了去掉空格的函数。
数据校验的不一致:
测试时,对于一些编号、编码、代码等主键或作为查询或调用条件的字段,要注意系统对他们的输入合法性检查与查询或调用条件的要求是否是一致的。
特别是对于数据结构设计中没有特定约束,而由程序进行校验控制的情况。
分析:
数据输入测试的主要目的是保证输入到系统中数据的合法、合理性。
我觉得,数据输入过程的检查是非常重要的,若在编程过程中,不注重数据的校验功能,虽然看起来加快了开发进度,但给以后会带来一些不可预计的编程或维护工作量。
2、目录路径测试:
测试系统中规定的路径要求,更改路径,检查系统的是否可以正确运行及系统的排错功能。
测试时,根据系统设计说明书(详细设计)或通过对程序源代码的熟悉,找出系统运行过程中指定的路径或在运行过程中,需要使用者选择路径的地方。
特意更改路径(选择正确的路径、选择另外的路径、输入不存在的路径)。
检查系统是否具有路径上的容错性和灵活性。
比如,原则上在程序中,最好不要写绝对路径,另外可以提供配置路径的对话框,若输入了非法路径,系统有无提示等。
3、数据操作测试:
包括数据操作测试和用户界面操作的测试。
修改、新增数据:
对于新增和修改数据,要注重以下几个方面的测试。
界面上,新增数据成功后,数据列表是否立即刷新,输入有错误时,是否清空错误的数据,输入焦点是否得以控制。
在提示信息上,是否有保存成功的提示,输入有错误时,提示的错误信息是否准确,可读。
数据方面,要通过SQL检查数据提交是否正确。
删除数据:
测试删除记录时,系统是否有确认提示,能否批量删除,根据系统详细设计,检查删除主表记录时,在业务上,其他相关表是否相应更改。
事物的提交与回滚:
熟悉C/S模式开发或数据库应用系统开发的人都知道,数据库事物的概念。
对于一个比较复杂的业务逻辑或业务上有数据一致和完整性要求时,尽量使用事物对数据进行提交,这样一旦由于意外原因引起系统或硬件故障时,可以回滚。
根据系统的设计要求在测试时,可人为模拟意外故障,来测试系统的数据完整性和容错能力。
4、工具条和快捷键测试:
在功能界面测试时,对系统菜单中定义的快捷键和菜单工具条中的工具按钮要测试。
主要是有效性和一致性测试。
有效性:
检查是否有效,界面有无反应。
一致性:
定义或提示的信息是否与实际完成的功能一致。
5、操作顺序测试
按钮顺序测试:
在功能界面上,不按照设计上或习惯上的操作顺序点击功能按钮,看系统有什么反应;多次、反复点击某一按钮,看系统有什么反应。
主要是测试系统的控制、校验和容错能力。
业务逻辑顺序:
不按照系统的正常业务逻辑、流程操作,来测试系统是否控制了业务流程的顺序。
6、按钮有效性控制测试:
主要是测试当不具备条件或无实际意义的情况下,按钮的“Enabled”属性。
比如:
某一业务未处理,下一环节的功能按钮则应变灰(不可用)。
逐条显示数据记录,当游标已经指到了最后一条时,“下一条”和“末记录”按钮则应变灰等。
7、同时刻操作测试:
对于删除、修改、增加数据和一些业务功能,进行多客户端同时刻操作测试,看系统有什么反应。
8、附件压力测试:
对于有发送、上传、下载、邮件等功能的系统,选取大的文件,进行测试,来检查系统的界面效果和稳定性,看是否会死机或长时间无任何反应等。
9、数据输出测试:
数据处理输出测试:
主要测试对数据的排序、条件查询是否按照输入的条件或要求输出了正确的数据。
打印输出:
测试打印功能是否能够正常打印出报表,打印设置后,是否能按照设置的要求打印。
10、WEB测试:
基于WEB方式的应用,对于一些提交表单的页面,通过多次点击“back”键,来测试系统的处理情况。
对于有保存数据功能的页面,多次点击
“保存”,来测试系统的处理情况。
软件测试面试题汇总
测试技术面试题
5
1、什么是兼容性测试?
兼容性测试侧重哪些方面?
5
2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?
5
3、测试的策略有哪些?
5
4、正交表测试用例设计方法的特点是什么?
5
5、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程?
5
6、你觉得bugzilla在使用的过程中,有什么问题?
5
7、描述测试用例设计的完整过程?
6
8、单元测试的策略有哪些?
6
9、LoadRunner分哪三部分?
6
10、LoadRunner进行测试的流程?
6
什么是并发?
在lordrunner中,如何进行并发的测试?
集合点失败了会怎么样?
6
12、使用QTP做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作?
6
13、QTP中的Action有什么作用?
有几种?
6
14、TestDirector有些什么功能,如何对软件测试过程进行管理?
7
15、你所熟悉的软件测试类型都有哪些?
请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)?
7
16、条软件缺陷(或者叫Bug)记录都包含了哪些内容?
如何提交高质量的软件缺陷(Bug)记录?
8
17、Beta测试与Alpha测试有什么区别?
8
18、软件的评审一般由哪些人参加?
其目的是什么?
8
19、测试活动中,如果发现需求文档不完善或者不准确,怎么处理?
8
20、阶段评审与项目评审有什么区别?
8
21、阐述工作版本的定义?
8
22、什么是桩模块?
什么是驱动模块?
8
23、什么是扇入?
什么是扇出?
8
24、你认为做好测试计划工作的关键是什么?
8
25、你认为做好测试用例工作的关键是什么?
9
26、简述一下缺陷的生命周期?
9
27、软件的安全性应从哪几个方面去测试?
9
28、软件配置管理工作开展的情况和认识?
9
29、你觉得软件测试通过的标准应该是什么样的?
10
30、引入测试管理的含义?
10
31、一套完整的测试应该由哪些阶段组成?
10
32、单元测试的主要内容?
10
33、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容?
10
34、简述集成测试与系统测试关系?
10
35、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。
那么软件系统的用户文档包括哪些?
10
36、软件系统中除用户文档之外,文档测试还应该关注哪些文档?
10
37、简述软件系统中用户文档的测试要点?
11
38、单元测试主要内容是什么?
11
39、如何理解强度测试?
13
40、如何理解压力、负载、性能测试测试?
13
41、什么是系统瓶颈?
13
42、文档测试主要包含什么内容?
13
43、功能测试用例需要详细到什么程度才是合格的?
14
44、配置和兼容性测试的区别是什么?
14
45、软件文档测试主要包含什么?
15
46、没有产品说明书和需求文档地情况下能够进行黑盒测试吗?
15
47、测试中的“杀虫剂怪事”是指什么?
15
48、在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?
15
49、为什么尽量不要让时间有富裕的员工去做一些测试?
16
50、完全测试程序是可能的吗?
16
51、软件测试的风险主要体现在哪里?
16
52、发现的缺陷越多,说明软件缺陷越多吗?
16
53、所有的软件缺陷都能修复吗?
所有的软件缺陷都要修复吗?
17
54、软件测试人员就是QA吗?
17
55、如何减少测试人员跳槽带来的损失?
17
56、测试产品与测试项目的区别是什么?
17
57、和用户共同测试(UAT测试)的注意点有哪些?
18
58、如何编写提交给用户的测试报告?
18
59、测试工具在测试工作中是什么地位?
18
60、什么是软件测试,软件测试的目的?
18
61、简述负载测试与压力测试的区别。
19
62、写出bug报告流转的步骤,每步的责任人及主要完成的工作。
19
63、写出bug报告当中一些必备的内容。
19
64、开发人员老是犯一些低级错误怎么解决?
20
65、画出软件测试的V模型图。
20
66、为什么要在一个团队中开展软件测试工作?
20
67、您在以往的测试工作中都曾经具体从事过哪些工作?
其中最擅长哪部分工作?
20
68、您所熟悉的软件测试类型都有哪些?
请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)20
69、您认为做好测试用例设计工作的关键是什么?
21
70、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
21
71、测试计划工作的目的是什么?
测试计划工作的内容都包括什么?
其中哪些是最重要的?
22
72、您所熟悉的测试用例设计方法都有哪些?
请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
22
73、请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。
23
74、您以往是否曾经从事过性能测试工作?
如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。
23
75、你对测试最大的兴趣在哪里?
为什么?
23
76、你以前工作时的测试流程是什么?
24
77、当开发人员说不是BUG时,你如何应付?
24
78、软件的构造号与版本号之间的区别?
BVT(BuildVerificationTest)24
79、您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?
如何提交高质量的软件缺陷(Bug)记录?
25
80、您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?
如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
25
81、您认为性能测试工作的目的是什么?
做好性能测试工作的关键是什么?
25
82、单元测试、集成测试、系统测试的侧重点是什么?
25
83、集成测试通常都有那些策略?
25
84、一个缺陷测试报告的组成25
85、基于WEB信息管理系统测试时应考虑的因素有哪些?
25
86、软件测试项目从什么时候开始,?
为什么?
26
87、需求测试注意事项有哪些?
26
88、简述一下缺陷的生命周期26
89、你在你所在的公司是怎么开展测试工作的?
是如何组织的?
26
90、你认为理想的测试流程是什么样子?
26
91、您在从事性能测试工作时,是否使用过一些测试工具?
如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
26
92、软件测试活动的生命周期是什么?
26
93、请画出软件测试活动的流程图?
26
94、针对缺陷采取怎样管理措施?
26
95、什么是测试评估?
测试评估的范围是什么?
26
96、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?
为什么?
26
97、测试结束的标准是什么?
26
98、软件验收测试除了alpha,beta测试以外,还有哪一种?
26
99、做测试多久了?
以前做过哪些项目?
你们以前测试的流程是怎样的?
用过哪些测试工具?
27
100、请就如何在开发中进行软件质量控制说说你的看法27
101、一套完整的测试应该由哪些阶段组成?
分别阐述一下各个阶段。
27
102、软件测试的类型有那些?
分别比较这些不同的测试类型的区别与联系。
27
103、测试用例通常包括那些内容?
着重阐述编制测试用例的具体做法27
104、在分别测试winform的C/S结构与测试WEB结构的软件是,应该采取什么样的方法分别测试?
他们存在什么样的区别与联系?
27
105、在测试winform的C/S结构软件时,发现这个软件的运行速度很慢,您会认为是什么原因?
您会采取哪些方法去检查这个原因?
27
106、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程27
107、你都用什么测试方法针对不同的产品或者系统或者模块,有不同的测试方法。
总体而言有白盒测试和黑盒测试。
27
108、怎么编写案例案例的编写与测试阶段的定义有很大的关系。
系统测试和unit测试的案例可能不同。
总体而言测试案例根据系统的需求而定。
27
109、怎么才能够全面的测试到每一个点测试的全面性主要需要在设计测试计划的时候考虑,从测试策略,产品需求等等多个角度考虑从而定义全部的测试点。
27
110、谈谈软件测试技术,以及如何提高27
111、谈谈软件测试职业发展,以及个人的打算27
112、谈谈软件测试在企业的地位,也可以结合软件生命周期来谈27
113、一般公司里实际的软件测试流程是什么样的?
你们公司又是怎样的?
27
114、软
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 软件 测试 试题