软件测试面试题汇总

知识点总结:

(本文是汇聚CSDN各界测试大佬总结的面试题,附原文链接,不喜勿喷,谢谢)

1、什么是软件测试?
答:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。

2、软件测试的目的?
答;测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。

3、什么是需求文档测试:
答:主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;

4、什么是设计文档测试?
答:测试设计是否符合全部需求以及设计是否合理。

5、什么是α测试?
答:Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。

6、什么是β测试?
答:Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。

7、什么是驱动模块?
答:驱动模块在大多数场合称为"主程序",它接收测试数据并将这些数据传递到被测试模块.单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据,为此写驱动。

驱动模块主要完成以下事情:
1、接受测试输入;
2、对输入进行判断;
3、将输入传给被测单元,驱动被测单元执行;
4、接受被测单元执行结果,并对结果进行判断;
5、将判断结果作为用例执行结果输出测试报告。

8、什么是桩模块?
答:比如对函数A做单元测试时,被测的函数单元下还包括了一个函数B,为了更好的错误,定位错误,就要为函数B写桩,来模拟函数B的功能,保证其正确。

9、什么是白盒测试?
答:白盒测试(White-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。目前测试工具主要支持的开发语言包括:标准C、C++、Visual C++、Java、Visual J++等。

10、什么是静态测试?
答:通过运行程序测试软件称为动态测试.通过评审文档、阅读代码等方式测试软件称为静态测试,在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误。静态测试方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

11、什么是回归测试?
答:回归测试的目的是在程序有修改的情况下,保证原有功能正常的一种测试策略和方法。说白了就是,我们测试人员在对程序进行测试时发现bug,然后返还程序员修改,程序员修改后发布新的软件包或新的软件补丁包给我们测试人员,我们就要重新对这个程序测试,已保证程序在修正了以前bug的情况下,正常运行,且不会带来新的错误的这样一个过程。 一般情况下是不需要全面测试的,而是根据修改的情况进行有效的测试。

12、白盒测试有哪几种方法?
答:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。

13、软件的缺陷等级应如何划分?
软件缺陷的等级可以用严重性和优先级来描述;
严重性:衡量缺陷对客户满意度影响的满意程度,分为
1.致命错误,可能导致本模块以及其他相关的模块异常,死机等问题;
2.严重错误,问题局限在本模块,导致模块功能失常或异常退出;
3.一般错误,模块功能部分失效;
4.建议模块,有问题提出人对测试模块的改进建议;

优先级:缺陷被修复的紧急程度;
1.立即解决(P1级):缺陷导致系统功能几乎不能使用或者测试不能继续,需立即修复;
2.高优先级(P2级):缺陷严重,影响测试,需优先考虑;
3.正常排队(P3级):缺陷需要正常排队等待修复;
4.低优先级(P4级):缺陷可以在有时间的时候被纠正;

14、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?(白盒与黑盒的区别)
答:任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。

黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。

以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。

15、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
答:大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。 接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。

16、什么是单元测试?
答:单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。

17、什么是集成测试?
答:集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。

18、系统测试
答:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。

19、验收测试
答:验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.

20、回归测试
答:回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。

21、针对缺陷采取怎样的管理措施?
答:

  1. 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。
  2. 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。
  3. 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。3. 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。
  4. 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态, 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。
  5. 为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。

22、单元测试、集成测试、系统测试的侧重点是什么?
答:单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。

23、设计用例的方法、依据有那些?
答:白盒测试用例设计有如下方法:基本路径测试\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试.这时候依据就是详细设计说明书及其代码结构黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法.依据是用户需求规格说明书,详细设计说明书。

24、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程
答:1) 测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,系统会自动通过Email通知项目组长或直接通知开发者。
2) 经验证无误后,修改状态为VERIFIED.待整个产品发布后,修改为CLOSED.
3) 还有问题,REOPENED,状态重新变为“New",并发邮件通知。
4) 项目组长根据具体情况,重新reassigned分配给bug所属的开发者。
5) 若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明)
6) 开发者收到Email信息后,判断是否为自己的修改范围。
7) 若不是,重新reassigned分配给项目组长或应该分配的开发者。
8)测试人员查询开发者已修改的bug,进行重新测试。

原文:https://blog.csdn.net/qq_34801169/article/details/81661747

