【软件测试】 软件测试面试高频考点总结

⛳什么是软件测试?

软件测试就是根据需求文档证明程度不存在错误。

⛳软件测试和研发的区别是什么?

  • 研发人员是进行实现功能并在实现时发现缺陷定位问题,大多是白盒测试和单元测试,而测试人员是贯穿整个软件开发的生命周期,对软件的质量进行整体把控。
  • 研发人员相对要求的广度小,专业度高,测试人员对知识点的广度要求大,专业度低

⛳一个优秀的测试人员需要具备什么样的素质?

  • 思维:逆向思维,发散思维
  • 性格:善于怀疑、不浮躁、公正、全面
  • 能力:文字能力、开发能力、沟通能力
  • 责任感和压力

⛳什么是需求?

用户的一系列预期达到的效果

⛳什么是Bug?

在规格说明正确的前提下,程序的结果与预期结果不一样时,就产生了Bug

⛳什么是测试用例?

测试用例就是为了实施测试而为测试系统提供的一组集合

⛳软件的生命周期是什么?

软件的生命周期就是指软件产品的设想开始到整个软件不再使用而结束的时间。分为六个步骤:需求分析、计划、设计、编码、测试、运维

⛳瀑布模型?

在这里插入图片描述
是直接流线型进行产品的开发
优点:强调了开发的阶段性,强调了早期的计划,强调产品测试
缺点:没办法即使发现和检测到风险,失去了及早纠正的机会

⛳螺旋模型?

【软件测试】 软件测试面试高频考点总结_第1张图片
在开发初期需求不够明确,采用渐进式开发模式。测试要跟着开发的迭代而迭代
优点:强调严格的全过程风险管理,强调各阶段开发的质量
缺点:对风险管理的技能水平提出了很高的要求,这需要人员、资金和时间的投入

⛳敏捷开发?

个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户的协作 重于 合同的谈判
响应变化 重于 遵循计划

scrum:
product owner产品经理、scrum master 项目经理、team 研发团队

产品经理:整理用户需求,定义商业价值
项目经理:负责召开各种会议,协调项目,为研发团队服务
研发团队:实现功能,完成迭代目标,交付产品

迭代开发: 与瀑布模式不同,scrum把产品的开发分解为若干个小的sprint(迭代),周期从一周到四周,但不会超过四周,每期迭代要完成的user story式固定的,每次迭代都会产生一定的交付。

轻文档和快速迭代是很大的挑战,测试人员对测试用例的依赖减弱,而是根据测试结果来不断调整测试计划。敏捷开发讲究合作,在项目组中,测试人员应该更加主动,多向开发了解需求研讨Bug

⛳测试V模型

【软件测试】 软件测试面试高频考点总结_第2张图片
在单元测试和集成测试时测试是否符合软件的设计。在系统测试时测试系统的功能、性能是否达到要求的指标。在验收测试时,测试系统是否满足用户的各项需求。
缺点:把测试作为编码的后一个阶段,无法在制定需求文档时就接入测试

⛳测试W模型

【软件测试】 软件测试面试高频考点总结_第3张图片

W模型是增加了软件各开发阶段中应该同步的测试工作,测试和开发工作是并行的。测试的对象不仅仅是开发的程序,还包括了需求、设计都要一起测试。
优点:有利于尽早发现解决问题
缺点:需求、设计、编码等活动被视为串行进行,测试和开发也保持着一种现性前后的关系,一个阶段结束才能进行下一个阶段。

⛳软件测试的生命周期?

测试的生命周期是:需求分析、测试计划、测试设计、测试开发、测试执行、测试评估

⛳怎么开始第一次测试?

  • 首先阅读所有的文档包括:需求文档、设计文档、用户手册
  • 尽可能参加各种项目会议,了解项目背景,人员组织、需求和业务
  • 熟悉所使用的测试管理工具、配置管理工具
  • 阅读已有的测试方案和测试案例
  • 阅读旧的bug库
  • 了解公司规范、用例编写规范、执行规范、bug提交规范

⛳编写测试用例的方法?

  • 基于需求:验证需求是否正确、完整、逻辑是否一致,从“黑河”角度设计充分的测试集,保证代码都能完全符合需求
  • 等价类:依据需求将输入划分为若干个等价类,从等价类中选择出一个测试用例,如果这个用例可以通过,认为整个等价类的用例都可以通过。这样就解决了不能穷举的问题
  • 边界值:边界值就是对应输入或输出的边界值测试的一种黑盒测试方法。
  • 因果图:借助了一个简化逻辑图,直观的表明输入和输出之间的相互关系,适用于多种不同组合的输入对应了不同输出的情况。
  • 正交排列:因果法设计出的用例太多就要使用正交排列,它是根据正交性,将所有水平组合中挑选出部分有代表性的点进行测试,通过测试部分了解全面测试情况。可以减少用例数目,用尽量少的用例覆盖输入的两两组合
  • 场景设计:假设软件发生的场景,指定相应的测试用例,该方法可以比较生动的描绘事件触发时的情景
  • 错误推测:靠测试人员的经验和直觉,找出程序中认为可能会出现的错误,有针对的设计测试用例。

