Skip to content

测试流程面试题

测试流程

面试题目

  • 级别: L1
  • 知识模块: 测试流程

测试流程

公司

  • 小米外包

招聘类型

社招

题目解析

介绍测试流程的一般步骤

答案

测试流程包括需求分析、测试计划、测试设计、测试执行、结果评估等步骤。

功能测试流程

面试题目

  • 级别: L1
  • 知识模块: 测试流程

介绍⼀下功能测试流程?

公司

  • 快手

招聘类型

社招

题目解析

考察是否具有真实项目经验。

答案

  1. 在上家公司中,我们⼀般是由产品⼈员主导,开发⼈员和测试⼈员⼀起开⼀个需求评审会,明确产品需求,
  2. 然后会由测试主管编写测试计划,对测试任务的分配和排期,
  3. 我们则会根据产品提供的需求⽂档进⾏测试点的梳理,再结合测试点编写测试⽤例,当⽤例完成后⼀般会召开评审会议对测试⽤例进⾏评审,
  4. 后续等到开发那边冒烟测试通过后提测,我们再对项⽬进⾏对应的接⼝测试,功能测试和性能测试
  5. 在测试过程中对于发现的 bug,我们会使⽤缺陷⼯具进⾏集中管理,再者就是还会协助开发⼈员去修复bug 并进⾏回归测试,
  6. 待到所有测试⼯作完成后,会最终再输出⼀个测试报告。

我们项⽬的测试流程⼤概就是这样。

前端 Bug 还是后端 Bug?

面试题目

  • 级别: L1
  • 知识模块: 测试流程

前端 Bug 还是后端 Bug?

公司

  • 百度外包

招聘类型

社招

题目解析

判断前端还是后端 Bug 需要根据问题表现、日志、接口返回等综合信息,前端 Bug 通常表现在界面展示、交互逻辑,后端 Bug 通常表现在数据处理、接口调用等

答案

通过前后端联调,排查问题根源,如果问题涉及数据处理、逻辑判断等,很可能是后端 Bug;如果问题仅涉及界面展示、用户操作,很可能是前端 Bug

  • 先查看数据库,检查商品是否下订单成功
    • 如果数据库中有对应的订单信息,说明查询我的订单存在问题
    • 如果数据库中没有对应的订单信息,说明下单的操作存在问题
  • 如果查询我的订单存在问题,使⽤ Fiddler 抓取请求和响应的报⽂
    • 如果查询我的订单的请求有问题(URL/参数不正确),说明是前端代码的问题
    • 如果请求没有问题,但是响应有问题(⽆响应/响应结果错误),说明是后端代码的问题
    • 如果请求和响应都没有问题,需要具体分析。
      • 例如:浏览器兼容问题(前端问题); 前后端开发⼈员对字段的定义不⼀致(status:1,后端开发⼈员认为表示成功,前端开发⼈员认为表示失败)
  • 如果下单的操作存在问题,使⽤抓包工具抓取请求和响应的报⽂
    • 如果下单的请求有问题,(URL/参数不正确),说明是前端代码的问题
    • 如果请求没有问题,但是响应有问题(⽆响应/响应结果错误),说明是后端代码的问题
    • 如果请求和响应都没有问题,需要具体分析。
      • 例如:返回成功,但是使⽤ insert 语句在插⼊订单数据到数据库中,可能订单信息不满⾜订单表的字段类型/约束,导致插⼊数据失败(后端问题)

缺陷报告组成要素

面试题目

  • 级别: L1
  • 知识模块: 测试流程

缺陷报告组成要素

公司

  • 快手

招聘类型

社招

题目解析

回答自己在测试工作中具体项目组的情况

答案

  • 缺陷 ID: 缺陷编号
  • 缺陷标题: 描述缺陷的核⼼问题
  • 缺陷状态: New(新建)/Open(打开)/Closed(关闭)/Reopen(重新打开)/Postponed(延 期)/Reject(拒绝)
  • 严重程度: 严重(S1):主要功能/⼀般(S2):次要功能/微⼩(S3):易⽤性、界⾯/建议(S4):建议性问题
  • 优先级: P0:24 ⼩时内解决/P1:发布前必须修复/P2:可以在下⼀个版本中修复
  • 所属模块: 出现缺陷的模块
  • 缺陷描述: 缺陷复现的参照内容(预置条件/测试步骤/测试数据/预期结果/实际结果)
  • 附件: 图⽚、⽇志等信息(证据)

如何评估缺陷的优先级和严重级别

面试题目

  • 级别: L1
  • 知识模块: 测试流程

如何评估缺陷的优先级和严重级别?

公司

  • 小米

招聘类型

社招

题目解析

不需要全部都回答,⼤概描述即可。

答案

  • 优先级:指开发修复缺陷的先后顺序。
  • 严重级别:指发现的缺陷对产品质量影响的严重程度
    • ⾼(P1):缺陷严重,影响测试或产品⽬的,需优先考虑。 如:产品的版权未更正、技术性的不正确内容等。应⽤程序包版本不对、⽆法安装导致⽆法测试、闪退、崩溃等
    • 中(P2):对产品来说不是那么关键的场景或特性。 如:在⼩标题上发现的错误、从历史版本中来的遗留 bug 等。
    • 低(P3):对产品使⽤没有太⼤影响。 如:在低使⽤频率⻚⾯中发现的 bug、很少被使⽤的功能等。⽂字重叠、错别字等 UI ⽅⾯的缺陷,不易操作等。
  • 缺陷的严重级别:
    • 致命缺陷(Fatal):造成系统或应⽤程序崩溃、死机、或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。
    • 严重缺陷(critical):系统的主要功能部分丧失、数据不能保存。如致命的错误声明,程序接⼝错误等约束条件。
    • ⼀般缺陷(major):次要功能没有完全实现但不影响使⽤。如提示信息不太准确,或⽤户界⾯差,操作时间等。
    • 轻微缺陷(Minor):使操作者不⽅便,但它不影响功能过的操作和执⾏,如错别字、界⾯不规范。
    • 意⻅优化(Enhancemental):由问题提出⼈对测试对象的改进意⻅。

要注意的是,开发会根据优先级来进⾏参考,决定修复先后顺序,所以⾼优先级不⼀定就是致命的缺陷。

软件测试的流程大概是什么样的

面试题目

  • 级别: L1
  • 知识模块: 测试流程

