文章图片
软件测试是指评估软件产品质量的过程。它是一个综合过程,构成了软件开发生命周期 (SDLC) 的一个组成部分。
由于软件开发的指数级增长和网络应用程序的出现,越来越多的人开始专注于学习软件测试。这使他们能够在软件测试领域担任有利可图的角色,从软件测试人员到测试主管和经理。
软件测试是一个综合领域,涉及多个概念、工具、方法、方法论等。进入软件测试或在相同领域取得进展需要对许多关于软件测试技术的概念有很好的了解。
软件测试面试题及答案合集以下是我们挑选的前 50 名软件测试面试问题和答案,它们将帮助你在软件测试中发挥作用,或者至少让你衡量迄今为止的准备和进度:
问题:什么是软件测试生命周期?答: 软件测试常见面试题有哪些:软件测试生命周期是指软件测试的系统过程。STLC 定义了整个事物,从开始到结束。它由几个称为阶段的子过程组成,它们是:
- 需求收集
- 需求分析
- 测试计划
- 测试用例开发
- 环境设置
- 测试执行
- 测试周期结束
- 黑盒测试- 完全基于测试要求和规范。不需要任何知识:
- 内部路径,
- 代码结构,或
- 软件实现。
- 白盒测试- 需要高级编程技能。这种测试策略建立在内部路径、代码结构和软件实现之上。
- 灰盒测试- 这种软件测试策略介于黑盒和白盒测试策略之间。在这里,被测软件的内部细节鲜为人知。
问题:Bug 生命周期是什么意思?回答:错误生命周期解释了软件错误或缺陷整个生命周期的各个阶段。它从检测错误开始,并在该错误关闭时进行总结,并确保它不会重现。它的各个阶段是:
- 检测/新品
- 已分配
- 活动
- 拒绝
- 延期
- 已测试
- 重新打开(进入活动阶段)
- 已验证
- 关闭
问题:你能定义一个测试用例吗?答:软件测试面试题及答案合集 - 测试用例可以定义为一组特定的条件和/或变量,在这些条件和/或变量下,软件测试人员确定被测系统/软件是否正常工作并满足指定的要求。
问题:请比较功能和非功能形式的测试?答:以下是功能测试和非功能测试之间的重要区别:
- 基于 - 功能测试基于客户要求,而非功能测试基于客户期望。
- 定义 - 功能测试描述了软件产品的哪些方面。另一方面,非功能测试定义了软件应用程序的方面。
- 执行顺序 - 非功能测试遵循功能测试。
检查、审查和演练是验证的示例,而功能和非功能测试则进行验证。
问题:请解释各类缺陷?答:以下是软件缺陷的三个主要类别:
- 错误 - 与给定规格存在偏差时的结果。当需求执行不正确时,就会出现这种类型的缺陷。
- 遗漏 - 当客户规格遗漏时发生,即未实施。当客户要求不明确但已实施时也可能发生。
- 额外 - 由已实施但未由客户提供的要求引起。尽管这种类型的缺陷与客户规格存在差异,但最终用户可能需要它们。
- 需求文档 - 指定客户的需求。
- 客户意见 - 通过讨论、电子邮件等获得。
- 项目计划 - 完成验收测试。
- 语句覆盖 - 确保源代码的每一行都被执行和测试。
- 决策覆盖 - 确保源代码的每个决策部分都得到执行和测试。
- 路径覆盖 - 确保源代码的每个可能的执行路径都被执行和测试。
- 允许并行执行。
- 使无人值守的执行成为可能。
- 减少人为错误。
- 节省金钱和时间。
- 支持测试一个大的测试矩阵。
- 允许在 macOS、Linux 和 Windows 平台上进行测试。
- 通过与 Docker、Jenkins 等集成,可以进行持续测试。
- 广泛的 Web 浏览器支持,例如 Firefox、IE、Google Chrome 和 Safari。
- 对其他工具(如 JUnit)的集成支持,用于测试用例管理和报告生成。
- 没有许可费用。
- 支持用于编写测试脚本的多种编程语言,例如 C#、Java、PHP 和 Python。
- Selenium Grid
- Selenium IDE
- Selenium Remote Control (RC)
- Selenium WebDriver
问题:请定义 XPath。答: XPath 代表 XML 路径。它用于查询 XML 文档。XPath 由与特定条件配对的路径表达式组成。可以利用 XPath 脚本或查询方便地定位网页元素。XPath 还生成可靠的定位器。
问题:你对绝对 XPath 和相对 XPath 了解多少?答:绝对 XPath 是访问网页元素的直接方式。另一方面,相对 XPath 从 HTML DOM 结构的中间开始。与绝对 XPath 不同,相对 XPath 以双正斜杠 // 开头。
问题:请解释环境现实和测试阶段之间的关系。答:环境现实的重要性随着软件测试的进展而增加。它在早期测试阶段较低,在最终测试阶段最高。
通常,在涉及单元测试的阶段,即最早的软件测试阶段,环境真实性只需要10%左右真实。然而,到验收测试阶段开始时,这几乎是 100% 真实的。
问题:在你看来,如果软件产品的成本在测试的初始阶段本来可以被删除,而后来被删除/修复,那么成本会怎样?回答:软件测试的右手经验法则是,缺陷被移除的越晚,移除它的成本就越高。消除缺陷的最佳阶段是需求和设计阶段。
逃离设计和需求阶段的缺陷可能会变成:
- 在执行/开发阶段移除成本高 5 倍,
- 在测试阶段移除时成本高 8 倍,
- 在实施/部署阶段移除成本高 10 倍,以及
- 在软件产品的维护阶段删除时成本高 20 倍。
- 回归测试- 关于检查代码更改对现有功能的影响的软件测试。
- 确认测试- 这是关于是否正确处理较早遇到的缺陷的软件测试。
问题:你能定义随机测试吗?答:随机测试涉及生成和使用随机数据。这是通过使用工具和/或自动化来完成的。一旦生成随机输入数据,就会对其进行测试和观察。
问题:为什么我们先写黑盒测试用例而不是白盒测试用例?答:软件测试面试题及答案合集 - 通常首先编写黑盒测试用例,然后是白盒测试用例,这需要良好的架构清晰度。这在项目的早期阶段是不可用的;因此,不可能尽早编写白盒测试用例。
与白盒测试用例、黑盒测试用例、需求需求文档和设计/项目计划不同。这些在项目早期可用。因此,我们首先编写黑盒测试用例。
问题:请列出缺陷报告格式的各种基本组成部分?答:以下是缺陷报告格式的各种基本组成部分:
- 检测到的缺陷。
- 检测到缺陷。
- 缺陷 ID 和名称。
- 缺陷解决。
- 缺陷已解决。
- 模块名称。
- 优先级和严重性状态。
- 项目名。
- 缺陷快照。
- 复杂的计算,
- 数据驱动,
- 非功能性,
- 回归,和
- Smoke。
- 缺陷检测率。
- 执行时间处理时间。
- 发布产品需要时间。
- 人工成本降低的程度。
- 短时间盒装测试工作的范围,
- 目标,以及
- 测试方法。
问题:请解释溯源矩阵?答:软件测试利用了一份显示测试用例和测试需求之间关系的文档。这称为可追溯性矩阵。它实际上是一种用于黑盒测试的技术。
问题:测试矩阵与追溯矩阵有何不同?答:测试矩阵记录了通过所有软件测试阶段所需的实际质量、工作量、测试计划、资源和时间。相反,可追溯性矩阵专门与黑盒测试相关,用于将客户需求与测试用例进行映射。
问题:你对等价划分测试的理解是什么?答:等价划分测试方法减少了执行软件测试所需的时间。该技术涉及将应用程序输入测试数据划分为多个分区以导出测试用例。
问题:你能区分动态测试和静态测试吗?答:静态测试是使用软件文档完成的。在这种类型的测试中不执行代码。然而,动态测试需要代码执行。
问题:测试计划由什么组成?软件测试面试题解析:测试计划文件详细说明了交付优质产品的各种测试活动。它源自产品描述、SRS 或用例文档,并由测试主管或测试经理准备。测试计划详细说明以下内容:
- 旨在测试的功能。
- 不打算测试的功能。
- 通过/失败标准。
- 责任。
- 测试范围。
- 日程。
- 软件风险和突发事件。
- 软件测试方法。
- 人员配备和培训需求。
- 测试用例标识符。
- 测试可交付成果。
- 测试项目。
- 测试方法和策略。
- 控制 - 定义问题管理流程。
- 记录 - 测试时发现的日志问题。
- 报告 - 将发现的问题报告给上级。
与测试用例不同,测试脚本是一个简短的程序或实际代码,可帮助测试软件产品或其用于测试的部分功能。
问题:请解释一个潜在的缺陷?答:潜在缺陷是一种缺陷,虽然存在于系统中,但不会导致软件产品出现故障或问题。在完全满足其所有条件之前,缺陷将保持潜在状态。
问题:我们用来衡量测试执行质量的参数是什么?答:有两个参数可以为我们提供有关测试执行质量的一些信息。这些是:
- 缺陷拒绝率 - 与被拒绝的缺陷总数与提出的缺陷总数之比有关。
- 缺陷泄漏率——这是指软件中遗漏的缺陷总数与缺陷总数之比。
问题:请解释测试可交付成果。答:测试可交付成果是指为支持测试而必须生成和维护的一组文档、工具等。SDLC 的每个阶段对应于不同的测试可交付成果。
问题:突变测试的目的是什么?答:变异测试旨在检查一组测试用例或测试数据的有用性。这是通过有意更改代码、引入错误来完成的。然后,原始测试用例/数据经过重新测试以进行错误检测。
问题:在选择自动化测试工具之前,你应该考虑哪些事项?答:软件测试面试题及答案合集 - 在执行自动化测试之前,你需要考虑很多因素。这些是:
- 应用稳定性。
- 跨环境执行。
- 复杂程度。
- 自动化测试脚本的可重用性。
- 应用程序的大小。
- 技术可行性。
- 测试数据。
- 找到分数。
- 准备个人资料。
- 更改风险属性。
- 部署资源。
- 做一个数据库。
- 蛮力。
- 回溯。
- 引起消除。
- 无故障分析。
- 程序切片。
- 计算机系统,
- 服务器,
- 系统资源,
- 软件,以及
- 产品性能。
问题:有效的软件质量保证 (SQA) 有哪些最佳实践?回答:重要的 SQA 最佳实践是:
- 连续的提高。
- 文档。
- 经验丰富的 SQA 审核员的参与。
- 利用工具。
- 指标的使用。
问题:你能解释一下测试闭包吗?答:测试结束是指在测试过程正式完成之前准备的注释。它包含的总数:
- 发现缺陷,
- 缺陷已修复,
- 缺陷未修复,
- 测试用例,
- 执行的测试用例,
- 被拒绝的错误等。
- 测试完成检查- 确保应运行或有意跳过所有测试。所有已知的缺陷都应该被修复或推迟到未来的某个版本中,或者被接受为永久限制。
- 测试工件移交- 确保将测试用例和测试环境移交给指定执行维护测试的人员。它还确保已知的缺陷,无论是被接受的还是被推迟的,都必须被很好地记录下来并传递给那些打算使用和支持系统使用的人。
- 经验教训- 分析测试以了解未来版本所需的更改。确保保持良好做法并放弃不良做法。
- 更新配置管理系统- 在配置管理系统中归档日志、报告、结果等。
问题:软件测试常见面试题有哪些:你能解释一下决策表测试吗?软件测试面试题解析:这种类型的测试用于具有输入之间逻辑关系的功能。在这里,我们有不同的输入组合。在决策表测试术语中,输入称为条件,输出称为操作。决策表也称为因果表。
问题:你对工作台概念的理解是什么?回答:工作台概念是规划如何执行特定活动的有效方法。每个工作台都有以下五个与之相关的任务:
- 输入
- 执行
- 查看
- 产量
- 重工
问题:你能解释一下 LCSAJ 吗?答: LCSAJ 的意思是 Linear Code Sequence And Jump。它由三部分组成:
- 可执行语句的线性序列的开始,
- 线性序列的结束,和
- 在线性序列结束后将控制流转移到的目标行。
哪些问题对你来说最难?通过评论告诉我们。祝一切顺利!
推荐阅读
- 40多个顶级CSS常见面试问题和答案合集
- Python学习线路图(如何学习Python(分步指南))
- Java学习线路图(如何学习Java(分步指南))
- 2022年前端开发人员必备的最佳CSS框架合集
- Symfony框架用法教程(完整的初学者指南)
- jQuery学习线路图(如何学习jQuery(分步指南))
- SQL学习线路图(如何学习SQL(分步指南))
- cocos2dx编译安卓版本号查看C++错误
- android控件之间事件传递