功能测试中常见的面试题-一
一、基础概念与理论题
什么是软件测试?它的目的是什么?
回答: 软件测试是通过人工或自动化手段,运行或评估软件系统,以验证它是否满足规定的需求、识别实际结果与预期结果之间的差异,并评估软件产品质量的过程。
目的:
发现缺陷 (Bug/Defect): 这是最直接的目的。
验证需求: 确保软件按照需求规格说明书和设计文档正确实现。
验证功能: 确保软件的功能符合用户期望。
建立信心: 提供软件质量的信心给相关方(用户、管理层等)。
预防缺陷: 通过早期介入和过程改进,预防缺陷的发生(更偏向QA)。
降低风险: 减少软件发布后因质量问题带来的业务风险。
功能测试 (Functional Testing) 和非功能测试 (Non-Functional Testing) 的区别?
回答:
功能测试: 验证软件做什么 (What)。关注系统的功能、行为是否符合需求规格说明书。测试点包括:输入输出、用户界面、API、数据库交互、业务逻辑、安全功能等。 例子:登录功能能否成功?搜索能否返回正确结果?
非功能测试: 验证软件做得如何 (How Well)。关注系统的性能、可用性、可靠性、可维护性、兼容性、安全性(部分)、可扩展性等质量属性。例子:系统能支持多少用户并发?页面加载时间多久?在不同浏览器上显示是否正常?系统崩溃频率?
解释一下测试级别(Test Levels)?
回答: 软件测试通常在不同的开发阶段进行,形成不同的测试级别:
单元测试 (Unit Testing): 测试最小的可测试单元(通常是函数、方法、类)。由开发人员完成,关注代码逻辑。
集成测试 (Integration Testing): 测试多个单元/模块/组件组合在一起时,接口和数据交互是否正确。关注接口契约。
系统测试 (System Testing): 在完整的、集成的系统上进行测试,验证整个系统是否符合功能和非功能需求。这是功能测试的主要舞台。
验收测试 (Acceptance Testing): 由用户、客户或业务分析师执行,验证系统是否满足业务需求和用户期望,决定是否可接受。包括:
用户验收测试 (UAT - User Acceptance Testing)
业务验收测试 (BAT - Business Acceptance Testing)
Alpha/Beta 测试 (Alpha/Beta Testing)
黑盒测试 (Black Box Testing) 和白盒测试 (White Box Testing) 的区别?功能测试通常属于哪种?
回答:
黑盒测试: 测试者不了解软件内部结构、设计和代码实现。只关注输入和输出,基于需求规格说明书进行测试。功能测试通常属于黑盒测试范畴。
白盒测试: 测试者了解软件内部结构、设计和代码实现。基于代码逻辑设计测试用例(如语句覆盖、分支覆盖)。单元测试、集成测试常用。
灰盒测试 (Grey Box Testing): 介于两者之间,测试者了解部分内部结构(如接口定义、数据库模式),结合需求和结构信息进行测试。很多集成测试、API测试可视为灰盒。
什么是回归测试 (Regression Testing)?为什么它很重要?
回答: 当软件被修改(修复缺陷、新增功能、优化代码)后,重新执行之前已经执行过的测试用例,以验证这些修改没有引入新的缺陷或破坏原有的、正常的功能。
重要性: 确保软件质量的稳定性。在快速迭代开发中尤其关键,避免“按下葫芦浮起瓢”。自动化测试是高效执行回归测试的关键。