1、开发犯低级错误怎么办?
开发首先要规范好编码,出低级错时不要职责,内心指出错误。让他们自己进行测试,反思找出错误。

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

3、开发说不是bug怎么办?
将自己的见解告诉开发,不行就把见解和bug提交项目经理决定。

4、你的职业规划?*
巩固基础测试知识,提高理解需求能力。
学习自动化测试,并且运用。技术到尾后学习带领测试团队。
最后争取达到测试经理水平。

5、什么测试用例才是合格?*
能覆盖到所有测试点

6、缺陷报告测试组成?
缺陷编号、缺陷标题、缺陷描述缺陷有限等级、 缺陷优先程度、缺陷所属模块、缺陷所属版本、缺陷所属开发人员、 输入数据、输出结果、缺陷分析等。
C/S模式,使用交替方法确认是client还是server端问题

7、测试用例包括那些
用例编号、测试环境、用例标题、输入数据、预期结果

8、软件评审的人员和目的
人员:客户、项目经理、开发人员、测试人员
目的:查看软件是否还存在问题。是否在不同平台正常运行,是否有和客户理解不一致的地方,是否有改进的地方

*** 9、什么事软件测试?目的? ***
通过人工或者自动化的操作,运行软件程序,查看他们是否满足客户需求。
目的:最短时间找出尽可能多的软件确缺陷

10、兼容测试
检查软件在不同软件、硬件平台是否可以正常运行。
主要查看在不同操作系统、浏览器、数据库、不同版本是否正常运行

11、为什么进行软件测试?
没经过测试的软件无法保证质量,好比iso质量认证一样。
测试中发现问题,即是提交开发改进,在软件发布时得出软件质量。

12、软件测试类型有那些?区别与联系?
常见:功能测试、性能测试、界面测试。

功能测试:占比最大,也叫黑盒测试(不看代码)。进行动态测试时,需要测试软件功能,不需要测试软件内部结构和处理过程。
技术方法有:等价类划分法、边界值分析、错误推测、因果图和综合策略。

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

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

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

13、好的测试用例关键?
白盒测试:较少的用例覆盖尽可能多的内部程序逻辑结果。
黑盒测试:较少的用例覆盖模块输出和输入接口。一最少用例在合理时间内发现最多的问题。

对可行和不可行的都要考虑,(1)输入 (2)详细操作步骤 (3)预期输出 (4)实际输出

14、黑盒、白盒、单元、集成、系统、验收测试的区别与联系?
黑盒:已知功能设计规格,测试正门每个功能是否复合要求。
白盒:已知内部工作过程,测试正门每种内部操作复合设计规格。
黑盒意味着测试在软件的接口出进行,把测试对象看做一个黑盒子,不考虑程序内部逻辑结构和内部特性,仅看需求说明书检查功能是否复合需求。黑盒-》功能测试(或者 数据驱动测试)

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

16、软件开发过程与角色分工?
开发与测试开会讨论需求。需求分析人员写出需求分析说明,三部门讨论可行性。给出详细设计说明书,开发编码,给出系统流程图。测试根据此,给出bug统计。

17、不同测试类型的联系与区别?
功能、性能、可靠性、安全性、负载测试, 压力、安装\卸载、启动\停止、兼容、互联测试,文档、回归、可使用性、容量测试

18、测试计划工作包括?
时对工作内容的有效组织和规划,保证测试工作有效展开。包括测试目标,测试范围定义,测试方法选择,测试进度里程碑,测试资源管理和配置。
测试目标最重要,因为他是软件测试的最终达到结果

19、性能测试工具,院里、实际应用
LoadRunner。能够录制测试的操作步骤,对其模拟出多个用户播放出来。
(1)visural user genertor:创建脚本,选择协议,录制操作,编辑操作
(2)中央控制器 controller:调度虚拟用户。创建场景,选择脚本,建立虚拟用户,设计shedual,设置ip spoofer
(3)运行脚本,分析shedual
(4)分析测试结果

20、兼容性
平台兼容、网络兼容、数据库兼容、数据格式兼容。

缺陷等级分类
极高:测试过程司机、系统崩溃、数据跌势、功能没有实现
很高:导致软件功能不稳定、功能实现错误、流程错误
中级:校验错误、罕见故障、错别字,不影响功能,影响体验
低级:没影响的小问题

21、缺陷生命周期
新建bug–提交bug–确认bug–分配bug–修复bug–验证bug–关闭bug

