软测入门(一)测试理念及基础知识

news/2024/4/25 11:38:17/文章来源:https://blog.csdn.net/weixin_45248492/article/details/129280837

软测入门理念

软件的分类

  • 按层次划分:系统软件、应用软件
  • 按组织划分:商业软件、开源软件
  • 按结构划分:单机软件、

软件缺陷

由来

Grace Hopper发明Cobol计算机语言,也是找出电脑程序中第一个bug的女程序员

  • Bug
  • Defect

定义

  • 软件未实现产品说明书要求的功能
  • 软件出现说明书指明不应该出现的功能
  • 软件实现了产品说明书未提及的功能
  • 软件未实现产品说明书虽未提及但应该实现的功能
  • 软甲难以理解、不易使用、运行缓慢(从测试角度看)最终用户会认为不好

所有不满足需求或超出需求的都是缺陷

没有不存在缺陷的软件,只有迄今为止尚未发现的缺陷

软测的定义和目的

定义

  • 正向思维:相信产品能够正常运作
  • 反向思维:为了发现错误而执行一个程序或系统的过程々
  • IEEE定义的测试
  • 广义软件测试:软测是对软件形成过程中的所有工作产品(包括程序以及相关文档)进行测试
    • 确认(validation):确认功能是否已经实现
    • 验证(Verification):是否满足需求

目的

  • 找出软件中潜在的各种错误和缺陷,保证各种错误和缺陷得以修复,避免软件发布后由于潜在缺陷和错误造成隐患(找不容易发现的bug)
  • 利用测试结果和信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误(将bug作为重要输入,避免出现重复bug)
  • 采用高效测试管理手段,提高软测的效率和产品质量(方便开发和测试的对接,如使用TAPD等工具)

测试和调试的区别

  • 主体、目标、方法、思路不同
  • 测试是有预知的结果,调试的结果不可预估
  • 测试可以计划,预先定义测试用例和过程,工作量可度量;调试时间相对较多

测试的原则

  • 证明软件中存在缺陷
  • 不能穷尽测试
  • 测试应该尽早介入(避免后置)
  • 二八原则(80%的功能只有20%的人用)
  • 不存在缺陷谬论
  • 妥善保存一切文档

测试基本要求

  • 外观测试
  • 易用测试
  • 兼容性测试
  • 安全性测试
  • 性能测试
  • 功能测试

通用测试技术

软件生命周期

  • 需求分析
  • 概要设计
  • 详细设计
  • 编码
  • 测试(测试报告)
  • 验收

软件生命周期模型

  • 瀑布模型:最早提出的软件开发的过程模型(线性)

    在这里插入图片描述

    存在问题:强调时间顺序的严格执行,各阶段耦合度较高;将测试放在了编码之后(测试后置),增加了开发风险

    有点:阶段性明确;只需要关注后续的阶段

  • 快速模型:

    在这里插入图片描述

    原型:就是一个模型,可以模拟操作、简单运行

    工具:Axure工具制作原型

    产品画完原型后给客户确认,通过后交给开发人员进行编码工作。

  • 增量模型:软件分割成独立的模块,分批次完成和交付。

    在这里插入图片描述

    会打破原有的软件结构和框架,会带来一定的风险。

    增量模型一般会和迭代模型一起运用。

  • 螺旋模型:引入其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,及时止损。

  • 迭代模型:不断进行产品功能更新深入(开发迭代试一次完整经过所有工作流程的过程:需求分析、设计、实施、测试)

    在这里插入图片描述

  • 敏捷模型

测试流程

在这里插入图片描述

软件测试的分类

在这里插入图片描述

  • 测试阶段
    • 单元测试(编码完成后,如写了一个模块的接口)
    • 集成测试(单元测试完成后,模块完成后)
    • 系统测试(集成测试完毕后,发布测试环境后测试)
    • 验收交付测试(α测试内测,β测试公测)
  • 是否覆盖源码
    • 白盒测试(测代码)
    • 黑盒测试(测功能):功能测试(UI页面、业务、文档测试)、性能测试(响应速度、系统资源的占用、稳定性、负载测试、压力测试)
    • 灰盒测试(测功能和代码)
  • 是否运行:静态测试、动态测试
  • 是否自动化:手工测试、自动化测试
  • 地域测试:本地化测试、国际化测试
  • 其他:回归测试(复测)、冒烟测试(基本模块是否正常,程序能否跑起来)、随机测试(monkey测试)、探索测试(其他方面)

软件测试过程模型

V模型

在这里插入图片描述

  • 测试后置,忽视了测试对需求分析、系统设计的验证
  • 需求的满足情况一直到后期的验收测试才被验证

W模型

在这里插入图片描述

由两个V字模型组成,分别代表测试和开发过程,明确表示测试与开发的并行关系。

优点:

  • 测试的活动与软件开发同步进行
  • 测试对象不仅是程序,包括需求和设计
  • 尽早发现软件缺陷,降低软件开发的成本

缺点:

在W模型中,需求、设计、编码等活动被视为串行的,无法支持灵活迭代。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_75775.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

带你掌握webSocket 和 socket.io的基本用法

两者的作用和区别 作用:使得前后端可以随时地相互沟通。什么是互相沟通呢?像网络请求这种就是客户端向服务端的单向的沟通,当然,网络请求也可以实现双向的沟通,比如ajax 轮询,就是浏览器开个定时器不断的发…

【Java】Java进阶学习笔记(四)—— 抽象类与接口

【Java】Java进阶学习笔记(四)—— 抽象类与接口一、抽象类1、抽象类的概念抽象类的定义格式2、抽象类的注意点抽象方法的介绍3、抽象类的具体作用4、抽象类实例二、接口(一)、接口的概念1、接口与类的区别2、接口特性3、抽象类和…