软件测试的流程大概是什么样的?

公司

  • 某金融公司

招聘类型

  • 社招
  • 校招

解题思路

面试官主要考察内容为:

  1. 考察日常工作流程的掌握情况。
  2. 是否处理和从事过软件测试的相关工作。
  3. 检验出真是的测试经验。

解题思路:

  1. 梳理大概的测试流程

    1. 需求分析
    2. 测试设计
    3. 测试执行
    4. 测试评估
    5. 上线
  2. 再拆分每一点,结合自己的项目流程进行详细的补充说明

    • 需求分析:全面了解系统概况、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价,制定测试计划。
    • 测试设计:按照测试计划完成测试设计,包括测试用例的设计,并且对编写完毕的测试用例进行评审和完善。
    • 测试执行:按照测试计划执行测试用例,并对 Bug 进行跟踪管理。 - 在开发提测之后,先执行冒烟用例,冒烟测试通过之后,再执行其他用例。 - 在执行测试用例过程中,要根据用例步骤操作系统,对比执行出来的实际结果和预期结果是否一致。 - 如果一致测试通过。 - 实际结果与预期结果不一致测试失败,需要提交 Bug 进入 Bug 管理流程。 - Bug 修改好之后要回归验证,确认改好了并且没有新增问题。 - 老功能回归测试。
    • 测试评估:总结测试工作。根据测试的结果,出具测试评估报告。
    • 上线:监控线上产品,及时发现并解决线上问题。

答案

软件测试的基本流程包括5个阶段,需求分析,测试设计,测试执行,测试评估,上线。

需求分析:全面了解系统概况、时间安排、功能需求、性能需求、质量需求及测试要求。根据系统概况估算项目所需的人员、时间和工作量,并制定测试计划和报价。

测试设计:按照测试计划完成测试设计,包括测试用例的编写、评审和完善。

测试执行

  • 开发提测后先执行冒烟测试,通过后再执行其他用例。
  • 对比实际结果和预期结果,一致则测试通过,否则提交 Bug 并跟踪管理。
  • Bug 修改后进行回归验证,确认改好且无新增问题。
  • 进行老功能的回归测试。

测试评估:总结测试工作并出具测试评估报告。

上线:监控线上产品,及时发现并解决问题。

软件产品上线流程是怎么样的

面试题目

  • 级别: L1
  • 知识模块: 测试流程

软件产品上线流程是怎么样的?

公司

  • 小米

招聘类型

社招

题目解析

考察是否有真实项目上线经验。

答案

后端发布上线:

  • 测试结束后,达到上线标准,先进⾏灰度发布
  • 先升级部分服务器到最新的版本,观察在升级的服务器上的⽤户的反馈
  • 如果⽤户反馈没有问题,逐步升级所有的服务器
  • 如果⽤户反馈有问题,则回滚到上⼀个版本

一个缺陷的生命周期是怎么样的

面试题目

  • 级别: L1
  • 知识模块: 测试流程

一个缺陷的生命周期是怎么样的

公司

  • 某金融公司

招聘类型

  • 社招
  • 校招

解题思路

缺陷生命周期是指缺陷从被发现到最终解决的全过程。它有助于管理和跟踪缺陷处理进度,确保所有问题得到有效解决,维护软件的质量。

缺陷生命周期的主要阶段:

  1. 报告(Reported/Logged):测试人员或用户发现问题后,在缺陷跟踪系统中记录缺陷的详细信息,包括问题描述、重现步骤、预期结果和实际结果等。
  2. 确认(Confirmed/Triage):缺陷管理人员或项目负责人对缺陷进行初步评估,确认其是否有效,并确定其严重性和优先级。如果缺陷被确认无效,则可能会被拒绝。
  3. 分配(Assigned):确认后的缺陷被分配给合适的开发人员或团队进行修复。此阶段还可能涉及进一步的分析和澄清。
  4. 修复(Fixed/Resolved):开发人员分析缺陷原因并实施修复措施。修复完成后,开发人员会更新缺陷状态,并提供修复说明和相关的代码更改。
  5. 验证(Verified/Testing):测试人员对修复的缺陷进行验证,确认问题是否已解决,并检查是否有新的问题引入。如果修复无效,缺陷状态会重新打开,继续处理。
  6. 关闭(Closed):确认缺陷已解决且验证通过后,缺陷状态被更新为“关闭”。这一阶段通常表示缺陷生命周期的结束。
  7. 重新打开(Reopened)(如有必要):如果关闭的缺陷在后续测试或生产环境中再次出现,则可能会被重新打开,并重新进入处理流程。

结果期望:

通过严格遵循缺陷生命周期的各个阶段,可以确保每个缺陷得到妥善处理和跟踪,避免问题被忽略或遗漏,提高软件的整体质量和可靠性。这一过程还为团队提供了问题处理的透明度和可追溯性,有助于持续改进开发和测试流程。

答案

一个缺陷的生命周期包括报告、确认、分配、修复、验证和关闭等阶段,确保问题得到识别、解决和验证。

你认为这是一个 bug,开发认为这不是一个 bug,怎么办

面试题目

  • 级别: L1
  • 知识模块: 测试流程

你认为这是一个 bug,开发认为这不是一个 bug,怎么办?

公司

  • 百度外包

招聘类型

社招

题目解析

  1. 描述bug的判定标准
    • 软件未达到客户需求文档的功能和性能-少功能
    • 软件出现客户需求不能容忍的错误-功能错误
    • 软件的使用未能符合客户的习惯和工作环境-缺少隐形需求
    • 软件超出需求文档的范围-多功能
    • 软件测试人员认为:软件难以理解、不宜使用、运行缓慢、用户体验不好-不宜使用
    • 只要是符合了这几个标准其中的一条,就可以断定它是一个 Bug。
  2. 描述出现这种情况产生的原因和解决方案
    • 描述不清晰的解决方法: - 修改 Bug 操作步骤:清晰描述、无歧义、无冗余步骤,要达到即使给一个不懂的人去重现这个 Bug,也能按照你的操作步骤复现。 - 有图有真相:带有清晰说明的截图比一大推描述来得直观,易懂。注意对问题区域以强调色标识,并配以文字说明。
    • 难以复现的 Bug:不是所有的问题都能用同样的操作步骤来复现的,有的 Bug 概率出现甚至偶现,或者是只在测试环境里出现。
      • 难以复现的解决办法:
        • 针对难以复现的 Bug,需要保存截图或者记录 log 保留证据
        • 对于只在测试环境下才会出现的,找研发在测试环境进行确认
      • 总之,这类 Bug 要慎重对待,重点要规避风险。
    • 有争议的 Bug:有争议的 Bug 多发生于建议类型的 Bug,比如易用性、美观性等类型的 Bug。
      • 有争议的解决办法:
        • 开会讨论:这种问题是否要修改需要根据公司的项目类型进行讨论。在时间允许的情况下,可以在项目测试接近收尾时-开一个 bug 清除会议,对于剩余 bug 是否修复做明确处理
    • 功能性 Bug:这类 Bug 就是与需求不符、或者与原型设计不符。因为有时候开发对需求没有深入了解可能会忽略或者搞错个别功能。
      • 功能性问题解决办法:
        • 拿证据:提 Bug 时,把需求、设计截图带上,可以省去了大多争议
        • 开会讨论:如果开发确实觉得设计有问题,需要重新进行讨论设计

