记录软件测试常见面试题

1、软件测试的流程

以我们公司为例:

  1. 获取测试需求 (需求评审后,产品会发出来)
  2. 编写测试计划(管理层面的文档,我们测试经理编写,5W1H原则:why(为什么测)、what(测什么)、when(什么时候测)、where(在什么环境下测)、who(谁来测)、how(怎么测))
  3. 测试计划评审 (测试经理会将测试计划安排发出来给大家看看,是否有需要调整的地方)
  4. 制定测试方案(技术层面的文档,我们公司暂时没有)
  5. 测试方案评审 (我们公司暂时没有)
  6. 测试用例设计 (我们明确自己的测试模块后,根据需求提取测试点,进行需求确认,根据测试点设计和编写测试用例。最常用等价类划分、边界值分析、错误推测法的用例设计方法)
  7. 测试用例评审 (用例编写者组织,提前把用例发出来,定会议,拉上开发、测试和产品一起参加评审,评审后会更新测试用例)
  8. 执行测试 (我们执行,发现bug,bug确认)
  9. 提交测试报告(提交有效bug至jira指派开发或开发负责人)–>跟踪bug/验证bug(每天中午和晚上下班前询问开发bug解决情况,如果解决及时验证)–>回归测试(bug修复后进行回归测试,检查是否产生新bug)
  10. 测试总结与复盘(测试结束后对自己的测试过程进行整理复盘,将测试过程中遇到的问题及解决方案输出文档提交至wiki)

2、软件测试的分类

1、按软件开发流程的不同阶段划分:
(1)需求阶段:需求测试
(2)编码阶段:单元测试、集成测试
(3)测试阶段:系统测试
(4)发布阶段:验收测试
2、按测试视角划分:
(1)外部视角:黑盒测试
(2)内部视角:白盒测试
(3)内外兼顾:灰盒测试
3、按测试对象的划分:
(1)GUI测试(图形用户界面)
(2)功能测试
(3)易用性测试
(4)接口测试
(5)性能测试
(6)安全测试
(7)兼容性测试
(8)国际化测试
(9)本地化测试
详细请看:在不同的维度划分下到底有多少种测试分类?

3、说说你对兼容性测试的理解

参考:我们应该怎么去设计产品的兼容性测试?
1.测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同一操作平台的不同版本上兼容

2.软件本身能否向前或向后兼容
主要指的是能否兼容不同版本的数据

3.测试软件能否与其他相关的软件兼容
例如杀毒软件,文字处理软件,办公软件之间的兼容性

4.被测软件与标准外设的兼容
例如打印机

5.程序与运行支撑平台版本之间的兼容性
例如是否可以兼容不同的JDK版本,或不同的framework版本等

6.程序与应用服务器之间的兼容性
是否支持不同的应用服务器产品,或支持同一应用服务器的不同版本

7.各个浏览器之间的兼容性
主要是指的B/S架构中,与浏览器各种内核之间的兼容性问题

8.各种屏幕分辨率之间的兼容性

9.不同的网络环境中的兼容性

10.数据库之间的兼容性
不同的数据库之间的数据迁移问题

11.不同版本程序数据文件之间的兼容性
同一数据库在不同版本的软件上是否能够迁移

12.整机的兼容性
例如在本机能安装使用,在其他配置机器能否正常使用

13.其他软件的数据兼容性
即别的软件中的数据文件能否经进行处理

14.低版本软件生成的文件,高版本软件是否能够打开

15.如果是C/S系统,能否支持低版本的客户端程序访问高版本的服务器端或者是否支持高版本的客户端端程序访问低版本的服务器端

16.如果是C/S系统,是否允许不同版本的客户端与同一个服务器进行通信

17.如果是C/S系统,是否允许不同版本的客户端之间进行通信
18.当前软件系统生成的文件或数据是否可以在其他软件中被打开

19.是否支持同时安装或运行两个不同版本的软件

20.不同版本的软件系统是否能够支持以往的数字证书或硬件加密等安全校验文件

21.新版本的系统是否和老的应用插件相兼容

4、测试用例设计方法都有哪些?

1.等价类划分法
顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。

2.边界值分析法
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。

3.错误推测法
错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

4.判定表法
又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。

5.正交实验法
用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。

5、简述测试目标有哪些类型?

功能测试、负载测试、性能测试、安全性测试、恢复测试、安装测试、兼容性测试、可用性测试、可靠性测试、国际化测试、本地化测试

