软件测试常见面试题汇总

2022-09-27 14:37:13 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

Ⅰ.一个Bug

1. 一条软件缺陷(或者叫Bug)记录都包含了哪些内容? 如何提交高质量的软件缺陷(Bug)记录?

一条Bug记录最基本应包含:编号、Bug所属模块、Bug描述、Bug级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;要有效的发现Bug需参考需求以及详细设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认肯定,然后再向外发布如此才能提高提交Bug的质量。

一条Bug记录最基本应包含:编号、Bug所属模块、Bug描述、Bug级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;要有效的发现Bug需参考需求以及详细设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认肯定,然后再向外发布如此才能提高提交Bug的质量。

2. Bug必填字段

一条bug信息至少需要以下几条: bug编号; bug严重级别,优先级; bug产生的模块; 首先要有bug摘要,阐述bug大体的内容; bug对应的版本; bug详细现象描述,包括一些截图、录像….等等; bug出现时的测试环境,产生的条件即对应操作步骤;

3. 简述一下BUG的生命周期?

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

4. 软件的缺陷等级应如何划分?(知道就行,一般都是随意划分就可以)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 . 可输入区域和只读区域没有明显的区分标志

Ⅱ.测试过程及方法

1. 你认为做好测试用例工作的关键是什么?

需求和设计文档的理解程度,对系统的熟悉程度

2. 你认为做好测试用例工作的关键是什么?

1、寻找Bug;

2、避免软件开发过程中的缺陷;

3、衡量软件的品质;

4、关注用户的需求。

总的目标是:确保软件的质量。

3. 一套完整的测试应该由哪些阶段组成?

测试计划、测试设计与开发、测试实施、测试评审与测试结论

4. 软件验收测试包括?

正式验收测试,alpha 测试,beta 测试。

5. 系统测试的策略有?

功能测试, 性能测试 ,可靠性测试,负载测试,易用性测试,强度测试, 安全 测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试

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

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

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

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

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

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

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

7. 简述软件测试中的“80-20原则”。(了解就行)

(1)80% 的软件缺陷常常生存在软件 20% 的空间里;

(2)测试工作中能够发现和避免 80% 的软件缺陷,此后的验收测试等能够帮助我们找出剩余缺陷中的 80% ,最后的 5% 的软件缺陷可能只有在系统交付使用后用户经过大范围、长时间使用后才会曝露出来。 (3)80% 的软件缺陷可以借助人工测试而发现, 20% 的软件缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分,因此尚有 5% 左右的软件缺陷需要通过其他方式进行发现和修正

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

1. 项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪

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

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

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

5. 测试人员搭建环境

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

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

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

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

9. 根据自己的理解回答什么是软件测试,软件测试分为哪几个阶段。

软件测试是一个为了寻找软件中的错误而运行软件的过程,一个成功的测试是指找到了迄今为止尚未发现的错误的测试。 软件测试一般分为单元测试、集成测试和系统测试。

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

计划阶段、设计阶段、白盒单元、白盒集成、黑盒单元、黑盒集成、系统测试、回归测

试、验收测试一套完整的测试应该由五个阶段组成:

1)测试计划首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准。以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。

2)测试设计将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响测试结果的有效性)。一个常见的软件测试面试题一个常见的软件测试面试题。

3)测试开发建立可重复使用的自动测试过程。

4)测试执行执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理,测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。

5)测试评估结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。

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

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

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

12. 黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!

黑盒测试的优点有:

1)比较简单,不需要了解程序内部的代码及实现;

2)与软件的内部实现无关;

3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;

4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;

5)在做软件自动化测试时较为方便。

黑盒测试的缺点有:

1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;

2)自动化测试的复用性较低。

白盒测试的优点有:

帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。

白盒测试的缺点有:

1)程序运行会有很多不同的路径,不可能测试所有的运行路径;

2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;

3)系统庞大时,测试开销会非常大。

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

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

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

(1)测试软件项目名称,每个要测试软件项目都有唯一的名称,有的公司对项目还有特定的编号。

(2)测试软件版本号,测试周期内,一般需要测试多个软件版本,报告错误时,一定要正确填写产生错误的软件版本号。

(3)测试者名称,便于分清责任,便于管理。