答案

在以前的测试过程中,很少出现这种问题。⼀般情况下我提交缺陷前都会反复的确认。我也会尽量的保障缺陷额有效率和清晰度,去详细描述 Bug 复现步骤,并提供相关证据。

如果遇到这种情况,我会找到对应的开发⼈员,询问对⽅拒绝或不认为是缺陷的理由,并且会判断这个缺陷被打回的原因是什么。

如果是难以复现的 Bug:我会拉着研发跟他一起进行复现,并且再提交该类 Bug 时会留好 Bug 的截图和 log 日志,做好记录工作。

如果是功能性 Bug:我会把对应需求说明、设计方案的截图找出,给出 Bug 的有利支撑。

如果是有争议的 Bug:如果是需求的理解出现的了歧义,直接找产品或项⽬经理确认通过会议达成共识即可。

你写过测试报告吗?测试报告都有哪些内容?测试报告有什么作⽤

面试题目

  • 级别: L1
  • 知识模块: 测试流程

你写过测试报告吗?测试报告都有哪些内容?测试报告有什么作⽤?

公司

  • 小米

招聘类型

社招

题目解析

测试报告是软件测试过程中关键的文档之一,记录了测试活动的结果和分析。它不仅是对测试工作的一种总结,还为项目团队和管理层提供决策依据。

测试报告的主要内容:

  1. 测试概述:概述测试活动的目的、背景信息、测试类型(如功能测试、回归测试、性能测试等)、测试环境和版本信息。
  2. 测试范围:描述测试覆盖的功能模块、测试范围、测试用例的数量和类型,以及未覆盖的部分(如已知问题、风险等)。
  3. 测试执行情况:详细记录测试的执行情况,包括测试用例的通过率、失败率和未执行的用例。可以通过表格或图表形式展示。
  4. 缺陷统计:提供发现的缺陷数量和类型,按严重性和优先级分类统计,列出已解决和未解决的缺陷,以及这些缺陷的状态变化情况。
  5. 测试结果分析:对测试结果进行分析,包括主要发现的问题、系统的稳定性、性能指标的达成情况等。分析测试数据,指出软件的弱点和风险。
  6. 结论和建议:基于测试结果,给出测试结论,评价软件的质量状况,是否达到上线标准,并提出进一步改进的建议。

测试报告的作用:

  1. 评估软件质量:测试报告提供了全面的测试数据和分析,帮助评估软件的质量和稳定性。
  2. 支持决策:为项目管理层和相关决策者提供信息依据,帮助决定是否发布或延期,以及需要解决的问题优先级。
  3. 项目跟踪和改进:测试报告为项目团队提供详细的反馈,帮助改进软件开发和测试流程,识别和预防类似问题的发生。
  4. 文档记录:作为项目的历史文档记录,测试报告可以在项目后续阶段中参考,为后续迭代和维护提供依据。

通过详细的测试报告,项目团队能够全面了解软件的测试情况,识别潜在风险,从而做出更为科学的决策,保证项目的顺利进行。

答案

测试报告包括测试概述、测试范围、执行情况、缺陷统计、测试结果分析和结论,作用是提供测试过程的全面概述,评估软件质量,支持决策。

有没有制定过测试计划?测试计划包含⼀些什么内容?依据什么来制定的测试计划

面试题目

  • 级别: L1
  • 知识模块: 测试流程

有没有制定过测试计划?测试计划包含⼀些什么内容?依据什么来制定的测试计划?

公司

  • 小米

招聘类型

社招

题目解析

考察是否有真实项目经验。

答案

在我们的项⽬中测试计划主要涵盖:测试范围、测试资源、任务分配、阶段任务完成时间节点,偶尔会加上⻛险评估、测试环境等相关说明。

⼀般情况下会依据需求⽂档确认测试范围的测试点拆解⽂案、开发计划⽂档、产品/运营的⽬标上线时间以及当前测试⼈⼒资源情况来制定测试计划。

在测试环境出现偶尔出现的 BUG,你会如何处理

面试题目

  • 级别: L1
  • 知识模块: 测试流程

在测试环境出现偶尔出现的 BUG,你会如何处理?

公司

  • 小米

招聘类型

社招

题目解析

考试是否有真实项目经验。

答案

  • 当 bug 出现时,抓取 log 或截图,视频留下证据
  • 分析问题严重级别,以及同步开发进⾏分析修复时⻓,测试评估测试时⻓。如果影响范围⼤且修复时间较⻓,则建议回滚代码,否则直接修复验证并重新发布
  • 记录前置环境,操作步骤,和使⽤过的数据,尝试重现 bug
  • 若⽆法重现,则找开发⼈员协助重现;在开发⼈员的协助下仍未能重现,则考虑 bug 的实际影响定义 bug 的严重级别,是否能延迟到以后的版本再来修复

线上 BUG 的定级

面试题目

  • 级别: L1
  • 知识模块: 测试流程

线上 bug 的定级?

公司

  • 优酷外包

招聘类型

社招

题目解析

  1. 紧急(P0):系统瘫痪、核心功能无法使用,影响大部分用户,需要立即修复。
  2. 高(P1):主要功能受影响,可能导致数据丢失或严重错误,需尽快修复。
  3. 中(P2):次要功能受影响,有明显缺陷但不影响主要业务流程,有替代方案。
  4. 低(P3):轻微问题,对用户影响较小,修复可安排在正常迭代中进行。

