网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
简答
软件开发模型(瀑布模型)
- 计划
- 需求分析
- 设计
- 程序编码
- 测试
- 运行维护
软件测试模型
➕ 于2024-01-03补充
V模型
概念:V模型是软件开发瀑布模型的变种,描述了基本的开发过程和测试行为,明确了测试阶段与开发阶段的对应关系。V模型左侧是开发过程的各个阶段,右侧是测试过程的各个阶段,同一水平上的开发阶段和测试阶段存在对应关系,每个测试阶段需要测试对应开发阶段的成果物。
意义:
- 单元测试和集成测试验证系统设计。
- 系统测试验证系统需求。
- 验收测试也称为交付测试验收用户需求。
局限性:未在需求阶段进入测试,不能体现“尽早开展测试”的原则。
W模型
概念:W模型是对V模型的改进,明确地描述出了测试与开发的并行关系。强调测试与开发同步进行。W模型由两个V模型组成,分别代表测试与开发过程,同一水平的开发阶段与测试阶段一一对应。
意义:
- 注重在软件开发的各个阶段应用静态测试技术。
- 强调尽早展开测试。
局限性:
- 对于很多项目,执行过程中并不产生文档,W模型无法适用。
- 需求、设计、编码等活动被视为串行,测试和开发活动保持着一种线性的前后关系。无法有效支持迭代开发模型及变更调整。
- 该模型使用起来的技术复杂度高,对于需求和设计的测试要求很高,实践困难。
H模型
概念:H模型将测试活动完全分割出来,使得测试准备活动和测试执行活动清晰地体现出来。在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。图仅仅显示了整个测试生命同期中某个层次的“微循环”。图中其他流程可以是任意开发流程,如设计流程和编码流程,也可以是其他非开发流程。
软件测试的对象
软件 = 程序 + 数据 + 文档 + 服务
因此,软件测试的对象是程序、数据、文档和服务。
软件测试的目的
软件测试是通过设计和运行测试用例来校验被测系统的实际输出与预期输出是否一致,最终目标是保证系统应符合需求。
软件测试的基本流程
- 需求分析
- 制定测试计划
- 设计测试方案
- 执行测试
- 测试评估
- 测试总结
- 测试维护
测试用例的主要组成
- 输入:测试数据和测试步骤(操作步骤);
- 输出:系统预期执行结果;
- 测试环境:系统环境设置,即进行软件测试所必需的工作平台和前提条件。
测试用例的基本属性
- 典型性(代表性):能揭示最有可能存在缺陷的地方,能代表和覆盖合理与不合理、合法或不合法的情况。
- 可测试性(可判定性):一个测试用例的预期输出必须是可以检验的,可以根据相关开发文档得到明确的、可判定的结论。
- 可重现性:对于相同的测试用例,系统的预期执行结果应该完全相同。否则,如果系统预期输出存在不确定性,一旦实际运行该测试用例,也无法进行校验。
- 独立性:测试用例应尽量独立。
测试用例设计原则
根据《GB/T15532一2008计算机软件测试规范》,设计测试用例时,应遵循以下原则:
- 基于测试需求的原则
按照测试类别的不同要求设计测试用例。 - 基于测试方法的原则
比较成熟的测试用例设计方法与丰富的实践经验相融合才能设计出高品质的测试用例。 - 兼顾测试充分性和效率的原则
测试用例集应兼顾测试的充分性和测试的效率,每个测试用例的内容也应完整,具有可操作性。 - 测试执行的可再现性原则
应保证测试用例执行的可再现性。
软件质量的特性(ISO/IEC 9126)
- 功能性
- 可靠性
- 易用性
- 效率
- 可维护性
- 可移植性
软件测试基本原则(10条)
➕ 于2024-01-03补充
- 尽早测试:尽早发现软件缺陷,降低缺陷的修复成本。
- 全面测试:两层含义(1)对产品进行全面的测试,(2)开发人员、测试人员、甚至用户,全面地参与到测试工作中。
- 全过程测试:两层含义(1)测试人员充分关注开发全过程,(2)测试人员对测试全过程进行全程跟踪。
- 独立的、迭代的测试:两层含义(1)将测试过程从开发过程中抽离,作为独立过程,(2)由独立的专业的软件测试机构完成。
- Patero原则(缺陷聚集):少数系统模块分布了大部分缺陷。
如果一个模块已发现许多错误,则剩余错误可能很多,越需要进行深入和多次测试。
- 对测试出的结果一定要有一个确认的过程。
- 制订严格的测试计划。
- 穷尽测试是不可能的,测试需要终止。(需要精心设计测试优先级)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!