signed

QiShunwang

“诚信为本、客户至上”

2021年软件测试面试题分享

2021/5/14 23:36:24   来源:

测试理论基础类:

  1. 熟悉常用的测试用例设计方法,如:
    等价类划分,边界值,正交表法,场景法,错误推断法,因果图法(这些方法是黑盒测试的).可以让对方针对其中的一两个方法举例说明.
  2. 对于测试类型的了解:
    功能测试,性能测试,稳定性,压力,负载,安全性测试等.
  3. 测试用例的基本格式是怎样的
    普遍的都会有:标题,预置条件,输入,执行步骤,预期结果.这几个项目
  4. 测试结束的标准:
  5. 用例全部测试,覆盖率达到标准,缺陷率达到标准,其他指标达到标准.

综合方面:

  • 考核对方在设计测试用例时是否考虑的全面
    例:给一个水杯,设计测试用例:给一个我自己总结的答案:先询问出题人这个水杯是用在什么环境下,适用人群是谁,水杯有没有什么合格指标,再根据这些得到的信息,进一步设计用例.(从多方面来考虑)

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

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

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

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

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

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

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

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

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

测试的定义

  • 软件测试是软件工程过程的一个重要阶段,是在软件升级发布之前对软件开发各阶段产品的最终检查,是为了保证软件开发产品的正确性、完全性和一致性而检测软件错误、修正软件错误的过程。
  • 软件测试是:
  1. 程序测试是为了发现错误而执行程序的过程
  2. 测试是为了证明程序有错,而不是证明程序无错误
  3. 一个好的测试用例是在于它能发现至今未发现的错误
  4. 一个成功的测试是发现了至今未发现的错误的测试

从测试方法角度分为

  • 黑盒测试:

  • 是功能测试、数据驱动测试或基于规格说明的测试。在不考虑程序内部结构和内部特性的情况下,测试者依据该程序功能上的输入输出关系,或是程序的外部特性来设计和选择测试用例,推断程序编码的正确性。

  • 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

(1)划分等价类。

  • ①如果某个输入条件规定了取值范围或值的个数。则可确定一个合理的等价类(输入值或数在此范围内)和两个不合理等价类(输入值或个数小于这个范围的最小值或大于这个范围的最大值)。
  • ②如果规定了输入数据的一组值,而且程序对不同的输入值做不同的处理,则每个允许输入值是一个合理等价类,此处还有一个不合理等价类(任何一个不允许的输入值)。
    软件测试面试题+测试基础知识
  • ③如果规定了输入数据必须遵循的规则,可确定一个合理等价类(符合规则)和若干个不合理等价类(从各种不同角度违反规则)。
  • ④如果已划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分为更小的等价类。

(2)确定测试用例。

  • ①为每一个等价类编号。
  • ②设计一个测试用例,使其尽可能多地覆盖尚未被覆盖过的合理等价类。重复这步,直到所有合理等价类被测试用例覆盖。
  • ③设计一个测试用例,使其只覆盖一个不合理等价类。

边界值分析

使用边界值分析方法设计测试用例时一般与等价类划分结合起来。但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。

  • (1)如果输入条件规定了值的范围,可以选择正好等于边界值的数据作为合理的测试用例,同时还要选择刚好越过边界值的数据作为不合理的测试用例。如输入值的范围是[1,100],可取0,1,100,101等值作为测试数据。
  • (2)如果输入条件指出了输入数据的个数,则按最大个数、最小个数、比最小个数少1、比最大个数多1等情况分别设计测试用例。如,一个输入文件可包括1–255个记录,则分别设计有1个记录、255个记录,以及0个记录的输入文件的测试用例。

错误推测法

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

因果图法

  • 等价类划分和边界值方法分析方法都只是孤立地考虑各个输入数据的测试功能,而没有考虑多个输入数据的组合引起的错误。

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

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

  • 然后,要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

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

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

  • 合理的论述,向测试经理说明自己的判断的理由,等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

给你一个网站,你如何测试?

  • 首先,查找需求说明、网站设计m等相关文档,分析测试需求。 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:
  • 功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试 设计测试用例: 功能性测试可以包括,但不限于以下几个方面:
  • 链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。

软件生存周期及其模型是什么?

  • 软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。

  • 在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程。