定级依据 Bug 对系统和用户的影响程度,帮助团队合理分配资源,确保最重要的问题优先解决,保障系统的稳定性和用户体验。

答案

线上 Bug 的定级通常依据其影响范围和严重程度进行分类。主要分为:紧急(系统瘫痪或核心功能无法使用)、高(主要功能受影响,存在数据丢失或严重错误)、中(次要功能受影响,存在明显缺陷但有替代方案)、低(对用户影响较小的轻微问题)。每个等级对应不同的优先级和处理时限。

介绍⼀下你负责的项⽬模块是怎么进⾏测试

面试题目

  • 级别: L1
  • 知识模块: 测试流程

介绍⼀下你负责的项⽬/模块是怎么进⾏测试?

公司

  • 快手

招聘类型

社招

题目解析

回答测试点有哪些:核⼼业务流程测试点+核⼼模块测试点+⾮功能

答案

  • ⾸先从功能、性能、易⽤性、兼容性、UI 界⾯、可靠性、安全等⽅⾯来进⾏测试
  • 在功能⽅⾯:测试业务流程的测试点。
    • 测试不同投资的场景:
      • 正常投资满标审核
      • 正常投资满标审核不通过
      • 未满标提前复审通过
      • 未满标管理员锁定撤标
    • 测试单个功能模块的测试点。主要从正向逆向的维度进⾏测试:
      • 正向:
        • 例如:在投资详情⻚⾯进⾏投资这个功能点,测试正常输⼊⾦额时,能够投资成功,同时投资进 度和余额会刷新;
      • 逆向:
        • 投资⾦额⼩于最⼩⾦额
        • ⼤于最⼤⾦额
        • ⼤于可投⾦额
        • 投资⾦额不是 10 的倍数
        • 账户未开通托管账户
        • 未进⾏⻛险评测等情况
  • 在性能⽅⾯:
    • 例如:⼤量 200 ⽤户同时对同⼀个投资标的进⾏投资,要求响应时间不超过 3s
  • 在易⽤性⽅⾯:
    • 例如:投资步骤不会太多,会有明确的操作提示
  • 在兼容性⽅⾯:(Web)
    • 例如:浏览器的兼容性(IE、⽕狐、⾕歌)及版本(IE11、IE12),操作系统的兼容性(Windows,macOS)

介绍⼀下你最近做的这个项⽬

面试题目

  • 级别: L1
  • 知识模块: 测试流程

介绍⼀下你最近做的这个项⽬?

公司

  • 快手

招聘类型

社招

题目解析

回答项⽬是⼲什么的,包含⼏个平台,给谁⽤的, 分别是⽤来做什么的,核⼼业务是什么

答案

我最近的项⽬是⾦融的借贷项⽬,包括前台(Web/APP)和后台管理系统(Web)。

前台包括:⾸⻚,品质理财,智能投顾,社区,个⼈中⼼(个⼈借款和我的投资的信息板块,可以相互切换)。

后台包括:系统⾸⻚,借款中⼼,资⾦管理,⽤户管理,认证管理,内容管理,消息通知,客服等。(基⾦理财,保险理财,银⾏严选专区)

我主要负责借款和 P2P 投资两个核⼼模块的功能测试和相关接⼝测试。

核⼼业务:

  1. 贷款流程(分为个⼈借款和在线借款)
    • 个⼈借款:
      • 注册--登陆--开通资⾦托管账户--申请额度--额度审核成功--借款⽅式(信⽤抵押)--填写借款申请--提交借款申请成功--后台初审管理未审核--后台管理员初审标审核通过(未通过,驳回,借款⼈在未通过时撤销)--借款申请成功
    • 在线借款:
      • 未注册--在线申请借款-借款申请审核通过--后台添加⽤户--⽤户前台开通资⾦托管并申请额度--额度后台审核通过--发布借款--初审标通过--借款成功
  2. 投资流程
    • 注册-->投资⼈登录-->开启资⾦托管-->⼩额充值-->⻛险评测-->选择款标进⾏投资-->满标 -->满标审核通过-->借款⼈还款

公司中缺陷的原因有哪些

面试题目

  • 级别: L1
  • 知识模块: 测试流程

你们公司中缺陷的原因有哪些?如何归类的?

公司

  • 某金融公司

招聘类型

  • 社招
  • 校招

回答思路

面试官主要考察内容为:

  1. 质量管理的知识,了解你对软件缺陷和质量管理的理解。
  2. 问题解决的能力,通过回答来评估你分析和解决问题的能力,能否精准的识别和定位到缺陷产生的根本原因,并提出自己的有效解决方案。
  3. 经验和实际的操作,根据你的回答,面试官能够评估出你是否从事过软件测试的相关工作,以及查看你你是符合进行管理和分类缺陷的。

解题思路:

  1. 先大体的描述引发缺陷的原因共有几类

    • 需求问题、设计方面的原因、编码问题、测试问题、管理问题、其他因素
  2. 在具体根据每种情况,阐述产生的原因是什么

    • 需求问题:
      • 需求不明确:在需求中没有具体定义、需求设计缺陷、或者需求理解存在二义性的场景下产生的 Bug。
      • 需求变更:在需求中没有具体定义、需求设计缺陷、或者需求理解存在二义性的场景下产生的 Bug。
      • 需求理解错误:
    • 设计方面的原因:
      • 设计缺陷:需求分析阶段遗留的问题。
    • 编码问题:
      • 编码错误:因为代码编写错误导致的缺陷。一般来说,如果没有其它类型的原因,默认为引起缺陷的原因为代码错误。(缺乏编码标准,使用不正确的算法或数据结构)
    • 测试问题:
      • 测试覆盖度不足。如测试环境不完善
      • 新引入问题:开发改 Bug 时,产生新的 Bug。
    • 管理问题:
      • 项目计划安排不合理:比如开发周期过长,测试周期过短。
    • 其他因素:
      • 配置问题:客户配置不正确,或者未导入正确配置产生的 Bug。
      • 覆盖升级:因版本覆盖升级导致的 Bug。
      • 跨版本升级:因跨版本覆盖升级导致的 Bug。
      • 性能问题:系统卡顿,响应慢等。
      • 兼容问题:由于不同硬件设备和操作系统的区别产生的 Bug。
      • 线上故障:线上版本的影响主流程的 Bug。

答案