如何实现云原生?推荐的几个实用工具

云原生是一种软件开发和部署的方法,它依赖于容器、微服务和自动化运维。它能使应用更高效、可靠和可扩展,并适用于不同的云平台。 如果要更直接、更通俗地解释上述概念的话。 云的本源更准确地说是一种文化,一种潮流,它必然是云…

此网站可能不支持TLS1.2协议

问题描述 火狐浏览器版本:“97.0.1 (64 位)”,打开360网神设备Web管理地址时出现:“此网站可能不支持TLS1.2协议,而这是Firefox支持的最低版本。”,如下图所示。 原本是默认使用https协议打开的,看起来出问…

蓝桥杯每日一题:不同路径数(dfs深度优先)

给定一个 nm的二维矩阵,其中的每个元素都是一个 [1,9] 之间的正整数。 从矩阵中的任意位置出发,每次可以沿上下左右四个方向前进一步,走过的位置可以重复走。 走了 k 次后,经过的元素会构成一个 (k1) 位数。 请求出一共可以走出…

零基础机器学习做游戏辅助第十五课--原神自动钓鱼(五)完整效果

一、先上效果二、整理思路我们现在已经具备了所有需要的技术,我们梳理出所有技术的流程。判断当前钓鱼状态(未抛竿、已抛竿、上鱼中)。未抛竿,截图并识别图中所有鱼类,选择其中一个种类。根据以选择鱼类选择对应鱼饵。…

从一个实例配置引入Prometheus的PromQL语法

1. PromQL介绍 PromQL提供对时间序列数据进行逻辑运算、过滤、聚合的支持。应用于数据查询、可视化、告警处理 2. 基本用法 2.1 查询时间序列 点击Prometheus图标,进行查询页面。可以点击地图图标查看有哪些metrics name。输入要查询的metrics name和过滤条件,然后点击执行…

2023年功能测试还值得入行吗?

前言 鉴于笔者从13年入行IT行业,经历了只有开发没有测试的阶段,经历了14年只要会基本的功能测试在一线就能薪资过万的阶段,经历了17年只要会一点自动化,会一点性能就能蒙骗过面试官的阶段,更经历了19年所有面试官对于…

基于大规模边缘计算的千万级聊天室技术实践

当前直播成为一种流行趋势,带货直播,网红带货,明星在线演唱会等,进一步使得直播聊天室变成了一个当前必备的能力,面向大型,超大型的直播场景,技术上也在不断的进行迭代更新。 大规模边缘聊天室如…

如何或者无插件Web页面监控播放软件LiveNVR的固定视频流地址,实现大屏上墙、播放、视频分析等目的

1、LiveNVR介绍 LiveNVR的安防监控的视频直播,可以按标准的Onvif/RTSP协议接入监控设备,也可以通过海康、大华、天地伟业等厂家私有SDK接入监控,实现web页面的播放和录像回放。 可以分发HTTP-FLV、WS-FLV、WebRTC、RTMP、HLS(M3U8)、RTSP等多…

全球化趋势下,如何建设稳定高效的技术能力?

如果将全球化比作一场航行,每个期望走出去的企业都是水手,那么是造一艘属于自己的船,还是搭乘已有的船呢?在不同的时间和场景下,相信每个水手都有自己的答案。 近几年,在国际政经环境复杂变幻的形势之下&am…

ImportError: Can not find the shared library: libhdfs3.so解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

活动回顾|中文社区面对面·上海站

回顾来了! 「中文社区面对面」首次线下交流活动,于 2 月 26 日下午在上海德必世纪 WE 成功举办,迎来了 30 位上海小伙伴的热情参与!Jina AI 高级算法工程师王峰博士与大家分享 Jina AI 的“三驾马车”,百万粉丝B站效率…

4.文件管理

文章目录1、初识文件管理1.1、回顾1.2、文件的属性1.3、无结构文件/有结构文件1.4、文件之间应该怎样组织起来?1.5、操作系统应该向上提供哪些功能?1.6、从上往下看,文件应如何存放在外存?1.7、其他需要由操作系统实现的文件管理功…

【蓝桥杯嵌入式】点亮LED灯,流水灯的原理图解析与代码实现——STM32

🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 - 蓝…

实践数据湖iceberg 第四十二课(业界视野)业界的流批一体架构

系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql方式从kafka读数据到iceberg 实践数据湖iceberg 第四课 在sqlclient中,以sql方式从kafka读数据到…

React(三):脚手架、组件化、生命周期、父子组件通信、插槽、Context

React(三)一、脚手架安装和创建1.安装脚手架2.创建脚手架3.看看脚手架目录4.运行脚手架二、脚手架下从0开始写代码三、组件化1.类组件2.函数组件四、React的生命周期1.认识生命周期2.图解生命周期(1)Constructor(2&…

【封装xib补充 Objective-C语言】

一、那么首先,咱们就从这个结果来分析 1.就不给大家一步一步分析了,直接分析我们这里怎么想的, 首先,我们看到这样的一个界面,我们想,这些应用数据是不是来源于一个plist文件吧, 所以说,我们首先要,第一步,要懒加载,把这个plist文件中的数据,加载起来, 那么,因…

「JVM 高效并发」锁优化

为了线程间更高效的共享数据及解决竞争问题,提高程序执行效率,JDK 6 做了大量锁优化,如适应性自旋(Adaptive Spinning)、锁消除(Lock Elimination)、锁膨胀(Lock Coarsening&#xf…

机器学习知识总结 —— 21. 什么是主成分分析

文章目录什么是PCA(Principal Component Analysis)协方差矩阵什么是协方差协方差矩阵特征值与特征向量PCA降维什么是PCA(Principal Component Analysis) 在机器学习中,PCA(Principal Component Analysis&a…