软测入门(一)测试理念及基础知识
软测入门理念
软件的分类
- 按层次划分:系统软件、应用软件
- 按组织划分:商业软件、开源软件
- 按结构划分:单机软件、
软件缺陷
由来
Grace Hopper发明Cobol计算机语言,也是找出电脑程序中第一个bug的女程序员
- Bug
- Defect
定义
- 软件未实现产品说明书要求的功能
- 软件出现说明书指明不应该出现的功能
- 软件实现了产品说明书未提及的功能
- 软件未实现产品说明书虽未提及但应该实现的功能
- 软甲难以理解、不易使用、运行缓慢(从测试角度看)最终用户会认为不好
所有不满足需求或超出需求的都是缺陷
没有不存在缺陷的软件,只有迄今为止尚未发现的缺陷
软测的定义和目的
定义
- 正向思维:相信产品能够正常运作
- 反向思维:为了发现错误而执行一个程序或系统的过程々
- IEEE定义的测试
- 广义软件测试:软测是对软件形成过程中的所有工作产品(包括程序以及相关文档)进行测试
- 确认(validation):确认功能是否已经实现
- 验证(Verification):是否满足需求
目的
- 找出软件中潜在的各种错误和缺陷,保证各种错误和缺陷得以修复,避免软件发布后由于潜在缺陷和错误造成隐患(找不容易发现的bug)
- 利用测试结果和信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误(将bug作为重要输入,避免出现重复bug)
- 采用高效测试管理手段,提高软测的效率和产品质量(方便开发和测试的对接,如使用
TAPD等工具)
测试和调试的区别
- 主体、目标、方法、思路不同
- 测试是有预知的结果,调试的结果不可预估
- 测试可以计划,预先定义测试用例和过程,工作量可度量;调试时间相对较多
测试的原则
- 证明软件中存在缺陷
- 不能穷尽测试
- 测试应该尽早介入(避免后置)
- 二八原则(80%的功能只有20%的人用)
- 不存在缺陷谬论
- 妥善保存一切文档
测试基本要求
- 外观测试
- 易用测试
- 兼容性测试
- 安全性测试
- 性能测试
- 功能测试
通用测试技术
软件生命周期
- 需求分析
- 概要设计
- 详细设计
- 编码
- 测试(测试报告)
- 验收
软件生命周期模型
-
瀑布模型:最早提出的软件开发的过程模型(线性)

存在问题:强调时间顺序的严格执行,各阶段耦合度较高;
将测试放在了编码之后(测试后置),增加了开发风险有点:阶段性明确;只需要关注后续的阶段
-
快速模型:

原型:就是一个模型,可以模拟操作、简单运行
工具:Axure工具制作原型
产品画完原型后给客户确认,通过后交给开发人员进行编码工作。
-
增量模型:软件分割成独立的模块,分批次完成和交付。

会打破原有的软件结构和框架,会带来一定的风险。
增量模型一般会和迭代模型一起运用。 -
螺旋模型:引入其他模型不具备的
风险分析,使软件在无法排除重大风险时有机会停止,及时止损。 -
迭代模型:不断进行产品功能更新深入(开发迭代试一次完整经过所有工作流程的过程:需求分析、设计、实施、测试)

-
敏捷模型
测试流程

软件测试的分类

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

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

