测试开发体系

news/2024/5/18 22:49:13 标签: 软件工程, 流程图

软件测试

  • 通过手工或者工具对 “被测对象”进行测试
  • 验证实际结果与预期结果之间是否存在差异

软件测试作用

  • 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心
  • 测试可以降低同类型产品开发遇到问题的风险

软件缺陷

  • 软件缺陷被测试工程师和开发工程师们称作 bug
  • 软件缺陷会导致软件不能正常运行,它的存在会在一定程度上导致软件不能满足用户的需求,甚至有可能破坏或泄漏用户的重要数据

软件测试原则

  • 测试显示缺陷的存在
  • 穷尽测试是不可能的
  • 测试尽早介入
  • 缺陷集群性(2/8原则)
  • 杀虫剂悖论
  • 测试活动依赖于测试内容
  • 没有错误是好是谬论

软件测试对象

  • 需求分析阶段:需求文档、接口文档
  • 编码实现阶段:源代码
  • 系统功能使用:软件程序

测试用例

  • 为特定的目的而设计的一组测试输入、执行步骤和预期的结果,以便测试产品否满足某个特定需求的文档

软件

  • 软件是与计算机系统操作有关的计算机程序、可能有的文档及数据。

软件生命周期

  • 定义问题
  • 软件开发
  • 软件维护

@startuml
scale 10
|定义问题|
start
:搜集需求;
:可行性研究;
:需求分析;
|软件开发|
:概要设计;
:详细设计;
:编码;
:测试;
|软件维护|
:纠错性维护;
:改进性维护;
:报废;
stop
@enduml

软件开发流程

  • 为了使软件开发的工作系统化并且可控制;
  • 需要采用合适的软件开发模型和开发过程管理所有的活动。

@startuml
scale 10
title 软件开发模型
:瀑布模型;
:敏捷开发模型;
:DevOps 模型;
@enduml

瀑布模型

  • 软件开发的各项活动严格按照线性方式进行。
  • 当前活动接受上一项活动的工作结果。
  • 当前活动的工作结果需要进行验证。

@startuml
scale 4
:制定计划;
:需求分析;
:软件设计;
:程序编码;
:软件测试;
:运行维护;
@enduml

瀑布模型优缺点

  • 优点:
    • 开发的各个阶段比较清晰。
    • 强调早期计划及需求调查。
    • 适合需求稳定的产品开发。
  • 缺点:
    • 早期的错误可能要等到开发后期的阶段才能发现。
    • 由于开发模型是线性的,增加了开发的风险。

@startuml
scale 4
:制定计划;
:需求分析;
:软件设计;
:程序编码;
:软件测试;
:运行维护;
@enduml

敏捷开发模型

  • 适用于需求频繁变化和需要快速开发的场景。
    • XP
    • SCRUMXP

极限编程

SCRUM

敏捷模型总结

  • 增量迭代
  • 小步快跑

DevOps

evOps 生命周期

  • 持续开发
  • 持续测试
  • 持续集成
  • 持续部署
  • 持续监控

DevOps 对发布的影响

  • 减少变更范围
  • 加强发布协调
  • 自动化

CI/CD

  • 持续集成(Continuous Integration,缩写为 CI):
    • 一种软件开发实践。
    • 团队开发成员每天可能会发生多次集成。
    • 每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证。
    • 根据测试结果确定新代码和原有代码能否正确地集成在一起。
  • 持续交付(Continuous Delivery,缩写为 CD)
    • 是一种软件工程手法。
    • 让软件产品的产出过程在一个短周期内完成。
    • 保证软件可以稳定、持续的保持在随时可以发布的状况。
    • 目标:
      • 让软件的构建、测试与发布变得更快以及更频繁。
      • 减少软件开发的成本与时间,减少风险。

CD 与 DevOps 的关系

  • DevOps 的范围更广:
    • DevOps 是软件交付过程所涉及的多个团队之间的合作。
    • 并且将软件交付的过程自动化。
  • 持续交付是一种自动化交付的手段:
    • 关注点在于将不同的过程集中起来。
    • 并且更快、更频繁地执行这些过程。
  • 总结:DevOps 可以是持续交付下的一个产物,持续交付的成果直接汇入 DevOps 模型。