⛳什么是单元测试?

是对程度的一段代码或一个功能进行测试,它是检验软件基本组成单位的正确性。
通常使用白盒测试,依据代码和详细的设计文档

⛳什么是集成测试?

集成测试是对拼接起来的不同模块的进行测试,主要检查软件单位之间的接口是否正确
通常使用黑盒和白盒测试相结合,依据概要设计文档和单元测试的模块。测试模块间的数据传输、功能冲突以及模块组装功能的正确性等

⛳什么是系统测试?

是将软件看成是一个系统的测试,包括对功能、性能以及软件所运行的环境的测试,包括回归测试和冒烟测试
是在整个集成测试通过后,一般使用黑盒测试来测试整个软件的功能、界面、可靠性等

⛳什么是回归测试?

指的是之前出现的bug被开发人员修改后,重新进行测试看是否修改以及是否引入新的bug。

⛳什么是冒烟测试?

在测试开始前对基本功能进行测试保证正常,不会阻碍后续测试。

⛳什么是验收测试?

验收测试是部署软件前的最后一个测试操作,是技术测试的最后一个阶段。目的是为了保证软件准备就绪,满足原始的用户需求。
是在整个系统测试后,对包括硬件软件进行的总体测试,依据用户需求和验收标准。一般使用黑盒测试

⛳什么是α测试和β测试?

  • α测试是在开发环境下进行的一种验收测试,是在可控的环境下让用户进行测试,不能由程序员或测试人员完成
  • β测试是一个或多个用户在不同场景下的一种验收测试,环境不受开发方控制,用户数量多,时间不集中

⛳什么是自动化测试?

自动化测试就是预先根据需要测试的流程编写好代码后,让程序代替人工来执行测试用例。有功能测试自动化、性能测试自动化和安全测试自动化。常用在兼容性测试和回归测试中。
它的优点:可以多次运行重复繁琐的代码,可以执行到一些手工测试困难或不可能的任务,可以更好的利用资源也增加了测试的可信度。
它的缺点:始终无法代替手工测试,手工测试比自动化测试发现的缺陷更多。

⛳什么是黑盒测试和白盒测试?

  • 黑盒测试是指把程序当成一个黑盒子,不关心内部的实现结构,只关心相应的输入输出数据。常用方法就有边界值、因果图、场景法等。它的优点是容易实施,贴近用户需求。缺点就是覆盖率较低
  • 白盒测试是指在研究源代码的基础上进行测试,常用的方法有:语句覆盖、判定覆盖、路径覆盖、条件覆盖等。它的优点就是对代码测试更彻底,揭示隐藏错误。缺点就是耗费较大,不能检测出代码遗漏的逻辑

⛳性能测试关注什么?

性能测试一般情况关注:

  • 用户的并发量
  • 服务器的响应时间
  • 程序的资源占用情况
  • 程序的可靠性、可扩展性
  • 软、硬件配置是否合适

等…

⛳ TTLB是什么?

请求响应时间(time to last byte):表示对请求做出响应所需要的时间。这个时间包括了网络传输时间和服务器处理时间以及数据库处理时间。

⛳TPS是什么?

TPS指的是每秒事务通过数目(Transaction Per Second),它是衡量系统处理能力的重要指标。当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,有可能服务器已经出现了瓶颈,对于同一个系统会存在一个最大处理事务的能力,它不随着用户并发的增加而增加。

⛳ 性能测试有哪些分类?

性能测试可以分为:基准测试、负载测试、压力测试、并发测试、配置测试、可靠性测试

  • 基准测试:在制定标准下通过基准测试建立一个基准,以后参数变化后可以再进行一次测试与之前的进行对比,可以看出变化对性能的影响。
  • 负载测试: 在被测系统上不断的增加压力,直到各项指标达到饱和,可以找到系统的处理极限
  • 压力测试:在系统一定的饱和状态下,系统能处理的会话能力以及是否会出现错误,主要为了揭露高负载下的问题。
  • 并发测试:通过模拟用户的并发访问,测试多并发访问一个应用时响应时间以及会否出现死锁等其它性能问题。
  • 配置测试:通过对被测系统的软硬件环境的调整,了解各种不同的环境对系统性能影响的程度,从而找到各项资源的最优分配。
  • 可靠性测试:给系统加载一定的业务压力(例如资源在70%-90%的使用率)的情况下,让应用系统持续运行一段时间,测试系统在这种条件下是否能文档运行。

欢迎阅读我的其它文章:
计算机网络 面试高频考点总结
Java基础 面试高频考点总结
并发篇 面试高频考点总结
有任何问题欢迎指正,也欢迎点赞收藏!如果想加一波关注那就再好不过了

你可能感兴趣的:(软件测试)