测试面试题

一、什么是软件测试?软件测试的目的是什么?

 软件测试是为了发现软件的错误而执行程序的过程;

测试的目的是找出软件产品中的错误,让软件尽可能的符合用户的要求

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

因为没有经过测试的软件很难在发布之前知道该软件的 质量,就好比 ISO 质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况

三、你认为测试人员需要具备哪些素质?

做测试应该要有一定的协调能力,因为测试人员经常要与开发接触处理一些问题,如果处理不好的话会引起一些冲突,这样的话工作上就会不好做。还有测试人员要有一定的耐心,有的时候做测试很枯燥乏味。除了耐心,测试人员不能放过每一个可能的错误

四、你以往的测试工作中进行过哪些工作?擅长什么?

我主要从事web测试,搭建环境,对程序进行集成测试、系统测试、回归测试。还有编写测试用例,使用手册,功能测试文档。擅长功能测试。

五、说一下上家公司的软件测试的流程

需求评审(需求是否合理、需求是否可测试)->测试计划(人、时间、业务点、资源)->测试设计(写标题,测试用例)->冒烟测试(准入测试)->全面开展测试(测试执行:测试环境搭建,)->bug提交->新版本发布(bug有没有验证,新功能测试、回归测试)-》测试报告总结

1、需求评审-----产品记录客户的需求,转化成需求文档,召集开发、测试进行需求评审,(测试人员对需求进行测试,比如文档中有没有描述不准确的地方,或者理解有困难的内容)

2、测试计划-----比如概要设计、详细设计、参考文档、背景、人员分工、时间安排、里程碑、风险评估等等

3、测试计划评审-----时间安排是否合理、风险是否规避掉、测试机的准备、系统的准备、测试的方法、时间的限制、

4、编写测试用例-----人员分工编写不同模块的测试用例

5、测试用例的评审

6、执行测试用例

7、迭代测试

8、验收测试

9、编写测试报告发布上线

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

软件测试方法一般分为两种:白盒测试与黑盒测试。白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,它着重于程序的内部结构及算法,通常不关心功能与性能指标;黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,它实际上是站在最终用户的立场,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定

七、测试分为哪几个阶段?

一般来说分为5个阶段:单元测试、集成测试、系统测试、回归测试、验收测试

https://blog.csdn.net/lb838315586/article/details/85099064

八、单元测试的测试对象、目的、测试依据、测试方法?

测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试

九、集成测试两种不同的集成方式?

自顶向下集成:模块集成的顺序是首先集成主模块,然后按照控制层次结构向下进行集成,隶属于主模块的模块按照深度优先或广度优先的方式集成到整个结构中去。

自底向上集成:从原子模块开始来进行构造和测试,因为模块是自底向上集成的,进行时要求所有隶属于某个给顶层次的模块总是存在的,也不再有使用稳定测试桩的必要

十、系统测试的主要内容?

所有功能需求得到满足;所有性能测试得到满足;其他需求(安全性、兼容性、容错性等)得到满足

十一、回归测试的方式?

1、覆盖全部测试用例。选择基线测试用例库中的全部测试用例组成回归测试包,测试成本最高

2、基于风险选择测试。可以基于一定的风险标准来从基线测试用例库中选择回归测试包,首先运行最重要的、最关键的和最可疑的测试用例,测试从主要特征到次要特征

3、基于操作剖面选择测试。测试所使用的测试用例个数可以由测试预算确定,回归测试可以优先选择那些最重要或最频繁使用的功能的测试用例

4、重新测试修改的部分。当测试者对修改的局部化有足够信心时,可以通过相依性分析识别软件的修改情况并分析修改的影响,将回归测试局限于被改变的模块和他的接口上

十二、alpha测试和beta测试的区别

alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误

beta测试时用户公司组织各方面的典型终端用户在日常工作中实际使用Beta版本,并要求用户报告异常情况,提出批评意见

区别:

主要是测试场所不同,alpha是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行测试;alpha测试的环境是受开发方控制的,用户的数量相对少,时间比较集中,beta测试环境不受开发方控制,用户数量相对多,时间不集中

十三、什么样的测试用例才合格?

能覆盖到所有测试点的用例

十四、测试用例包括那些?

用例编号、测试项描述、操作步骤、输入、预期结果、实际结果、测试人、测试时间、备注等

十五、缺陷测试报告组成?

缺陷编号、缺陷标题、缺陷描述、缺陷优先程度、缺陷所属模块、缺陷所属版本、缺陷所属开发人员、 输入数据、输出结果、缺陷分析等

十六、软件测试类型有哪些?区别和联系?

1.功能测试:占比最大,也叫黑盒测试(不看代码)。进行动态测试时,需要测试软件功能,不需要测试软件内部结构和处理过程。

技术方法有:等价类划分法、边界值分析、错误推测、因果图和综合策略。

2.性能测试:通过自动化测试工具模拟多种正常、异常、峰值条件,对系统各项性能指标测试。 负载测试、压力测试属于此。负载测试:确定各项工作负载下的系统性能,目标是负载主键增加时,系统各项性能指标变化;压力测试:通过系统的瓶颈,获得系统能提供的最大服务级别。

3.界面测试:界面好坏决定用户对软件第一印象。合理的界面带来轻松愉悦感受,失败界面有挫败感,让强大的功能付诸东流。

4.区别:功能测试关注软件功能,每个功能可能存在的问题。性能测试软件多用户并发的稳定性和强壮性。界面测试关注用户体验和易用性。

https://blog.csdn.net/suifenglie/article/details/50040751

十七、静态测试和动态测试是什么?

所谓静态测试(static testing)就是不实际运行被测软件,而只是检查程序代码、界面或文档中可能存在的错误的过程。 从概念中我们可以知道,其包括对代码测试、界面测试和文档测试三个方面: 对于代码测试,主要测试代码是否符合相应的标准和规范。 对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。 对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求。

动态测试(dynamic testing),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。 黑盒测试有可能是动态测试(运行程序,看输入输出),也有可能是静态测试(不运行,只看界面) 白盒测试有可能是动态测试(运行程序并分析代码结构),也有可能是静态测试(不运行程序,只静态察看代码) 动态测试有可能是黑盒测试(运行,只看输入输出),也有可能是白盒测试 (运行并分析代码结构) 静态测试有可能是黑盒测试(不运行,只察看界面),也有可能是白盒测试(不运行,只察看代码)

十八、什么是兼容性测试?

检查软件在不同软件、硬件平台是否可以正常运行。 即软件的可移植性。

主要查看在不同操作系统、浏览器、数据库、不同版本是否正常运行

十九、软件测试环境搭建的注意事项?

搭建测试环境前,确定测试目的;测试环境时尽可能的模拟真实环境;确保无毒环境;营造独立的测试环境;构建可复用的测试环境

https://www.jianshu.com/writer#/notebooks/41407343/notes/44327158

二十、好的测试用例的关键点是什么?

白盒测试:较少的用例覆盖尽可能多的内部程序逻辑结果。

黑盒测试:较少的用例覆盖模块输出和输入接口。一最少用例在合理时间内发现最多的问题

二十一、软件开发过程和角色分工?

测试配合开发等进行需求分析和讨论,根据需求说明书指定《项目测试计划》,编写测试用例,建立测试环境。 测试负责新产品测试,原有产品的升级测试,负责软件问题解决过程跟踪,软件开发文档、开发工作的规范化,管理开发部门的产品文档,制作用户手册、操作手册,产品上限测试,监督软件开发过程执行,提高软件质量

二十二、编写测试用例的方法?

等价类,边界值,因果图,判定表,状态迁移,正交,流程分析,输入域覆盖法,输出域覆盖法,错误猜测法,异常分析法

https://blog.csdn.net/u014745194/article/details/79919756

