软件测试基础_ieee软件测试,2024BTAJ面试真题详解

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

概念与定义
  1. 软件危机软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

  2. 软件测试(IEEE1983):软件测试是使用人工和自动手段来运行或测试某个系统的过程,目的在于检验被测软件系统是否满足规定的需要,或是弄清楚预期结果与实际结果之间的差别。

  3. 软件缺陷(Ron Patton在《软件测试》一书中提出):只有至少满足下列五个规则之一,才称发生了一个软件缺陷。

  4. 软件未实现产品说明书要求的功能;

  5. 软件出现了产品说明书指明不应该出现的错误;

  6. 软件实现了产品说明书未提到的功能;

  7. 软件未实现产品说明书虽未明确提及但应该实现的目标;

  8. 软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好。

  9. 软件缺陷(IEEE729-1983标准的定义)

  • 从产品内部看,缺陷是软件产品开发或维护过程中产生的错误、毛病等各种问题;
  • 从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
  1. 测试用例(IEEE1990):测试用例是一组测试输入、执行条件和预期结果,目的是要满足一个特定的目标,比如执行一条特定的程序路径或检验是否符合一个特定的需求的用例。
  2. 测试用例(百度百科的定义):测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。
  3. 软件质量(ISO8402):反映实体满足明确或隐含需要能力的特征总和。
  4. 软件质量(GB/T 11457-2006《软件工程术语》):软件质量是
  • 软件产品中能满足给定需要的性质和特性的总体。
  • 软件具有所期望的各种属性的组合程度。
  • 顾客和用户觉得软件满足其综合期望的程度。
  • 确定软件在使用中将满足顾客预期要求的程度。
  1. 静态测试:不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
  2. 动态测试:通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
  3. 手工测试:指测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有异常发生,属于比较原始但是必须执行的一个步骤。
  4. 自动化测试:自动测试是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的测试程序的过程。
  5. 黑盒测试:忽略系统或部件的内部机制只集中于响应所选择的输入和执行条件产生的输出的一种测试。通过测试来检测每个功能是否正常使用,通过软件的外部表现来发现缺陷和错误。
  6. 白盒测试:又称结构测试或逻辑驱动测试,指通过对程序内部结构的分析、检测来寻找问题。
  7. 灰盒测试:介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
  8. 单元测试(白盒):单元测试又称模块测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。

单元定义:(举例)C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。

  1. 集成测试(灰盒):又称组装测试或联合测试。集成测试是检验在单元测试的基础上,将所有模块(软件单元)按照设计(概要设计)要求(如根据结构图)组装成为子系统或系统,进行集成测试。集成测试就是测试这些软件单元是否能够进行正确交互的测试。
  2. 系统测试(黑盒):将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合走来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题保证系统的正常运行。
  3. 功能测试:主要针对产品需求规格说明书对软件进行测试,逐项验收软件功能是否符合要求。
  4. 接口测试:指对各个模块进行系统联调的测试,包含程序内接口和程序外接口测试。
  5. 性能测试:主要测试系统的性能是否满足用户要求,即在特定的运动条件下验证系统的能力状况。主要是通过自动化测试工具模拟正常、峰值及异常负载状况,对系统的各项性能指标进行测试,测试中得到的负荷和响应时间等数据可以被用于验证软件系统是否能够达到用户提出的性能指标。
  6. 压力测试:是一种性能测试,指在超负荷环境中,检验程序是否能够正常运行,检验系统的稳定性。
  7. 负载测试:是一种性能测试,是通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。
简答
软件开发模型(瀑布模型)
  1. 计划
  2. 需求分析
  3. 设计
  4. 程序编码
  5. 测试
  6. 运行维护
软件测试模型

➕ 于2024-01-03补充

V模型

概念:V模型是软件开发瀑布模型的变种,描述了基本的开发过程和测试行为,明确了测试阶段与开发阶段的对应关系。V模型左侧是开发过程的各个阶段,右侧是测试过程的各个阶段,同一水平上的开发阶段和测试阶段存在对应关系,每个测试阶段需要测试对应开发阶段的成果物。

意义

  • 单元测试和集成测试验证系统设计
  • 系统测试验证系统需求
  • 验收测试也称为交付测试验收用户需求

局限性:未在需求阶段进入测试,不能体现“尽早开展测试”的原则。

W模型

概念:W模型是对V模型的改进,明确地描述出了测试与开发的并行关系。强调测试与开发同步进行。W模型由两个V模型组成,分别代表测试与开发过程,同一水平的开发阶段与测试阶段一一对应。

image-20240103154132068

意义

  • 注重在软件开发的各个阶段应用静态测试技术。
  • 强调尽早展开测试。

局限性

  • 对于很多项目,执行过程中并不产生文档,W模型无法适用。
  • 需求、设计、编码等活动被视为串行,测试和开发活动保持着一种线性的前后关系。无法有效支持迭代开发模型及变更调整。
  • 该模型使用起来的技术复杂度高,对于需求和设计的测试要求很高,实践困难。
H模型

概念:H模型将测试活动完全分割出来,使得测试准备活动和测试执行活动清晰地体现出来。在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。图仅仅显示了整个测试生命同期中某个层次的“微循环”。图中其他流程可以是任意开发流程,如设计流程和编码流程,也可以是其他非开发流程。

image-20240103154612334

软件测试的对象

软件 = 程序 + 数据 + 文档 + 服务

因此,软件测试的对象是程序、数据、文档和服务。

软件测试的目的

软件测试是通过设计和运行测试用例来校验被测系统的实际输出与预期输出是否一致,最终目标是保证系统应符合需求。

软件测试的基本流程
  1. 需求分析
  2. 制定测试计划
  3. 设计测试方案
  4. 执行测试
  5. 测试评估
  6. 测试总结
  7. 测试维护
测试用例的主要组成
  • 输入:测试数据和测试步骤(操作步骤);
  • 输出:系统预期执行结果;
  • 测试环境:系统环境设置,即进行软件测试所必需的工作平台和前提条件。
测试用例的基本属性
  • 典型性(代表性):能揭示最有可能存在缺陷的地方,能代表和覆盖合理与不合理、合法或不合法的情况。
  • 可测试性(可判定性):一个测试用例的预期输出必须是可以检验的,可以根据相关开发文档得到明确的、可判定的结论。
  • 可重现性:对于相同的测试用例,系统的预期执行结果应该完全相同。否则,如果系统预期输出存在不确定性,一旦实际运行该测试用例,也无法进行校验。
  • 独立性:测试用例应尽量独立。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-XPkVZy6N-1713249037476)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值