软件测试常见的面试题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试常见的面试题相关的知识,希望对你有一定的参考价值。

1、您认为做好测试用例设计工作的关键是什么?
  白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
  黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

2、问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
  300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。
  300个用户在一个客户端上,需要更大的带宽。
  IP地址的问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。
  所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

3、软件配置管理的作用?软件配置包括什么?
  软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。
  软件配置包括如下内容:配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计

4、目前主要的测试用例设计方法是什么?
  白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖
  黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法

5、什么是测试用例 什么是测试脚本 两者的关系是什么?
  为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
  测试脚本是为了进行自动化测试而编写的脚本。
  测试脚本的编写必须对应相应的测试用例

6、简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试
  静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
  动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
  黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。
  白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
  α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
  β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

7、软件测试分为几个阶段 各阶段的测试策略和要求是什么?
  和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:
  单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
  集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。
  系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
  验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
  单元测试测试策略:
  自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。
  自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。
  孤立单元测试策略:最好的单元测试策略。
  集成测试的测试策略:
  大爆炸集成:适应于一个维护型项目或被测试系统较小
  自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
  自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
  基于进度的集成
  优点:具有较高的并行度;能够有效缩短项目的开发进度。
  缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。
  系统测试的测试策略:
  数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试

8、软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?
  单元测试阶段:各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。
  集成测试阶段:集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。
  系统测试阶段:将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。

9、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
  黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。
  黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。
  白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐 藏的问题。
  白盒测试的缺点有:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。

10、如何测试一个纸杯?
  功能度:用水杯装水看漏不漏;水能不能被喝到
  安全性:杯子有没有毒或细菌
  可靠性:杯子从不同高度落下的损坏程度
  可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
  兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
  易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
  用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
  疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
  压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

11、你自认为测试的优势在哪里?
  该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:
  有韧性、有耐心、做事有条理性、喜欢面对挑战、有信心做好每一件事情、较强的沟通能力、从以前的经理处都得到了很好的评价表明我做的很好

以上是关于软件测试常见的面试题的主要内容,如果未能解决你的问题,请参考以下文章

常见软件测试面试题

和面试官面对面—常见接口测试面试题汇总(附参考答案)

软件测试常见的面试题

Python自动化测试笔试面试时常见的编程题

软件测试工程师常见的面试题总结多测师

软件测试工程师常见的面试题总结多测师