6、请描述如何划分缺陷与错误严重性和优先级别

给软件缺陷与错误划分严重性和优先级的通用原则:
(1)严重性表示软件缺陷所造成的危害和恶劣程度。
(2)优先级表示修复缺陷的重要程度和次序。

严重性:
(1)严重:系统崩溃、数据丢失、数据毁坏
(2)较严重:操作性错误、结果错误、遗漏功能
(3)一般:小问题、错别字、UI布局、罕见故障
(4)建议:不影响使用的瑕疵或更好的实现。

优先级:
(1)最高优先级:立即修复,停止进一步测试。
(2)次高优先级:在产品发布之前必须修复。
(3)中等优先级:如果时间允许应该修复。
(4)最低优先级:可能会修复,但是也可能发布。

7、简述一下缺陷的生命周期

打开 : 表示问题被提交等待有人处理。
重新指派 : 问题被重新指派给某人处理。
处理 : 问题在处理中,尚未完成。
固定 : 确认此问题存在,但暂时不进行处理。
回归 : 对已经修复的问题进行回归确认。Reopened :
关闭 : 问题的最后一个状态。

8、 一个文本框要求输入6位数字密码,且对每个账户每次只允许出现三次输入错误,对此文本框进行测试设计的等价区间有哪些?

1.密码为空 登录
2.正确输入(输入正确的值) 登录
3.错误输入
(输入错误的值,输入数据例如:特殊符号、英文字母、汉字及非法字符等一些非正确值;输入方法例如:不足六位,超出六位,最大输入值) 登录/取消
4.连续错误输入三次以上 (查看连续错误输入后的提示信息及结果)
5.其他(是否支持剪贴板操作,例如:复制/剪切/粘贴)

9、常用adb命令

参考:https://blog.csdn.net/qq_28863851/article/details/103566465

10、常用Linux基础命令

参考:https://blog.csdn.net/qq_28863851/article/details/103495852

11、测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机

参考:https://blog.csdn.net/qq_28863851/article/details/103513731

12、常见HTTP状态码

参考:https://blog.csdn.net/qq_28863851/article/details/86149174

13、Get请求与Post请求的区别

参考:https://blog.csdn.net/qq_28863851/article/details/103514000
参考:https://blog.csdn.net/qq_28863851/article/details/104048071

14、软件的生命周期

参考:https://blog.csdn.net/qq_28863851/article/details/103512250

15、 App与Web测试的相同点与不同点

参考:https://blog.csdn.net/qq_28863851/article/details/103513422

16、如何测试上传和下载?

参考:https://blog.csdn.net/qq_28863851/article/details/103511610

17、Cookies 和 Session的区别

参考:https://blog.csdn.net/qq_28863851/article/details/98062748

18、登录注册模块功能测试点

参考:https://blog.csdn.net/qq_28863851/article/details/103566763

19、常见SQL面试题和基础知识

参考:https://blog.csdn.net/qq_28863851/article/details/103567283
参考:https://blog.csdn.net/qq_28863851/article/details/103567554

20、跨部门合作

1.明确要合作的部门
2.明确要沟通的人
3.熟悉合作部门的工作流程制度
4.沟通前准备好,约定时间,建立良好的关系
5.换位思考
6.尽可能的将跨部门协作至于最高优先级
7.B方案