由两个V字模型组成,分别代表测试和开发过程,明确表示测试与开发的并行关系。
优点:
- 测试的活动与软件开发同步进行
- 测试对象不仅是程序,包括需求和设计
- 尽早发现软件缺陷,降低软件开发的成本
缺点:
在W模型中,需求、设计、编码等活动被视为串行的,无法支持灵活迭代。
相关文章:
软测入门(一)测试理念及基础知识
软测入门理念 软件的分类 按层次划分:系统软件、应用软件按组织划分:商业软件、开源软件按结构划分:单机软件、 软件缺陷 由来 Grace Hopper发明Cobol计算机语言,也是找出电脑程序中第一个bug的女程序员 BugDefect 定义 软…...
2022年“网络安全”赛项山东省菏泽市选拔赛任务书
2022年“网络安全”赛项山东省菏泽市选拔赛任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一:Apache安全配置 任务二:数据分析-A 任务三:Windows操作系…...
LeetCode练习四:栈
文章目录一、 堆栈基础知识1.1 简介1.2 堆栈的顺序存储1.2.1 堆栈顺序存储基本描述1.2.2 堆栈顺序存储实现代码1.3 堆栈的链式存储1.3.1 堆栈的链式存储基本描述1.3.2 堆栈的链式存储实现代码二、 堆栈的基础应用2.1 堆栈基础题列表2.2 括号匹配问题2.2.1 有效的括号2.2.2 最长…...
【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)
前言 一本本书,是一扇扇窗,为追求知识的人打开认知世界的窗口 一本本书,是一双双翅膀,让追求理想的人张开翅膀翱翔 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末…...
【数据结构】堆的详解
本章的知识需要有树等相关的概念,如果你还不了解请先看这篇文章:初识二叉树 堆的详解一、二叉树的顺序结构及实现1、二叉树的顺序结构2、堆的概念及结构二、堆的简单实现 (以大堆为例)1、堆的定义2、堆的初始化3、堆的销毁4、堆的打印5、堆的插入6、堆顶元素的获取7…...
New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
最近,来自大洋彼岸那头的ChatGPT科技浪潮席卷而来,微软将chatGPT整合搜索引擎Bing开启内测后,数百万用户蜂拥而至,都想试试这个「百事通」。 赶鸭子上架,“翻车”了? 但短短上线十几天,嵌入了…...
简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)
【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器,首先要知道它由哪些部分组成,如下图所示: 一…...
chatGPT使用:询问简历和面试相关话题(持续更新中)
chatGPT使用:询问简历和面试相关话题 写一份Java简历,价值2万元包装上面的Java简历面试自我介绍面试简述稿包装简历的方法技巧如何进行良好的自我介绍如何写一份优秀的面试简述稿如何写一份优秀的简历如何写一份优秀的面试讲述稿如何提高面试录取率如何拿到offer写一份Java简…...
Java的 Stream流
Stream流?结合Lambda表达式,用于简化集合和数组操作的API。Stream流的一个小例子:创建一个集合,存储多个姓名,把集合中所有以"张"开头的长度为3的元素存储到一个新的集合并输出。List<String> namesne…...
FL Studio 21 中文正式版发布支持多种超个性化主题
万众期待的 FL Studio 21 版本正式发布上线,目前在紧锣密鼓的安排上线中,届时所有购买正版 FL Studio 的用户,都可以免费升级到21版! 按照惯例,本次新版也会增加全新插件,来帮助大家更好地创作。今天先给大…...
【微信小程序】-- 全局配置 -- window - 导航栏(十五)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...
Spring中最常用的11个扩展点
前言我们一说到spring,可能第一个想到的是 IOC(控制反转) 和 AOP(面向切面编程)。没错,它们是spring的基石,得益于它们的优秀设计,使得spring能够从众多优秀框架中脱颖而出。除此之外…...
网络协议丨HTTPS是什么?
我们都知道HTTP协议,那什么是HTTPS? 我们都知道,HTTP有两个缺点——“明文”和“不安全”仅凭 HTTP 自身是无力解决的,需要引入新的 HTTPS 协议。 由于 HTTP 天生“明文”的特点,整个传输过程完全透明,任…...
Anaconda常用命令总结,anaconda、conda、miniconda的关系
Anaconda、conda、miniconda的关系 Anaconda Anaconda 是一个用于数据科学,机器学习和深度学习的开源软件包管理系统,其中包括了许多流行的 Python 包和工具Anaconda主要用于科学计算和数据分析。 conda Conda 是 Anaconda 中的包管理器,…...
【蓝桥杯入门到入土】最基础的数组你真的掌握了吗?
文章目录一:数组理论基础二:数组知识点总结三:数组这种数据结构的优点和缺点是什么?四:实战解题1. 移除元素暴力解法双指针法2.有序数组的平方暴力解法双指针法最后说一句一:数组理论基础 首先要知道数组在…...
Java Set系列集合(Collections集合工具类、可变参数)
目录Set系列集系概述HashSet集合元素无序的底层原理:哈希表HashSet集合元素去重复的底层原理LinkedHashSet有序实现原理TreeSetCollection集合总结可变参数Collections集合工具类Set系列集系概述 Set系列集合特点 无序:存取顺序不一致不重复࿱…...
chromium构建原生AS项目-记录1
构建的chromium版本:待补充重要说明:so文件加载的过程文件:base_java.jar包文件路径:org.chromium.base.library_loader.LibraryLoader方法:loadAlreadyLocked(Context context)line166 :Native…...
Mybatis-Plus 开发提速器:mybatis-plus-generator-ui
Mybatis-Plus 开发提速器:mybatis-plus-generator-ui 1.简介 github地址 : https://github.com/davidfantasy/mybatis-plus-generator-ui 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Se…...
李迟2023年02月工作生活总结
本文为 2023 年 2 月工作生活总结。 研发编码 Linux Go 某工程使用到一些数据的统计,为方便,使用 map 存储数量,由于其是无序的,输出的列表顺序不固定,将其和历史版本对比不方便,所以需要将 key 排序再输…...
【Python百日进阶-Web开发-Vue3】Day542 - Vue3 商城后台 02:Windi CSS 与 Vue Router4
文章目录 一、WindiCSS 初始1.1 WindiCSS 是什么?1.2 为什么选择 Windi CSS?1.3. 基础用法1.4 集成二、简单按钮2.1 设置背景色2.2 设置字体颜色和上下左右padding2.3 设置圆角2.4 鼠标悬浮,颜色加深2.5 鼠标划入动画2.6 设置阴影2.7 @apply 抽离class代码到 style 块中三、…...
终极指南:Autoenv如何彻底解决团队开发环境配置难题
终极指南:Autoenv如何彻底解决团队开发环境配置难题 【免费下载链接】autoenv 项目地址: https://gitcode.com/gh_mirrors/aut/autoenv Autoenv是一款强大的目录环境管理工具,能够在您进入包含.env文件的目录时自动执行其中的环境配置࿰…...
Laravel Backup隔离模式详解:多服务器环境下的终极安全备份方案
Laravel Backup隔离模式详解:多服务器环境下的终极安全备份方案 【免费下载链接】laravel-backup A package to backup your Laravel app 项目地址: https://gitcode.com/gh_mirrors/la/laravel-backup Laravel Backup包为Laravel应用提供了强大可靠的备份解…...
隐私保护方案:OpenClaw+GLM-4.7-Flash本地化处理敏感数据
隐私保护方案:OpenClawGLM-4.7-Flash本地化处理敏感数据 1. 为什么需要本地化处理敏感数据? 去年我帮一位做财务咨询的朋友处理季度报表时,遇到了一个棘手问题。他需要分析上百份包含客户银行流水、身份证号等信息的Excel文件,但…...
实测2-5分钟:CogVideoX-2b生成速度与画质平衡的真实体验报告
实测2-5分钟:CogVideoX-2b生成速度与画质平衡的真实体验报告 1. 从文字到视频:CogVideoX-2b能做什么? 想象一下,你只需要输入一段文字描述,就能在几分钟内获得一段6秒的高清视频。这不是科幻电影里的场景,…...
避坑指南:华为Atlas200DK开发板联网常见错误及解决方法
华为Atlas200DK开发板联网避坑实战手册 当开发者第一次拿到华为Atlas200DK开发板时,联网往往是遇到的第一个技术门槛。这个看似简单的操作,在实际操作中却可能因为各种配置细节问题而耗费数小时。本文将深入剖析开发板联网过程中的典型故障场景ÿ…...
FLUX.1文生图优化技巧:SDXL风格节点参数这样调,图片效果更出彩
FLUX.1文生图优化技巧:SDXL风格节点参数这样调,图片效果更出彩 1. 快速上手:FLUX.1文生图工作流基础操作 1.1 工作流启动指南 启动FLUX.1文生图工作流只需简单三步: 在ComfyUI左侧面板找到"FLUX.1-dev-fp8-dit文生图&quo…...
W3x2Lni深度解析:魔兽地图跨版本转换的架构设计与实现原理
W3x2Lni深度解析:魔兽地图跨版本转换的架构设计与实现原理 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 魔兽争霸III地图开发面临的最大技术挑战之一就是版本兼容性问题。从1.24.4到1.32.8ÿ…...
AI时代当程序员?2026年转行IT的“新活法”
早知道AI会让程序员干这个,当年说啥也不信 凌晨三点,老刘瞪着AI生成的2000行代码,这已经是他熬夜修复的第47个bug了。 AI一分钟写完的模块,他调了三天。最绝的是——每修好一个bug,AI都能“贴心”地再送出三个新bug作为…...
Java 17 新特性实战:现代 Java 开发的优雅实践
Java 17 新特性实战:现代 Java 开发的优雅实践 前言 大家好。最近很多读者朋友询问 Java 17 的新特性以及如何在项目中应用这些特性。作为一个长期使用 Java 的架构师,今天我想分享一下 Java 17 的新特性以及在实际项目中的应用经验。 Java 17 的核心新特…...
基于ATP的10kV并联电容暂态过程仿真
基于ATP的10kV并联电容暂态过程仿真在电力系统中,10kV并联电容装置起着至关重要的作用,比如提高功率因数、改善电压质量等。然而,其暂态过程却较为复杂,需要深入研究。ATP(Alternative Transients Program)…...