在公司里,引起的缺陷的原因一般分为这几个方面:需求问题、设计方面的原因、编码问题、测试问题、管理问题、其他因素

这些就是在公司中定义好的缺陷类型。测试在提交缺陷报告的时候,可以默认选择代码错误的类型。开发在修复 Bug 的时候,可以根据最终定位到的原因,修改缺陷类型。

这样就可以在总结复盘的时候,根据缺陷类型的这个维度去分析不同类型的 Bug 数量分别是多少,从而对产品的质量进行评估,并且指定后续质量改进的策略。

项目测试中遇到的困难

面试题目

  • 级别: L1
  • 知识模块: 测试流程

项目测试中遇到的困难,追问,还有吗?

公司

  • 优酷外包

招聘类型

社招

题目解析

  1. 测试环境问题:不稳定或与生产环境不一致,会导致测试结果无法准确反映真实情况,需要投入额外时间和资源解决。
  2. 测试数据问题:数据不充分或不真实,会导致部分功能无法全面测试,增加生产环境出问题的风险。
  3. 团队沟通和需求变更:需求频繁变更且沟通不畅,会导致测试范围和计划不断调整,影响测试进度和质量。
  4. 测试自动化程度低:手动测试占用大量时间,增加测试周期,影响整体项目进度,需提升自动化测试覆盖率和效率。

解决这些问题需要加强环境配置管理、测试数据准备、团队沟通和自动化测试投入。

答案

项目测试中常见的困难还包括:测试环境不稳定或与生产环境不一致,导致测试结果不可靠;测试数据不充分或不真实,影响测试覆盖率;团队沟通不畅,需求变更频繁,导致测试范围和计划不断调整;测试自动化程度低,重复性工作耗费大量时间和精力。

怎么合理规划时间,保证三个需求按时上线

面试题目

  • 级别: L1
  • 知识模块: 测试流程

同时提测了三个需求,上线时间接近,怎么合理规划时间,保证三个需求按时上线?

公司

  • 优酷外包

招聘类型

社招

题目解析

  1. 需求分析与优先级确定:根据业务影响和复杂度对三个需求进行优先级排序,确保关键需求优先测试。
  2. 制定详细的测试计划:分配测试资源,明确每个需求的测试时间和负责人员,避免资源冲突。
  3. 并行测试与资源调度:高优先级需求立即开始测试,低优先级需求准备测试用例和测试环境,确保无缝切换。
  4. 保持沟通与问题处理:与开发和产品团队保持紧密沟通,及时反馈和解决测试中发现的问题,确保进度顺利。

通过合理规划和资源调度,可以确保三个需求按时上线。

答案

合理规划时间可以按以下步骤进行:首先进行需求分析,确定每个需求的优先级;接着制定详细的测试计划和时间表,安排测试资源;并行执行高优先级需求的测试,同时尽早开始低优先级需求的准备工作;最后,保持与开发和产品团队的紧密沟通,及时处理发现的问题,确保按时上线。

测试过程中遇到比较难的项目,介绍一下

面试题目

  • 级别: L1
  • 知识模块: 测试流程

测试过程中遇到比较难的项目,介绍一下

公司

  • 百度外包

招聘类型

社招

题目解析

在测试过程中遇到比较难的项目时,可以先分析问题根源,制定详细的测试方案,与开发密切合作解决问题,利用日志、调试工具等辅助工具来定位问题

答案

在之前的项目中,遇到过一个复杂的跨平台兼容性测试,需要涉及多个设备、操作系统,通过搭建模拟环境和多端协同测试,最终顺利完成测试任务

最有印象的 bug

面试题目

  • 级别: L1
  • 知识模块: 测试流程

最有印象的 bug

公司

  • 快手

招聘类型

社招

题目解析

回答自己在测试工作中遇到的一个最有印象的 bug 及解决过程

“最有印象的 bug”问题考察的是对某个特别显著或具有挑战性的缺陷的记忆和处理经历。通过描述这一经历,可以展示自己的问题解决能力、分析思维和对系统深度了解的能力。

回答中的关键要素:

  1. 问题描述:介绍 bug 的具体情况及其对系统或用户的影响。比如,内存泄漏导致系统崩溃,是一个对生产环境影响严重的问题。
  2. 处理过程:描述解决该问题的步骤和过程,包括如何排查、分析原因、修复和验证。比如,多次排查和优化代码,增加监控工具以防止问题再次发生。
  3. 解决方案:说明最终采取的解决方案及其效果。比如,通过优化代码和监控工具成功解决了内存泄漏问题,防止了系统崩溃的情况。
  4. 学到的经验:总结从这一经历中学到的教训或经验,展示个人在解决复杂问题时的成长和收获。比如,这个 bug 强调了系统监控的重要性和代码优化的必要性。

答案

最有印象的 bug 是一个在生产环境中导致系统崩溃的内存泄漏问题,经过多次排查和修复,最终通过优化代码和增加监控工具成功解决。

测试时间不够了,项⽬⼜必须上线,你会如何处理

面试题目

  • 级别: L1
  • 知识模块: 测试流程

多久做⼀次版本迭代?如何进⾏回归测试?

公司

  • 小米

招聘类型

社招

题目解析

考察真实项目中问题的解决方案。

答案

这⾥测试时间不够了,可能导致原因有很多,⼀如开发或缺陷修复质量不⾼,导致⽆法顺利执⾏测试。⼆是需求的变更导致计划控制不合理等等。但是不管那种原因,客观时间不够了是事实。

那我的话呢⼀般会做如下⽅式来进⾏处理:

  1. 第⼀,迅速盘点剩余测试⼯作量,是否可以通过加班或协调资源的解决问题,保障项⽬上线。
  2. 第⼆,是否可以根据项⽬各个模块的现有测试情况来调整原有测试计划的分配⼯时,如部分模块⽆较⼤问题,是否在⻛险可控的情况减少测试⼯时。
  3. 第三,是否可以借调产品和开发分摊部分简单的测试任务。
  4. 第四,原有复杂的业务功能是否有替代上线⽅案。
  5. 第五,是否可以占⽤部分产品验收时间,
  6. 第六,是否可以裁减部分功能

多久做⼀次版本迭代?如何进⾏回归测试?

面试题目

  • 级别: L1
  • 知识模块: 测试流程

多久做⼀次版本迭代?如何进⾏回归测试?

公司

  • 小米

招聘类型

社招

题目解析

考察是否做过真实项目。