1、什么是软件测试?2’ 2、软件测试与软件质量保证的区别。10’ 3、报告软件缺陷时,测试人员要对软件缺陷分类,以简明扼要的方式指出其影响,以及修改的优先次序。请描述如何划分缺陷与错误严重性优先级别?10’ 4、BUG信息应该包含那些内容。5’ 5、测试用例说明应该包含哪些内容?测试用例计划包含哪些目标?10’ 6、WEB应用软件测试必须进行哪些类型测试,请列出每种类型的测试要点。15’ 7、网络应用测试的主要内容是什么?10’ 8、用户文档测试应该注意哪些要点?10’ 9、在DBMS中,视图的作用是什么? 写出建立视图的命令格式(如建立信息系学生的视图)10’ 10、请列举您认为身为测试人员应具备的能力和技术。8’ 参考答案 1、什么是软件测试?2’ 【要点】 在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试。 【详解】 软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明书和软件编码进行查错(包括代码执行活动与人工活动)。也可以说,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部构造而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误,这是在软件投入前,对软件需求分析、软件设计规格说明书和软件编码的最终复审,是软件质量保障的关键步骤。 1、 软件测试与软件质量保证的区别。10’ 【要点】 软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作; 质量保证:通过预防、检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动的过程、步骤和产物。 软件测试:通过执行软件来,对过程中的产物(开发文档和程序)进行走查,发现问题,报告质量 【详解】 软件测试和软件质量保证是软件质量工程中的两个不同层面的工作。软件测试只是软件质量保证工作中的一个重要环节。 质量保证(QA)的工作是通过预防、检查与改进来保证软件的质量。QA采用的方法重要是按“全面质量管理”和“过程改进”的原来开展质量保证工作。虽然在软件质量保证的活动中也有一些测试活动,但它所以关注的是软件质量的检查和测量。它的主要工作是对软件生命周期的管理,以及检验软件是否满足规定的质量和用户的需求,因此重要是着眼于软件开发活动中的过程,步骤和产物,而不是软件进行剖析,找出问题或者评估。 软件测试虽然与开发过程紧密相关,但它所关心的不是过程的活动,而是对过程的产物,以及开发出的软件进行剖析。测试人员要对过程的产物(开发文档和源代码)进行走读,运行软件。以找到问题和报告质量。测试人员必须假设软件存在潜在的问题,测试中所做的操作就是为了找出更多的问题,而不是为了验证(事实上也不可能)软件的正确性。所以软件测试虽然对提高软件的质量起着关键的作用,但它只是软件质量保证的一个重要环节。 3、请描述如何划分缺陷与错误严重性优先级别?10’ 给软件缺陷错误划分严重性优先级通用原则: (1) 表示软件缺陷所造成饿危害和恶劣程度。 (2) 优先级表示修复缺陷的重要程度和次序。 严重性: (1)、严重:系统崩溃、数据丢失、数据毁坏 (2)、较严重:操作性错误、结果错误、遗漏功能
1、什么是软件测试?2’ 2、软件测试与软件质量保证的区别。10’ 3、报告软件缺陷时,测试人员要对软件缺陷分类,以简明扼要的方式指出其影响,以及修改的优先次序。请描述如何划分缺陷与错误严重性优先级别?10’ 4、BUG信息应该包含那些内容。5’ 5、测试用例说明应该包含哪些内容?测试用例计划包含哪些目标?10’ 6、WEB应用软件测试必须进行哪些类型测试,请列出每种类型的测试要点。15’ 7、网络应用测试的主要内容是什么?10’ 8、用户文档测试应该注意哪些要点?10’ 9、在DBMS中,视图的作用是什么? 写出建立视图的命令格式(如建立信息系学生的视图)10’ 10、请列举您认为身为测试人员应具备的能力和技术。8’ 参考答案 1、什么是软件测试?2’ 【要点】 在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试。 【详解】 软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明书和软件编码进行查错(包括代码执行活动与人工活动)。也可以说,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部构造而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误,这是在软件投入前,对软件需求分析、软件设计规格说明书和软件编码的最终复审,是软件质量保障的关键步骤。 1、 软件测试与软件质量保证的区别。10’ 【要点】 软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作; 质量保证:通过预防、检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动的过程、步骤和产物。 软件测试:通过执行软件来,对过程中的产物(开发文档和程序)进行走查,发现问题,报告质量 【详解】 软件测试和软件质量保证是软件质量工程中的两个不同层面的工作。软件测试只是软件质量保证工作中的一个重要环节。 质量保证(QA)的工作是通过预防、检查与改进来保证软件的质量。QA采用的方法重要是按“全面质量管理”和“过程改进”的原来开展质量保证工作。虽然在软件质量保证的活动中也有一些测试活动,但它所以关注的是软件质量的检查和测量。它的主要工作是对软件生命周期的管理,以及检验软件是否满足规定的质量和用户的需求,因此重要是着眼于软件开发活动中的过程,步骤和产物,而不是软件进行剖析,找出问题或者评估。 软件测试虽然与开发过程紧密相关,但它所关心的不是过程的活动,而是对过程的产物,以及开发出的软件进行剖析。测试人员要对过程的产物(开发文档和源代码)进行走读,运行软件。以找到问题和报告质量。测试人员必须假设软件存在潜在的问题,测试中所做的操作就是为了找出更多的问题,而不是为了验证(事实上也不可能)软件的正确性。所以软件测试虽然对提高软件的质量起着关键的作用,但它只是软件质量保证的一个重要环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值