(4)测试日期与时间,便于分析和统计错误报告信息。

(5)测试软件环境,包括操作系统和其他必要的软件程序。

(6)测试硬件环境,包括测试计算机和其他测试设备的配置信息。

(7)错误描述,简明的描述错误的特征,便于查询和快速浏览。

包含以下几个方面:

a) 错误标识编号 (ID#),每个错误都有一个唯一的标识编号,方便查询。

b) 错误类型,根据错误类型,分配给适当的人员处理错误。

c) 错误级别,错误的严重程度和处理的优先级,优先处理高级别的错误。

d) 错误状态,错误状态表明错误是否已经处理和将怎样处理,根据错误状态,采用适当的处理方法。

e) 错误处理者名称,便于分清责任,便于管理。

f) 重现错误的操作步骤,便于重现错误,修复错误和验证错误。

g) 期望的结果,描述满足设计要求的结果。

h) 实际测试结果,描述实际测试后得到的结果。

i) 必要的附图,便于确认错误的表现形式和错误位置。

(8)测试者的建议等注释,便于错误处理者快速和正确处理错误

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

1. 等价类划分

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

2. 边界值分析法

边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设(面试题目:什么样的工作环境适合你&#from 一个常见的软件测试面试题来自 end#lt;结束)计测试用例,可以查出更多的错误.

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

3. 错误推测法

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

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

4. 因果图方法

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

5. 正交表分析法

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

6. 场景分析方法

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

Ⅲ.常见案例

1.考官从办公室(面试现场)随意选取一个简单物品,假定是一个喝水的带广告图案的花纸杯,让应聘人对它设计出尽可能多的测试用例。(最常见,一般是让自己选择一种,但是面试时一般都给水杯或者办公室里有水杯,所以杯子是最好的选择)

测试项目:杯子

需求测试:查看杯子使用说明书

界面测试:查看杯子外观

功能度:用水杯装水看漏不漏;水能不能被喝到

安全性:杯子有没有毒或细菌

可靠性:杯子从不同高度落下的损坏程度

可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用

兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;

盛上汽油(案例二)放24小时检查泄漏时间和情况等

压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

跌落测试:?? 杯子加包装(有填充物),在多高的情况摔下不破损

震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路公路航空运输

测试数据:

测试数据具体编写此处略(最讨厌写测试数据了)。其中应用到:场景法、等价类划分法、因果图法、错误推测法、边界值法等方法

期望输出:

该期望输出需查阅国标、行标以及使用用户的需求

说明书测试: 检查说明书书写准确性

给大家提三个产品:1.手机 2.电饭锅 3.电梯

有兴趣的同学可以把答案写出来(可以百度看看)

2.请设计一个关于ATM自动取款机的测试用例

1. 功能:

a) ATM所识别卡的类型

b) 密码验证(身份登陆、是否为掩码、输入错误密码时是否提示,连续三次错误吞卡等);

c) 取款功能: i. 金额多少的限制,单次最大最小提取金额、每天最大提取金

额等); ii. 取款币种的不同,如人民币、美元、欧元等。

d) 是否提示客户操作完成后,打印相关操作信息;

e) 查询功能是否正常。

f) 转账功能是否正常。

g) 是否提示客户操作完成后,取回客户卡;

2. 性能:

a) 是否有自动吞卡(非法客户密码错误客户规定时间内未完成相

关操作功能的客户);如果有,有无报警功能(保密报警);

b) 平均无故障时间,平均故障修复时间,输入密码后验证时间,出

钞票时间,查询余额等待时间。

3. 易用性

a) ATM各个操作功能(硬件)是否正常、易懂;

b) ATM的界面显示是否友好;

c) ATM是否支持英文操作;

d) ATM是否存在异常(断电、黑客入侵)有自动保护(报警)功能;

3、 界面测试题及设计题。请找出下面界面中所存在的问题并分别列出;用黑盒测试的任何一种方法设计出此登陆窗体的测试用例。

1、窗体的标题栏中为空,没有给出标题。

2、用户名和密码控件的字体不一致并且没有对齐。

3、文本框的大小不一致没有对其。

4、确定和取消按钮控件的大小不一致。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/175376.html原文链接:https://javaforall.cn

0 人点赞