答案

⼀般分⼤版本和⼩版本,⼤版本主要是产品规划的新功能、新业务,⼩版本主要是⼀些历史功能优化和缺陷修复版本。

⼤版本⼀般 2-3 个⽉⼀次。⼩版本每周都会有。

  1. 缺陷回归:触发缺陷查看缺陷是否已经修复;
  2. 历史功能回归:跟项⽬经理以及开发确认本次版本迭代影响的功能范围,对于影响的功能范围以及核⼼业务流程、关键点,挑选正向的⽤例进⾏回归测试;
  3. 同时利⽤版本迭代的空闲时间,对历史功能回归测试实现 UI ⾃动化

你们公司测试通过的标准是什么

面试题目

  • 级别: L1
  • 知识模块: 测试流程

你们公司测试通过的标准是什么?

公司

  • 小米

招聘类型

社招

题目解析

测试通过标准的定义是软件质量管理中的关键环节,它决定了软件是否可以进入下一阶段或交付给用户。这些标准确保软件达到预期的质量要求,并减少发布后出现严重问题的风险。

关键要素:

  1. 测试用例通过率:所有设计的测试用例,特别是覆盖核心功能和关键场景的测试用例,必须成功通过。
  2. 缺陷修复:所有已知的关键和高优先级的缺陷必须修复,因为这些缺陷可能对用户体验或系统稳定性产生严重影响。
  3. 残留缺陷评估:对于低优先级的缺陷,如果它们不会影响核心功能或用户体验,且在可接受的范围内,可以作为已知问题发布,但必须在发布前清晰记录和评估其影响。
  4. 用户验收:用户或客户的验收测试通过,确认软件满足其预期需求和质量标准。
  5. 性能和安全:系统的性能和安全性测试结果必须满足既定的标准,不得存在可能导致严重后果的安全漏洞或性能瓶颈。

答案

测试通过的标准是所有测试用例成功通过,所有已知的关键和高优先级缺陷已被修复且不影响核心功能的正常运行。

  1. 需求规格说明书中的需求必须全部实现并测试通过
  2. 测试⽤例执⾏率 100%
  3. ⽆⼀般、严重、致命等级缺陷
  4. 遗留缺陷和产品或项⽬经理沟通可以延迟处理

你们公司是如何管理的缺陷?缺陷处理的过程是怎么样的

面试题目

  • 级别: L1
  • 知识模块: 测试流程

你们公司是如何管理的缺陷?缺陷处理的过程是怎么样的

公司

  • 小米

招聘类型

社招

题目解析

缺陷管理是软件开发和测试流程中的重要环节,确保在软件生命周期中发现的问题能够被系统化地跟踪和解决。良好的缺陷管理有助于提高产品质量和开发效率。

缺陷处理过程:

  1. 缺陷报告:发现缺陷的测试人员在缺陷跟踪系统中记录缺陷的详细信息,包括缺陷描述、重现步骤、预期结果和实际结果等。
  2. 缺陷分类:根据缺陷的严重性(如严重、一般、次要)和优先级(如高、中、低)对缺陷进行分类,以便确定处理的紧急程度。
  3. 缺陷分配:缺陷管理系统会将缺陷分配给合适的开发人员或团队进行修复。分配过程通常由测试经理或项目经理负责,确保缺陷能够及时得到处理。
  4. 缺陷修复:开发人员根据缺陷报告的信息进行问题排查和修复。修复后,开发人员会更新缺陷状态,并提交修复说明和相关的代码修改。
  5. 缺陷验证:修复完成后,测试人员进行回归测试,验证缺陷是否已经被修复以及修复是否引入新的问题。通过验证的缺陷会被标记为“已解决”或“已关闭”。
  6. 缺陷关闭:确认缺陷已修复且不再存在问题后,缺陷状态会更新为“已关闭”。这一过程可能包括客户或项目干系人的最终确认。

使用工具

  • 缺陷跟踪系统:如 JIRA、禅道、Redmine 等,用于记录、跟踪和管理缺陷的整个生命周期。这些工具帮助团队保持清晰的缺陷状态视图,提供报告和统计功能,分析缺陷趋势和质量状况。

通过系统化的缺陷管理流程,确保每个缺陷都得到适当的处理和跟踪,提高软件的稳定性和质量,减少发布后的问题数量,并增强用户满意度。

答案

缺陷管理包括报告、分类、分配、修复、验证和关闭的过程,通过缺陷跟踪系统记录和监控缺陷状态,确保问题得到及时解决和验证。

你们有多少个测试环境,分别有哪些

面试题目

  • 级别: L1
  • 知识模块: 测试流程

你们有多少个测试环境,分别有哪些?

公司

  • 小米

招聘类型

社招

题目解析

不同的测试环境在软件开发生命周期中扮演着不同的角色,帮助开发和测试团队确保软件在各种场景下的稳定性和可靠性。

常见测试环境:

  1. 开发环境:由开发人员使用,用于编写和调试代码。此环境可以快速部署新功能和修复,支持频繁的代码变更和快速反馈。
  2. 测试环境:测试团队使用的环境,用于执行功能测试、回归测试、集成测试等。测试环境通常模拟真实用户场景,但数据和配置可能是部分或简化的。
  3. 预生产环境(又称UAT环境或验收环境):这是一个接近真实生产环境的测试环境,用于用户验收测试(UAT)。在此环境中,客户或业务用户可以验证系统是否符合其需求和预期。这一环境通常与生产环境配置相同,确保上线前的最终验证。
  4. 生产环境:最终用户使用的实际环境。生产环境包含所有用户数据和实际运行的系统,是提供服务的正式平台。

使用目的:

  • 隔离与控制:不同的环境隔离不同阶段的工作,避免开发中的不稳定代码影响到测试或生产系统。
  • 测试与验证:在不同环境中进行测试和验证,确保软件在各种情况下的正确性和稳定性。
  • 部署准备:预生产环境作为最终上线前的最后测试平台,确保新版本或功能在上线前已经过全面测试。

通过设置多个测试环境,可以在各个开发阶段有效管理和控制软件质量,减少生产环境中出现重大问题的风险,确保软件上线后的稳定性和用户体验。

答案

我们有多个测试环境,包括开发环境、测试环境、预生产环境和生产环境,每个环境用于不同阶段的测试和验证。

多久做⼀次版本迭代?团队规模是怎么样?