22、测试结束标准
1)一二级缺陷数目达到项目质量管理目标要求,测试暂停返回开发
2)项目出现重大估算和进度偏差,需要暂停或者终止
3)新需求变更大,需修改测试计划和测试用例再进行
4)开发暂停,测试也暂停,备份暂停时的数据
5)所有功能、性能测试用例100%进行

23、测试生命周期
需求测试计划指定和评审–测试用例编写–测试用例执行–bug管理–测试报告输出

24、自我介绍套路
1)很高兴获得面试机会……想证明我是何氏的人选……想获得您的认可……
2)反问面试官:您看我继续介绍项目还是您提问关心的问题?

25、项目介绍
1)先整体再局部介绍,项目五大维度:规模(代码规模、需求规模、用例规模、工作量、进度、质量、成本),测试流程,角色与职责,项目中自己角色,自己的特色(做得好的、遇到的困难、做得差的),最后是心得体会。

26、数据库问题
数据库增删改查(insert、delete、update、select);
表结构增删改查(create、drop、alter、describe);
存储过程;
触发器等

27、Linux系统
常见50个命令(find、-name、type、perm、user、group、ctime、atime)
熟悉vi、熟悉linux搭建测试环境。LAMP环境搭建。

28、缺陷相关
缺陷跟踪流程(流程基本要素)、整体流程(会画)、缺陷单的20个属性、属性的意义、如何描述好缺陷单、缺陷单的5C原则、缺陷重现步骤。你认为最经典的bug

29、用例相关
用例格式要素、用例设计工程方法论、方法要求如何利用。 如何评审用例,从那些维度评审,设计好用例需要那些只是结构

30、软件测试流程
熟悉产品/项目–需求评审–测试需求–测试计划–测试方案–测试用例–预测试,第一轮正式测试–第二轮回归测试–第三轮测试,测试报告–总结–测试指南

31、网络相关
基本网络知识
重点TCP/IP协议:https://www.toutiao.com/i6570218601117123080

32、测试工具
性能测试工具:
自动化测试工具:
测试管理工具:

如何去测试给定软件
技巧:从质量模型、测试工具、测试方法、测试流程、探索式测试,宏观解决,再围观讲解用例设计

33、卓越工程师素质
沟通、五心工程师、追求完美

34、你还有什么想要问的吗?
满意情况:先表示感谢,问如果有下一轮面试,什么时候,做什么准备;
一般般情况:感谢,对自己表现不太满意,能否给我一些建议;
很糟糕:感谢,认识到不足,希望给建议

35、测试用例编写结构
功能性、界面UI、易用性、安全性、兼容性

36、STAR法则
S(situation):项目属于什么类型,周期多长
T(task):团队分工,你的角色
A(action):具体实施,自己做了什么
R(result):最后成果,你的收获

37、如何测试纸杯
功能性:是否漏水;是否喝到水
安全性:有没有细菌
可靠性:摔下来的损坏程度
可移植性:不同地方、温湿度使用
兼容性:容纳果汁、啤酒、汽水、汽油等
易用性:是否烫手、防滑、方便饮用水
用户文档:使用手册对用法、限制、使用条件描述
疲劳测试:分别装上水、汽油等24小时,泄露情况
压力测试:用镇不断加压,承受多达压强
---------------------**
原文:https://blog.csdn.net/xvnmeng/article/details/82561898

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的生命周期?

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

  1. 软件的缺陷等级应如何划分?(知道就行,一般都是随意划分就可以)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、关注用户的需求。

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

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

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

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以及增加了部分功能,测试人员进行测试。 7. 开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。
8) 重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。 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. 等价类划分

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

  1. 边界值分析法

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

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

  1. 错误推测法

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

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

  1. 因果图方法

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

  1. 正交表分析法

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

  1. 场景分析方法

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

Ⅲ.常见案例

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

测试项目:杯子

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

界面测试:查看杯子外观

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

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

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

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

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

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

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

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

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

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

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

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

测试数据:

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

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

  1. 功能:

a) ATM所识别卡的类型

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

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

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

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

e) 查询功能是否正常。

f) 转账功能是否正常。

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

  1. 性能:

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

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

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

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

  1. 易用性

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

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

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

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

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

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

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

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

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

原文:https://blog.csdn.net/u012150264/article/details/80423470

你可能感兴趣的:(软件测试面试题汇总)