软件测试常见面试题

来源:互联网 发布:简约个人业务源码 编辑:程序博客网 时间:2024/05/18 00:41
1、软件测试的定义
  ·  软件测试是为了发现错误而执行程序的过程。
    ·  一个好的测试能够在第一时间发现程序中存在的错误。
    ·  一个好的测试是发现了至今尚未发现的错误的测试。
2、软件缺陷的定义
         软件缺陷(bug),即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。在IEEEl983 ofIEEE Standard 729中对软件缺陷下了一个标准的定义。
    .  从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。
    .  从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
3、软件测试的流程
(1)需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。--testing team
(2)测试计划: 根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如何合理分配安排资源等。---testing leader or testing manager
(3)用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。---testing leader, senior tester
(4)执行测试:根据测试用例的详细步骤,执行测试用例。--every tester(主要是初级测试人员)

(5)执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。--every tester(主要是初级测试人员)

(6)测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug

4、测试工程师应该具备哪些素质和技能?

应具备素质:

(1)适应新环境饿的能力

(2)沟通能力:与需求、设计、开发相关的工作人员进行技术交流的能力;发现软件缺陷后详细准确的描述缺陷细节的能力;说服开发人员修改缺陷的能力

(3)善于发现问题的能力:善于对软件的行为提出质疑、善于发现问题、仔细重现问题

(4)善于分析问题、定位缺陷

(5)耐性:认真仔细逐个排查

(6)沉着稳重:软件测试人员不要人云亦云,要有自己的分析。

(7)从用户角度看问题

(8)总结经验的能力

 应具备技能:

(1)熟练使用各种白盒、黑盒测试方法设计测试用例

(2)熟悉测试阶段、测试流程

(3)熟练使用测试用例管理工具

(4)了解黑盒、白盒、自动化测试工具原理

(5)熟悉主流操作系统,等等

5、对软件测试和软件开发看法

测试和开发是软件生命周期中最重要的两项活动,两者相互依赖,相互促进。软件测试阶段和软件开发阶段是同时开始,同时结束的。软件项目的前期以软件开发为主,测试为辅,软件项目后期以测试为主,开发为辅。

6、测试用例设计方法

黑盒测试:因果图法、错误推测法、边界值分析、等价类划分、状态转换法等

白盒测试:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖

7、黑盒测试定义

又称为数据驱动的测试或输入/输出驱动的测试。将程序视为一个黑盒子。测试目标与程序的内部机制

和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的环境条件。

(测试投入的目标在于通过有限的测试用例,最大限度的提高发现的问题数量,以取得最好的测试效果)

8、白盒测试定义

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

9、黑盒测试白盒测试区别

黑盒测试:

(1)完全不考虑程序内部结构和内部特性

(2)检验程序是否能适当的接收输入数据而产生正确的输出信息

(3)多用于对软件界面、功能、性能、安全性等方面进行测试

(4)穷举输入

(5)适用于软件测试各个阶段(单元测试、集成测试、系统测试、验收测试)

白盒测试

(1)全面了解程序内部结构,对所有逻辑路径进行测试

(2)对程序的数据流和所有分支路径进行覆盖

(3)多用于软件内部实现机制的正确性、有效性

(4)穷举路径

(5)多用于单元测试

10、白盒、黑盒测试优缺点

  黑盒测试的优点有 :

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

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

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

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

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

 缺点 :

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

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

白盒测试的优点有 :

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

缺点 :

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

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

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




0 0
原创粉丝点击