当前位置: 首页 > news >正文

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

软测入门理念

软件的分类

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

软件缺陷

由来

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流&#xff1f;结合Lambda表达式&#xff0c;用于简化集合和数组操作的API。Stream流的一个小例子&#xff1a;创建一个集合&#xff0c;存储多个姓名&#xff0c;把集合中所有以"张"开头的长度为3的元素存储到一个新的集合并输出。List<String> namesne…...

FL Studio 21 中文正式版发布支持多种超个性化主题

万众期待的 FL Studio 21 版本正式发布上线&#xff0c;目前在紧锣密鼓的安排上线中&#xff0c;届时所有购买正版 FL Studio 的用户&#xff0c;都可以免费升级到21版&#xff01; 按照惯例&#xff0c;本次新版也会增加全新插件&#xff0c;来帮助大家更好地创作。今天先给大…...

【微信小程序】-- 全局配置 -- window - 导航栏(十五)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

Spring中最常用的11个扩展点

前言我们一说到spring&#xff0c;可能第一个想到的是 IOC&#xff08;控制反转&#xff09; 和 AOP&#xff08;面向切面编程&#xff09;。没错&#xff0c;它们是spring的基石&#xff0c;得益于它们的优秀设计&#xff0c;使得spring能够从众多优秀框架中脱颖而出。除此之外…...

网络协议丨HTTPS是什么?

我们都知道HTTP协议&#xff0c;那什么是HTTPS&#xff1f; 我们都知道&#xff0c;HTTP有两个缺点——“明文”和“不安全”仅凭 HTTP 自身是无力解决的&#xff0c;需要引入新的 HTTPS 协议。 由于 HTTP 天生“明文”的特点&#xff0c;整个传输过程完全透明&#xff0c;任…...

Anaconda常用命令总结,anaconda、conda、miniconda的关系

Anaconda、conda、miniconda的关系 Anaconda Anaconda 是一个用于数据科学&#xff0c;机器学习和深度学习的开源软件包管理系统&#xff0c;其中包括了许多流行的 Python 包和工具Anaconda主要用于科学计算和数据分析。 conda Conda 是 Anaconda 中的包管理器&#xff0c;…...

【蓝桥杯入门到入土】最基础的数组你真的掌握了吗?

文章目录一&#xff1a;数组理论基础二&#xff1a;数组知识点总结三&#xff1a;数组这种数据结构的优点和缺点是什么&#xff1f;四&#xff1a;实战解题1. 移除元素暴力解法双指针法2.有序数组的平方暴力解法双指针法最后说一句一&#xff1a;数组理论基础 首先要知道数组在…...

Java Set系列集合(Collections集合工具类、可变参数)

目录Set系列集系概述HashSet集合元素无序的底层原理&#xff1a;哈希表HashSet集合元素去重复的底层原理LinkedHashSet有序实现原理TreeSetCollection集合总结可变参数Collections集合工具类Set系列集系概述 Set系列集合特点 无序&#xff1a;存取顺序不一致不重复&#xff1…...

chromium构建原生AS项目-记录1

构建的chromium版本&#xff1a;待补充重要说明&#xff1a;so文件加载的过程文件&#xff1a;base_java.jar包文件路径&#xff1a;org.chromium.base.library_loader.LibraryLoader方法&#xff1a;loadAlreadyLocked&#xff08;Context context&#xff09;line166 :Native…...

Mybatis-Plus 开发提速器:mybatis-plus-generator-ui

Mybatis-Plus 开发提速器&#xff1a;mybatis-plus-generator-ui 1.简介 github地址 &#xff1a; https://github.com/davidfantasy/mybatis-plus-generator-ui 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码&#xff0c;包括Entity,Mapper,Mapper.xml,Se…...

李迟2023年02月工作生活总结

本文为 2023 年 2 月工作生活总结。 研发编码 Linux Go 某工程使用到一些数据的统计&#xff0c;为方便&#xff0c;使用 map 存储数量&#xff0c;由于其是无序的&#xff0c;输出的列表顺序不固定&#xff0c;将其和历史版本对比不方便&#xff0c;所以需要将 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 块中三、…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初&#xff0c;人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目&#xff08;一款融合大型语言模型能力的云端AI编程IDE&#xff09;时&#xff0c;技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力&#xff0c;TRAE在WayToAGI等…...