1.软件测试基础
一、软件测试概念
1.什么是软件
软件是计算机程序,是由计算机代码编写的一系列指令和数据,可以实现各种功能。它指的是计算机系统中的应用程序,包括操作系统、应用软件、驱动程序等。软件可以通过编程语言编写和开发,并可以安装到计算机系统中运行。常见的软件包括办公软件、游戏、浏览器、媒体播放器和各种应用程序。
2.软件产生过程
- 问题定义与规划:此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
- 需求分析:在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。
- 软件设计:此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。
- 程序编码:此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。
- 软件测试:在软件设计完成后要进行严密的测试,一发现软件在整个设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。
- 发布和维护:通过测试的软件就可以发布使用了,在使用的过程中会发现一些问题,这时就需要进行软件的维护了。也就是对软件进行一些必要的改动和升级。
3.什么是软件测试
软件测试是指在软件开发过程中,使用人工或者自动化的方式来评估软件的质量和可靠性的过程。其主要目的是发现软件中存在的缺陷和错误,并确保软件能够满足用户需求。
软件测试包括多个阶段,如单元测试、集成测试、系统测试、验收测试等。每个阶段的测试重点和方法都不尽相同。在软件测试中,测试人员需要根据测试计划和测试用例执行测试,并对发现的问题进行跟踪和管理。
软件测试是提高软件质量的重要手段,能够帮助开发团队及时发现和修复软件中的缺陷,降低软件发布后面临的风险和成本。同时,软件测试还能够提高软件的可靠性、稳定性和安全性,增强用户对软件的信任度和满意度。
二、软件测试类型
1.功能测试:
功能测试是对产品的各项功能进行验证,以确保产品符合需求规格书中的功能要求。这包括检查产品的各项功能是否能够实现,以及实现的是否正确。常用的功能测试工具包括QTP、WinRunner、SilkTest等。
2.接口测试:
接口测试是针对软件之间进行数据交互的接口进行测试的一种形式。它主要检查数据交换的正确性和有效性。常用的接口测试工具包括Postman、JMeter、SoapUI等。
3.性能测试:
性能测试是对软件在不同负载和压力下的性能进行评估和测试的一种形式。它可以帮助发现软件在高负载下的问题和优化软件性能。常用的性能测试工具包括LoadRunner、JMeter、ApacheBench等。
4.自动化测试:
自动化测试是通过使用自动化测试工具或编写自动化测试脚本来完成软件测试的一种形式。它可以大大提高测试效率,减少人工干预。常用的自动化测试工具包括Selenium、Appium、QTP等。
需要注意的是,不同的测试阶段和测试对象可能需要使用不同的测试工具和方法。因此,在选择测试工具时,需要根据具体情况进行评估和选择。
三、测试分类
1.按测试阶段划分
- 单元测试(Unit Testing):这个阶段主要针对软件中的基本组成单位进行测试,目的是检验软件基本组成单位的正确性。这大多是由开发人员进行的自测。
- 集成测试(Integration Testing):在软件系统集成过程中进行的测试,主要检查软件单位之间的接口是否正确。这是在单元测试之后进行的测试。
- 系统测试(System Testing):对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。
- 验收测试(Acceptance Testing):这是部署软件之前的最后一个测试操作,目的是确保软件准备就绪,可以向软件购买者展示该软件系统满足其用户的需求。
2.按代码可见度划分
- 黑盒测试(Black Box Testing):不关注源代码,只关心软件的输入输出和功能实现,测试依据主要是需求文档。
- 灰盒测试(Gray Box Testing):介于黑盒测试和白盒测试之间,关注程序部分代码和功能实现,测试依据主要是设计文档。
- 白盒测试(White Box Testing):针对程序源代码进行测试,关注软件内部设计和程序实现,测试依据主要是设计文档。
这三种测试方法各有优缺点。黑盒测试不需要考虑代码实现,只需要根据需求文档进行测试,但无法发现代码实现中的错误。白盒测试可以发现代码实现中的错误,但需要投入大量时间和精力,且对测试人员的要求较高。灰盒测试则介于两者之间,既可以发现代码实现中的错误,又不会过于关注代码细节。
⿊盒测试:主要针对功能(阶段划分->系统测试)灰盒测试:针对接口测试(阶段划分->集成测试)⽩盒测试:针对程序源代码进⾏测试(阶段划分->单元测试)系统测试和黑盒测试重点核心是:功能测试。集成测试和灰盒测试又称:接口测试 。单元测试和白盒测试是对代码进行测试。自动化测试归属功能测试。性能测试、安全测试归属专项测试。
四、软件质量模型
ISO/IEC 25010是软件质量模型的标准,该标准包含8个特性和31个子特性,具体如下:
- 功能性:软件在指定条件下使用时,提供满足明示和隐含要求的功能的能力。这包括适合性、准确性、互操作性、安全性、共存性等子特性。
- 性能效率:软件在指定条件下使用时,提供适当的性能和响应性的能力。这包括时间特性、资源利用性、容量等子特性。
- 兼容性:软件在指定条件下使用时,能与一个或更多的规定系统进行交互的能力。这包括共存性、互操作性等子特性。
- 易用性:软件在指定条件下使用时,能被理解、学习、使用和吸引用户的能力。这包括易理解性、易学习性、易操作性、吸引性等子特性。
- 可靠性:软件在指定条件下使用时,能维持规定的性能级别的能力。这包括成熟性、容错性、易恢复性等子特性。
- 信息安全性:软件在指定条件下使用时,保护信息和数据的能力。这包括保密性、完整性、可用性等子特性。
- 维护性:软件在指定条件下使用时,能被修改的能力。这包括分析性、可修改性、稳定性、测试性等子特性。
- 可移植性:软件在指定条件下使用时,能从一环境转移到另一环境的能力。这包括适应性、易安装性、共存性、易替换性等子特性。
ISO/IEC 25010相比之前的ISO/IEC 9126标准,增加了安全性和兼容性两个主特性,并对功能性、易用性和可维护性做了修改,以更好地满足现代软件开发的需求。
相关文章:
1.软件测试基础
一、软件测试概念 1.什么是软件 软件是计算机程序,是由计算机代码编写的一系列指令和数据,可以实现各种功能。它指的是计算机系统中的应用程序,包括操作系统、应用软件、驱动程序等。软件可以通过编程语言编写和开发,并可以安装…...
综合布线系统概述
对于现代化的大楼,其内部信息传输通道系统(综合布线系统) 已不仅仅要求能支持一般的语音传输,还应能够支持多种计算机网络 协议及多种厂商设备的信息互连,可适应各种灵活的,容错的组网方 案,…...