面试题目

  • 级别: L1
  • 知识模块: 测试流程

你们这项⽬做了多久?多久做⼀次版本迭代?写了多少⽤例?发现了多少 Bug?你们的团队规模是怎么样?具体的⼈员配置请详细说⼀下。

公司

  • 快手

招聘类型

  • 社招

题目解析

回答自己在测试工作中具体项目组的情况

答案

  • 项⽬周期:
    • 中⼩型项⽬:3-6 个⽉
    • 中⼤型项⽬:6-12 个⽉
  • 多久做⼀次版本迭代?
    • 互联⽹项⽬:1-2 周⼀个迭代
    • 传统项⽬:3-4 周⼀个迭代
  • 迭代内容:
    • ⼀般分⼤版本和⼩版本:
      • ⼤版本主要是产品规划的新功能、新业务,⼤版本⼀般 2-3 个⽉有⼀次
      • ⼩版本主要是⼀些历史功能优化和缺陷修复版本,⼩版本每周/两周有⼀次
  • 写了多少⽤例? —— 数测试点
  • 发现了多少 bug? —— ⽤例数的 20%-30%
  • 团队规模:
    • 互联⽹项⽬:
      • 测试开发⽐:1:3 —— 1:5 甚⾄ 1:7
      • ⼩项⽬: 1-3 个测试⼈员,开发⼈员⼤概为 4-15 ⼈,产品经理与测试基本⼀致(基本 1-3 ⼈)
      • 中项⽬:测试⼈员 5 ⼈以上
    • 传统项⽬:
      • 银⾏类型的项⽬:(⼈员密集型)测试开发⽐:1-3 左右

你如何评估⼀个项⽬或版本的质量好坏?项⽬上线的标准是什么

面试题目

  • 级别: L1
  • 知识模块: 测试流程

你如何评估⼀个项⽬或版本的质量好坏?项⽬上线的标准是什么?

公司

  • 小米

招聘类型

社招

题目解析

评估项目或版本质量和决定上线标准是软件开发过程中的关键环节,涉及多个质量指标和验证步骤,以确保软件的稳定性和可靠性。

质量评估指标:

  1. 缺陷数量和严重性:统计未修复的缺陷数量,并评估其严重性。关键缺陷和高优先级问题的数量是衡量质量的核心指标。低缺陷率和无重大缺陷通常表示较好的质量。
  2. 测试用例通过率:分析执行的测试用例中通过和失败的比例。高通过率表明软件功能按预期工作,低失败率说明缺陷较少。
  3. 性能指标:测试软件的性能,包括响应时间、吞吐量、资源使用等,确保其达到预期的性能标准。性能测试结果直接影响用户体验和系统稳定性。
  4. 用户验收测试(UAT)结果:用户或业务代表对系统进行验收测试,确认系统功能满足业务需求。UAT的通过是验证系统符合实际用户需求的关键步骤。

项目上线标准:

  1. 关键缺陷修复:所有关键和高优先级的缺陷必须修复,且不能存在影响核心功能的严重问题。
  2. 用户验收通过:UAT通过,用户或客户确认系统功能符合要求,且无重大问题。
  3. 性能和安全要求:系统在性能和安全性测试中达到规定的标准,没有重大安全漏洞,能够承受预期的负载。

通过以上指标和标准的评估,确保上线的版本达到预期的质量和稳定性,能够满足用户需求和市场预期,降低发布后出现重大问题的风险。

答案

通过评估缺陷数量和严重性、测试用例通过率、性能指标达标情况及用户验收测试结果来评估项目或版本的质量,而项目上线的标准是所有关键缺陷修复、用户验收通过并满足性能和安全要求。

什么是质量体系

面试题目

  • 级别: L1
  • 知识模块: 测试流程

什么是质量体系

公司

  • 字节外包

招聘类型

社招

题目解析

质量体系是一套规范、流程和方法,用于保证产品质量和持续改进的体系化管理体系。

答案

质量体系是一套规范、流程和方法,用于保证产品质量和持续改进的体系化管理体系。

⽣产环境发现缺陷你会如何处理

面试题目

  • 级别: L1
  • 知识模块: 测试流程

⽣产环境发现缺陷你会如何处理?

公司

  • 小米

招聘类型

社招

题目解析

生产环境中的缺陷处理是软件维护和运营中的关键任务,涉及迅速反应和多方协调,确保最小化对用户和业务的影响。

处理步骤:

  1. 缺陷记录:详细记录缺陷的描述、影响范围、重现步骤和环境等信息,以便后续分析和修复。
  2. 紧急评估:评估缺陷的严重性和优先级,确定其对业务和用户的影响程度。根据评估结果,决定是否需要立即采取紧急措施。
  3. 紧急修复:开发团队迅速定位问题源并制定修复方案。对于严重影响业务的缺陷,可能需要立即开发和发布紧急修复补丁(hotfix)。
  4. 临时应对措施:在修复完成之前,可能需要采取临时措施来减轻问题的影响,如启用备份系统、暂时禁用相关功能或提供备用服务。
  5. 通知相关利益方:及时通知客户、用户和相关内部团队,说明问题情况、解决进展和预期时间,保持信息透明,减少因不确定性引发的信任危机。
  6. 后续处理:在缺陷修复和问题解决后,进行全面的根本原因分析(RCA),并在内部审查中分享经验教训,优化流程,防止类似问题的再次发生。

通过迅速、有效的缺陷处理,最大程度地减少生产环境中的负面影响,保障用户体验和业务连续性。同时,完善的缺陷处理流程和透明的沟通机制有助于维护客户信任和公司声誉。

答案

在生产环境发现缺陷时,应立即记录缺陷详细信息,进行紧急评估和修复,必要时发布紧急修复补丁,同时通知相关利益方并采取临时应对措施。

⽣产环境中有没有出现⽐较严重的问题?如果有的话有什么的⽅法可以降低带来的⻛险

面试题目

  • 级别: L1
  • 知识模块: 测试流程

⽣产环境中有没有出现⽐较严重的问题?如果有的话有什么的⽅法可以降低带来的⻛险?

公司

  • 小米

招聘类型

社招

题目解析

考察是否有真实项目经验。