二十三、软件测试的方法?

  1. 从是否关心软件内部结构和具体实现的角度划分:白盒测试、黑盒测试、灰盒测试

  2. 从是否执行代码角度:静态测试、动态测试

  3. 从软件开发的过程按阶段划分:单元测试、集成测试、确认测试、系统测试、验收测试、回归测试

https://blog.csdn.net/fengluowusheng/article/details/90739316

二十四、软件测试策略与测试类型的区别?

测试策略说的是如:黑盒测试,白盒测试,测试类型说的是如:性能测试,功能测试。策略是大范围,策略包含了类型。

二十五、你们是如何编写测试用例?根据什么来编写的?如何确保用例的覆盖度?

我们是根据需求(需求说明书、之前的产品、同品、软件规范、经验值)编写用例(UI、功能、兼容性、安全、性能、稳定性、易用性),用到什么方法(测试用例设计方法)。如果把上述的点都考虑并测试到了,那么覆盖度就达到要求

二十六、根据你以前的工作或学习经验描述一下软件开发、测试过程,由哪些角色负责,你做什么?

要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所分到的模块执行测试用例

二十七、B/S架构和C/S架构的区别?

(1) 硬件环境不同: C/S建立在专用网络上,小范围的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务; B/S建立在广域网上,不需要专门的网络硬件环境

(2)安全要求不同: C/S一般面向相对固定的用户群,对信息安全控制能力强,一般高度机密的信息系统采用; B/S建立在广域网上,对信息安全控制能力弱,面对不可知的用户的用户群

(3)系统维护不同 C/S程序由于整体性,必须整体考察,升级困难,多建立在windows上,表现方法有限, 对程序员要求较高; B/S系统无缝升级,维护开销小,有更加丰富的表现形式,开发难度较低

(4)处理问题不同 C/S处理用户固定,安全需求高,需求相同操作系统 B/S面向所有用户,分散广,对系统要求小

二十八、软件测试的原则?

所有的测试都应追溯到用户需求 (2)应当把“尽早和不断地测试”作为座右铭 (3)测试工作应当由独立的专业的软件测试机构来完成 (4)Pareto原则,测试发现的错误中80%很可能起源于20%的模块中(导入新的代码的情况) (5)设计测试用例时,应该考虑各种情况 (6)对测试出的错误结果一定要有一个确认的过程(缺陷描述报告) (7)制定严格的测试计划 (8)完全测试是不可能的,测试需要终止 (9)注意回归测试的关联性 (1) (10)妥善保存一切测试过程文档

二十九、软件产品质量模型的特性?

功能性:是指软件产品在指定条件下使用时,提供满足明确和隐含要求的功能的能力 2.可靠性:是指在特定条件下使用时,软件产品维持规定的性能级别能力。第一层:设备最好不要出故障;第二层:设备出现故障了不要影响主要的功能和业务;第三层:如果影响了主要功能和业务,系统可以尽快定位并恢复 3.易用性:是指用户在指定条件下使用软件产品时,产品被用户理解、学习、使用和吸引客户的能力(易懂,易学,易用,漂亮好看) 4.效率:是指在规定条件下,相对于所用资源的数量,软件产品可提供适当的性能的能力,通产,效率就是我们常说的产品性能 5.可维持性:是指产品可被修改的能力,这里的修改是指纠正,改进软件产品和软件产品对环境,功能规格变化的适应性 1. 6.可移植性:是指软件产品从一种环境迁移到另一种环境的能力,这里的环境,可以理解为硬件、软件或组织等不同的环境

三十、QC和QA的区别?

QC:检验产品的质量,保证产品符合客户的需求,是产品质量检查者 QA:审计过程的质量,保证过程被正确执行,是过程质量审计者

QC进行质量控制,向管理层反馈质量信息;QA则确保QC按照过程进行质量控制活动,按照过程将检查结果向管理层汇报,这就是QA和QC工作的关系

你可能感兴趣的:(测试面试题)