软件测试分类

@startmindmap
scale 10
* 软件测试分类
** 按开发阶段分类
*** 单元测试
*** 集成测试
*** 系统测试
**** 功能测试
**** 兼容性测试
**** 性能测试
**** 安全测试
*** 验收测试
**** α 测试
**** β 测试
** 按是否查看代码
*** 白盒测试
*** 黑盒测试
*** 灰盒测试
left side
** 按测试执行方式
*** 静态测试
*** 动态测试
** 按是否手工执行划分
*** 手工测试
*** 自动化测试
** 其他分类
*** 冒烟测试
*** 回归测试
*** 随机测试
*** 探索性测试
@endmindmap

黑盒测试

  • 黑盒测试又称数据驱动测试。
  • 完全不考虑程序内部结构和内部特性。
  • 注重于测试软件的功能需求。
  • 只关心软件的输入数据和输出数据。

白盒测试

  • 白盒测试研究产品内部的源代码和程序结构。
  • 单元测试就是白盒测试的一种。


http://www.niftyadmin.cn/n/5371016.html

相关文章

Linux系统安装(CentOS Vmware)

学习环境安装 VMware安装 VMware下载&安装 访问官网:https://www.vmware.com 在此处可以选择语言 点击China(简体中文) 点击产品,点击Workstation Pro 下滑,点击下载试用版 下滑找到Workstation 17 Pro for Wi…

解决MapboxGL的Popup不支持HTMLDiv元素的问题

解决MapboxGL的Popup不支持HTMLDiv元素的问题 官网给出的文档是不支持HTMLDivElement的,只支持HTML标签。 如果单纯的只显示字符串,那就没问题,如果想在Popup中使用更强大的功能,此时就不行了,下面是源码的一部分显示…

AI智能电销机器人有哪方面的技术优势?

随着科学技术的发展,人工智能逐渐进入了公众的视野,与人工智能相关的智能产品,也从工业革命的诞生开始在生活中不断涌现,虽然说人类没有被机器所取代,但在之后的人工智能时代,人类真的会被取代吗&#xff1…

【大厂AI课学习笔记】1.5 AI技术领域(6)目标检测

目标检测是CV中的重要场景。 在图像中定位感兴趣的目标,准确判断每个目标的类别,并给出每个目标的边界框。 上图是目标检测的典型应用案例。 目标检测的难点是小目标的高精度检测。 目前主要的应用领域是机器人导航、自动驾驶、智能视频监督、工业检测…

计算机网络基础 第一章——计算机网络概论 知识点

1.1计算机网络的形成与发展 1.计算机网络的特点 (1)计算机网络技术在现代社会发展中的作用 ●21世纪一个重要特征是:数字化、网络化与信息化,它的基础是支持全社会的、强大的计算机网络。 ●计算机网络是当今计算机学科中发展最为迅速的技…

直播电商“混战”,京东、视频号、百度“各显神通”

说起近些年最火的行业,直播电商一定榜上有名。由于互动性更强、商品展示更加直观,再加上消费者消费方式的转变,直播电商早已成为消费者的心头好。在消费者购物需求的助推下,直播电商行业也实现了飞速发展,市场规模持续…

TCP的连接和断开详解

目录 1.TCP基础知识 1.1.TCP 头格式 1.2.TCP协议介绍 1.3.UDP协议介绍 1.4.TCP 和 UDP 区别 1.5.TCP 和 UDP 应用场景 1.6.计算机网络相关术语(缩写) 2.TCP 连接建立:三次握手 2.1.TCP 三次握手过程 2.2.三次握手原理 2.3.异常分析…

戴上HUAWEI WATCH GT 4,解锁龙年新玩法

春节将至,华为WATCH GT 4作为一款颜值和实力并存的手表,能为节日增添了不少趣味和便利。无论你是钟情于龙年表盘或定制属于自己的表盘,还是过年用来抢红包或远程操控手机拍全家福等等,它都能成为你的“玩伴”。接下来,…