答案

  1. 在之前的项⽬测试经验中,线上暂时没有出现过⽐较严重的问题。
  2. 如果出现严重的缺陷的话,我会思考以下的⼀些问题,看是否能降低⻛险:
    • 第⼀:先确认导致问题出现的原因,如果是代码逻辑错误,证明漏测-则需要加强测试⼒度、加强测试⽤例评审⼒度。
    • 第⼆:如果是遗漏代码,测试后提交,加强代码封板把控,⽽上线前必须同步最新代码,测试确认。
    • 第三:如是需求实现错误,加强需求评审⼒度。
    • 第四:采⽤灰度上线,⼤型版本先只对部分⽤户开放,稳定后再全⾯升级。

提测时间到了,但是开发没提测,排期已经确定好了

面试题目

  • 级别: L1
  • 知识模块: 测试流程

提测时间到了,但是开发没提测,排期已经确定好了

公司

  • 百度外包

招聘类型

社招

题目解析

在提测时间到了但开发未提测的情况下,可以先与开发沟通确认情况,尽量争取延期提测或者调整排期,保证项目进度和质量

答案

首先与开发沟通确认情况,了解延期提测的原因,然后向领导汇报情况,提出调整排期或延期提测的建议,以确保项目进度和质量

项目上线后发现 bug 测试人员应该怎么办

面试题目

  • 级别: L1
  • 知识模块: 测试流程

如果你在面试过程中,被面试官问到:项目上线后发现 bug,测试人员应该怎么办,你会如何回答呢?

公司

  • 某金融公司

招聘类型

  • 社招

题目解析

通常,如果线上出现 bug,用户会通过业务方反馈到项目组这边,项目经理会根据功能模块的负责人,分给对应的开发与测试。

面试官主要考察内容为:

  1. 突发问题处理的能力:是否有明确的处理流程和步骤
  2. 沟通和协作能力
  3. 改进和预防措施的方法

解题思路:

  1. 根据 bug 的严重程度,对 bug 进行定级划分
  2. 积极推进 bug,体现自己的责任心和主动性
  3. 解决 bug 后要进行复盘

答案

  1. 首先,评估 bug 严重级别:评估 bug 严重程度。若严重,申请紧急变更上线;若不严重,申请在下个版本修复后上线。
  2. 然后,积极推动解决 bug:编写测试用例,在测试环境中重现和定位 bug,提交给开发修复,完成后进行复测。若测试环境无法重现,导入生产环境的包进行测试,或查看生产环境日志定位问题。
  3. 最后,复盘总结:分析 bug 产生的深层原因,查漏补缺,总结经验教训,避免后续出现同类问题。

在你们公司是如何执⾏的需求评审⼯作?有没有提出过问题?需求评审过程中测试⼈员应该注意什么

面试题目

  • 级别: L1
  • 知识模块: 测试流程

在你们公司是如何执⾏的需求评审⼯作?有没有提出过问题?需求评审过程中测试⼈员应该注意什么?

公司

  • 百度外包

招聘类型

社招

题目解析

在测试过程中遇到比较难的项目时,可以先分析问题根源,制定详细的测试方案,与开发密切合作解决问题,利用日志、调试工具等辅助工具来定位问题

答案

会议前,先明确参与会议的时间,地点和⼈员,并进⾏通知,开发和测试需提前熟悉需求,标记不清楚、疑问、建议的地⽅,等待会议时⼀并提出,提⾼会议效率

  • 会议中,提出对需求的疑问和建议,并对提出的问题做记录,以免遗漏,按需采纳修改建议,保证参与⼈员对需求理解⼀致。当存在的异议点较多时,考虑是当下解决还是例外安排会议进⾏解决。
  • 会议后,产品按评审意⻅对需求⽂档进⾏修改,最后形成统⼀的、标准的需求⽂档发出来确认。若评审不通过,那么可能就要修改后进⾏⼆次评审,保证需求的完整性、准确性、理解⼀致性。
  • 要保证会议的⾼效进⾏,注意控制会议时间、讨论重点等,以免进度拖沓,重点问题得不到有效解决。

怎么评判测试同学的工作结果?

面试题目

  • 级别: L1
  • 知识模块: 测试流程

怎么评判测试同学的工作结果? 测试用例覆盖率,有效 bug 数,线上 bug 数(漏测率)

公司

  • 优酷外包

招聘类型

社招

题目解析

评判测试同学的工作结果可通过测试用例覆盖率、有效 bug 数、线上 bug 数等指标,综合考虑质量、效率、创新等方面,定期进行绩效评估。

答案

评判测试同学的工作结果我们会综合考虑测试用例覆盖率、有效 bug 数、线上 bug 数等指标,以及质量、效率、创新等方面,定期进行绩效评估。

质量体系建设怎么推动

面试题目

  • 级别: L1
  • 知识模块: 测试流程

质量体系建设怎么推动

公司

  • 字节外包

招聘类型

社招

题目解析

推动质量体系建设是组织提升产品和服务质量的关键步骤,涉及系统化的流程和方法,以确保持续改进和符合标准。

推动质量体系建设的主要措施:

  1. 建立标准化流程:制定和实施标准化的质量管理流程和规范,涵盖从需求分析、设计、开发、测试到交付和维护的各个阶段。
  2. 提供培训:对员工进行质量管理培训,使其理解质量标准、流程和工具,提升全员的质量意识和能力。
  3. 实施持续改进:通过定期的过程评审、缺陷分析和用户反馈,识别和实施改进措施,不断优化质量管理体系。
  4. 进行定期审计:进行内部和外部质量审计,检查质量管理体系的执行情况,识别改进点,确保体系的有效性和合规性。
  5. 引入质量管理工具:使用质量管理工具和软件(如缺陷跟踪系统、质量控制图、自动化测试工具)来支持和优化质量管理过程。

通过以上措施,组织能够系统地提高产品和服务的质量,减少缺陷和返工,提高客户满意度和市场竞争力。同时,建立一个健全的质量体系也有助于提升组织的整体运营效率和管理水平。

答案

推动质量体系建设需要制定规范、培训团队、开展评审、持续优化等措施。

测试或者质量把控的难点

面试题目

  • 级别: L1
  • 知识模块: 测试流程

测试或者质量把控的难点

公司

  • 优酷外包

招聘类型

社招

题目解析

测试或质量把控的难点可能包括复杂业务逻辑、多样化的环境、持续集成等。同时,需求变更、时间压力、资源限制也是挑战。

答案

测试或质量把控的难点包括复杂业务逻辑、多样化环境、需求变更等。需要克服时间压力、资源限制等挑战。