什么是软件测试?软件测试的目的与原则

  • 使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

软件测试的目的:

  • 测试是程序的执行过程,目的在于发现错误
  • 一个成功的测试用例在于发现至今未发现的错误
  • 一个成功的测试是发现了至今未发现的错误的测试
  • 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
  • 确保产品满足性能和效率的要求
  • 确保产品是健壮的和适应用户环境的

软件测试分为几个阶段 各阶段的测试策略和要求是什么?

  • 软件测试按阶段划分可以分为单元测试、集成测试、系统测试和<验收测试>(不一定有)几个阶段

画缺陷管理流程图
在这里插入图片描述
画V&V模型
在这里插入图片描述

软件测试工作的74个常见问题

1、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?
2、给你一个网站,你如何测试?
3、在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试。
4、一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
5、试述软件的概念和特点?软件复用的含义?构件包括哪些?
6、软件生存周期及其模型是什么?
7、什么是软件测试?软件测试的目的与原则
8、软件配置管理的作用?软件配置包括什么?
9、什么是软件质量?
10、目前主要的测试用例设计方法是什么?
11、软件的安全性应从哪几个方面去测试?
12、什么是测试用例 什么是测试脚本 两者的关系是什么?
13、简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试
14、软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?
15、软件产品质量特性是什么?
16、软件测试的策略是什么?
17、软件测试分为几个阶段 各阶段的测试策略和要求是什么?
18、软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?
19、测试人员在软件开发过程中的任务是什么?
20、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
21、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
22、如何测试一个纸杯?
22、测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
23、黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
24、详细的描述一个测试活动完整的过程。
25、BUG管理工具的跟踪过程(用BugZilla为例子)
26、您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
27、你对测试最大的兴趣在哪里?为什么?
28、你自认为测试的优势在哪里?
29、简述你在以前的工作中做过哪些事情,比较熟悉什么。
30、你的离职原因是什么?
31、给你一个网站,你将如何测试?
32、APP测试与web测试有什么区别?
33、说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;
34、软件验收测试包括哪几种?
35、系统测试的策略有哪些?
36、设计系统测试计划需要参考的项目文档有哪些?
37、通过画因果图来写测试用例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。 利用因果图生成测试用例的基本步骤是:
38、请说出哪些测试最好由哪些人员完成,测试的是什么?
39、设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?
40、在windows下保存一个文本文件时会弹出保存对话框,如果为文件名建立测试用例,等价类应该怎样划分?
41、假设有一个文本框要求输入10个字符的邮政编码,对于该文本框应该怎样划分等价类?
42、软件测试项目从什么时候开始?为什么?
43、什么是回归测试?
44、单元测试、集成测试、系统测试的侧重点是什么?
45、一个测试工程师应具备那些素质?
46、你所了解的的软件测试类型都有哪些,简单介绍一下。
47、你认为做好测试计划工作的关键是什么?
48、您认为做好测试用例设计工作的关键是什么?
49、你的测试职业发展目标是什么?
50、测试结束的标准是什么?
51、一套完整的测试应该由哪些阶段组成?
52、您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
53、测试用例设计的原则是什么?目前主要的测试用例设计方法有哪些?
54、面向对象的测试用例设计有几种方法?如何实现?
55、LoadRunner分为哪三个模块?请简述各模块的主要功能。
56、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)
57、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
58、为什么要在一个团队中开展软件测试工作?
59、一份测试计划应该包括哪些内容?
60、针对于软件的行业背景,你如何理解软件的业务?
61、如何定位测试用例的作用?
62、什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。
63、对某软件进行测试,发现在WinXP上运行得很慢,怎么判别是该软件存在问题还是其软硬件运行环境存在问题?
64、需求测试的注意事项有哪些?
65、主键、外键的作用,索引的优点与不足?
66、性能测试的流程?
67、简述bug的生命周期?
68、缺陷记录应包含的内容?
69、您认为做好测试计划工作的关键是什么?
70、您认为做好测试用例设计工作的关键是什么?
71、您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
72、您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
73、您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
74、您如何看待软件过程改进?在您曾经工作过的企业中,是否有一些需要改进的东西呢?您期望的理想的测试人员的工作环境是怎样的?