热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

软件测试基本理论——软件开发模型与测试分类

软件开发流程1、瀑布模型图片来源网络瀑布模型以上一个阶段的输出作为下一个阶段的输入,相邻的两个阶段具有因果关系,紧密相连。瀑布模型是线性模型的一种&

软件开发流程


1、瀑布模型

在这里插入图片来源网络图片描述
图片来源网络

瀑布模型以上一个阶段的输出作为下一个阶段的输入,相邻的两个阶段具有因果关系,紧密相连。
瀑布模型是 线性模型的一种,在所有模型中占有重要地位,是所有其他模型的一个基础

测试的切入点:
测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露。


优点缺点
强调需求、设计的作用难以适应需求的频繁变化
前一阶段完成后,只需关注后续阶段项目后端在能看到结果
为项目提供了按阶段划分的检查点,里程碑清晰强制的里程碑,完成时间点
文档规范文档工作量大

2、V模型

在这里插入图片描述
图片还是来自于网络

需求分析,概要设计,详细设计,编码,单元测试,集成测试,系统测试,验收测试。v模型由瀑布模型扩展而来


单元测试又称模块测试,针对单一的程序模块进行测试(类,函数等)
集成测试又称组装测试,在单元测试的基础上,对手所有模块进行测试
系统测试将整个软件看做一个整体进行测试,包括功能,性能,兼容性,(我们常见的功能测试就是系统测试)
验收测试1:内侧版 (alpha) 2:公测版(beta)3:候选版(gamma)(准正式版)

W模型

在这里插入图片描述
图片依旧来自于网络

w模型强调了测试伴随着整个开发周期,测试的对象不仅是程序,而且还有需求,功能,设计同样要测试,
测试跟开发室同步进行的,从而更早的、更有效的发现问题,降低成本。


定义开发一个V,测试一个V,W模型就是双V模型
优点开发跟随着整个开发周期,需求,和设计同样要测试,跟早的介入测试,可以发现初期的缺陷,修复成本低;分阶段工作方便项目的整体管理;
缺点开发和测试依旧是线性关系,需求的变更和调整,依然不方便,如果没有相关文档不能执行W模型,对项目组成员的技术要求更高

H模型

在这里插入图片描述
图片又来自于网络

在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。

H模型解释了:
软件测试不仅仅是指测试的执行,还包括很多活动,
软件测试是一个独立的流程,贯彻整个产品的生命周期,与其他流程并发的进行
软件测试要尽早准备,尽早执行
软件测试是根据被测物的不同而分层次进行的。不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的


PS:

V模型强调了在整个项目开发中需要经历的诺干个测试级别,并与每一个开发级别对应,忽略了测试的对象不应该仅仅包括程序,没有明确的指出对于需求、设计的测试

W模型补充了V模型中忽略的内容,强调了测试计划等工作的先行和对系统需求和系统设计的测试,与V模型相同,没有对软件测试的流程进行说明。

H模型强调了测试是独立的,只要测试准备完成, 就可以执行测试。


测试分类


按代码是否运行分类

静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法,结构,过程,接口等来检查程序的正确性

动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率,正确性和健壮性等


按是非查看代码分类


·白盒测试

白盒测试:又称结构测试,透明盒测试,逻辑驱动测试或者给予代码的测试,白盒测试的测试方法有代码检查法,静态结构分析法,静态质量度量法,逻辑覆盖法,基本路径测试法,域测试,符号测试,路径覆盖和程序编译。


·黑盒测试

黑盒测试:也称功能测试,是以用户的角度,从输入数据与输出数据的对应关系出发,进行测试,和黑测试从不关注代码,主要检查UI和功能是否符合设计书


·灰盒测试

灰盒测试:介于白盒测试盒黑盒测试之间,灰盒测试多用于集成测试阶段,他不仅关注输出,输入的正确性,同时也关注程序内部的情况,回合测试不像白盒那样详细、完整但又比黑盒测试更关注岑旭的内部逻辑。


其他测试


·冒烟测试

冒烟测试:是指在正式测试前,在新编译的版本中对软件的基本功能进行测试,确保软件的基本功能正常,整体流程可以使用,在进行后续的正式测试工作


·回归测试

回归测试:贯彻整个测试的各个阶段的测试活动,其目的是检验依据发现的缺陷有没有正确修改和修改过程中有没有引发新的缺陷,
1:完全重复测试
2:选择性重复测试


·随机测试

随机测试: 是指测试着根据经验对于软件进行功能和性能的抽查,随机测试是根据测试说明书执行用例测试后的重要补充手段,是保证测试覆盖完整性的有效方式和过程,随机测试主要是对被测试软件的一些重要功能进行复测,也包括测试那些当前测试用例没有覆盖到的地方


推荐阅读
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 汉语拼音教学创新方法与游戏大全
    探讨当前汉语拼音教学中存在的问题,分析原因,并提供一系列创新的教学方法和游戏,旨在提升教学效果,激发学生学习兴趣。 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 本文探讨了如何选择一个合适的序列化版本ID(serialVersionUID),包括使用生成器还是简单的整数,以及在不同情况下应如何处理序列化版本ID。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • WebBenchmark:强大的Web API性能测试工具
    本文介绍了一款名为WebBenchmark的Web API性能测试工具,该工具不仅支持HTTP和HTTPS服务的测试,还提供了丰富的功能来帮助开发者进行高效的性能评估。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 本文详细探讨了在Java TCP编程中,如何理解和测量并发连接数、请求数及并发用户数,并提供了实际应用中的测试方法和优化建议。 ... [详细]
  • 深入理解线程池及其基本实现
    本文探讨了线程池的概念、优势及其在Java中的应用。通过实例分析不同类型的线程池,并指导如何构建一个简易的线程池。 ... [详细]
  • Pacing设置在性能测试中扮演着至关重要的角色,它直接影响到模拟用户行为的真实性和测试结果的准确性。本文将探讨Pacing设置的不同方法及其应用场景,帮助测试人员更好地理解和利用这一功能。 ... [详细]
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • TCP协议中的可靠传输机制分析
    本文深入探讨了TCP协议如何通过滑动窗口和超时重传来确保数据传输的可靠性,同时介绍了流量控制和拥塞控制的基本原理及其在实际网络通信中的应用。 ... [详细]
  • 小米路由器AX6000与小米11同步推出,不仅在硬件配置上达到了旗舰级水准,其独特的4K QAM技术更是引领了行业新标准。本文将深入探讨这款路由器的性能表现及其实际应用。 ... [详细]
author-avatar
佐什么猗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有