Labview 实战 99乘法表
基于新手小白,使用Labview实现99乘法表,敢于发表自己的一点方法,还请各位大侠放过! 如下: 运行效果如下: 思路为:将要显示出来的数据,全部转换为字符串形式,再塞入到数组…...

需求变化频繁的情况下,如何实施自动化测试
一.通常来说,具备以下3个主要条件才能开展自动化测试工作: 1.需求变动不频繁 自动化测试脚本变化的频率决定了自动化测试的维护成本。如果需求变动过于频繁,那么测试人员就需要根据变动的需求来不断地更新自动化测试用例,从而适应新的功能。…...

C++设计模式-桥接(Bridge)
目录 C设计模式-桥接(Bridge) 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-桥接(Bridge) 一、意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、适用性 你不希望在抽象和它…...

Springboot+vue的开放性实验室管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
演示视频: Springbootvue的开放性实验室管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的开放性实验室管理系统,采用M(…...
1.9.C++项目:仿muduo库实现并发服务器之Connection模块的设计
项目完整在: 文章目录 一、Connection模块:这是一个对于通信连接进行整体管理的一个模块,对一个连接的操作都是通过这个模块来进行!二、提供的功能三、实现思想(一)功能(二)意义&am…...

Iphone文件传到电脑用什么软件,看这里
在数字化时代,文件传输已经成为我们日常生活中不可或缺的一部分。然而,苹果用户在将手机文件传输到电脑时,往往会面临一些困扰。曾经的“文件传输助手”并不能完全满足用户的需求。于是,很多人开始寻找更便捷的解决方案。在本文中…...
JS进阶-原型对象prototype
原型 原型就是一个对象,也称为原型对象 构造函数通过原型分配的函数是所有对象所共享的。 JavaScript规定,每一个构造函数都有一个prototype属性,指向另一个对象,所以我们也称为原型对象 这个对象可以挂载函数,对象…...

【Unity】两种方式实现弹跳平台/反弹玩家(玩家触发与物体自身触发事件实现蹦床的物理效果)
一、声明 只实现物理反弹的效果,不实现蹦床会有的视觉拉伸效果,请自行找相关代码 二、实现 经过我的实践,我发现要想实现一个平台反弹的效果,要么就选择给player添加一个物理材质(平台加了没用)࿰…...

python开发幸运水果抽奖大转盘
概述 当我女朋友跟我说要吃水果,又不知道吃啥水果时候,她以为难为到我了,有啥事难为到程序员的呢! 今天用python利用第三方tkinterthreadingtime库开发一个幸运水果抽奖大转盘!抽到啥吃啥 详细 老规矩!咱…...

【CMU15-445 Part-16】Concurrency Control Theory
Part16-Concurrency Control Theory 架构概念 Transcations txn就是通过在数据库系统中执行一系列操作(sql queries)来执行某种更高级的功能(应用程序所执行的功能)。 Transcations in SQL 一个新的事务开始 with BEGIN,txn结束with COMM…...

软件设计模式系列之二十五——访问者模式
访问者模式(Visitor Pattern)是一种强大的行为型设计模式,它允许你在不改变被访问对象的类的前提下,定义新的操作和行为。本文将详细介绍访问者模式,包括其定义、举例说明、结构、实现步骤、Java代码实现、典型应用场景…...

国庆看坚如磐石
坚如磐石上映了,可以在爱奇艺观看。 而博主在使用蓝牙耳机连接电脑的过程中,发现没有蓝牙开启选项,并且在服务的设备管理器中也没有找到,很明显这是缺少驱动导致的,因此便去联想官方网站下载对应的驱动。 这里可以输入…...
代码随想录Day59 | 647. 回文子串 | 516. 最长回文子序列
647. 回文子串 class Solution { public:int countSubstrings(string s) {int sum0;int ns.size();vector<vector<int>> f(n1,vector<int>(n1,0));//表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串。初始值为0.for(int i n…...
为什么InnoDB选择B+树而不是红黑树作为索引结构?
在数据库管理系统中,索引结构的选择对于数据库的性能和效率至关重要。MySQL的InnoDB存储引擎是一个广泛使用的数据库引擎,它选择了B树作为索引结构,而不是像红黑树那样的其他数据结构。本文将探讨为什么InnoDB选择B树,并解释B树与…...

【c++_containers】10分钟带你学会list
前言 链表作为一个像是用“链子”链接起来的容器,在数据的存储等方面极为便捷。虽然单链表单独在实际的应用中没用什么作用,但是当他可以结合其他结构,比如哈希桶之类的。不过今天学习的list其实是一个带头双向链表。 言归正传,让…...
LeetCode 0714. 买卖股票的最佳时机含手续费
【LetMeFly】714.买卖股票的最佳时机含手续费 力扣题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 ;整数 fee 代表了交易股…...

cartographer-(0)-ubuntu(20.04)-环境安装
1.安装 ROS wiki.ros.org 1.1修改镜像源: 到网站上找与操作系统相匹配的镜像源 ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb htt…...

MIT 6.S081学习笔记(第二章)
〇、前言 本文主要完成MIT 6.S081 实验二:system call 一、Using gdb (easy) Question requirements In many cases, print statements will be sufficient to debug your kernel, but sometimes being able to single step through some assembly code or inspe…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...

Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...

鸿蒙Navigation路由导航-基本使用介绍
1. Navigation介绍 Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,其内部默认包含了标题栏、内容区和工具栏,其中内容区默认首页显示导航内容(Navigation的子组件)或非首页显示(Nav…...