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

1.软件测试基础

一、软件测试概念

1.什么是软件

软件是计算机程序,是由计算机代码编写的一系列指令和数据,可以实现各种功能。它指的是计算机系统中的应用程序,包括操作系统、应用软件、驱动程序等。软件可以通过编程语言编写和开发,并可以安装到计算机系统中运行。常见的软件包括办公软件、游戏、浏览器、媒体播放器和各种应用程序。

软件:控制计算机硬件工作的工具。

2.软件产生过程

  1. 问题定义与规划:此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
  2. 需求分析:在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。
  3. 软件设计:此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。
  4. 程序编码:此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。
  5. 软件测试:在软件设计完成后要进行严密的测试,一发现软件在整个设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。
  6. 发布和维护:通过测试的软件就可以发布使用了,在使用的过程中会发现一些问题,这时就需要进行软件的维护了。也就是对软件进行一些必要的改动和升级。

3.什么是软件测试

软件测试是指在软件开发过程中,使用人工或者自动化的方式来评估软件的质量和可靠性的过程。其主要目的是发现软件中存在的缺陷和错误,并确保软件能够满足用户需求。

软件测试包括多个阶段,如单元测试、集成测试、系统测试、验收测试等。每个阶段的测试重点和方法都不尽相同。在软件测试中,测试人员需要根据测试计划和测试用例执行测试,并对发现的问题进行跟踪和管理。

软件测试是提高软件质量的重要手段,能够帮助开发团队及时发现和修复软件中的缺陷,降低软件发布后面临的风险和成本。同时,软件测试还能够提高软件的可靠性、稳定性和安全性,增强用户对软件的信任度和满意度。

二、软件测试类型

1.功能测试:

功能测试是对产品的各项功能进行验证,以确保产品符合需求规格书中的功能要求。这包括检查产品的各项功能是否能够实现,以及实现的是否正确。常用的功能测试工具包括QTP、WinRunner、SilkTest等。

2.接口测试:

接口测试是针对软件之间进行数据交互的接口进行测试的一种形式。它主要检查数据交换的正确性和有效性。常用的接口测试工具包括Postman、JMeter、SoapUI等。

3.性能测试:

性能测试是对软件在不同负载和压力下的性能进行评估和测试的一种形式。它可以帮助发现软件在高负载下的问题和优化软件性能。常用的性能测试工具包括LoadRunner、JMeter、ApacheBench等。

4.自动化测试:

自动化测试是通过使用自动化测试工具或编写自动化测试脚本来完成软件测试的一种形式。它可以大大提高测试效率,减少人工干预。常用的自动化测试工具包括Selenium、Appium、QTP等。

需要注意的是,不同的测试阶段和测试对象可能需要使用不同的测试工具和方法。因此,在选择测试工具时,需要根据具体情况进行评估和选择。

三、测试分类

1.按测试阶段划分

  1. 单元测试(Unit Testing):这个阶段主要针对软件中的基本组成单位进行测试,目的是检验软件基本组成单位的正确性。这大多是由开发人员进行的自测。
  2. 集成测试(Integration Testing):在软件系统集成过程中进行的测试,主要检查软件单位之间的接口是否正确。这是在单元测试之后进行的测试。
  3. 系统测试(System Testing):对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。
  4. 验收测试(Acceptance Testing):这是部署软件之前的最后一个测试操作,目的是确保软件准备就绪,可以向软件购买者展示该软件系统满足其用户的需求。

2.按代码可见度划分

  1. 黑盒测试(Black Box Testing):不关注源代码,只关心软件的输入输出和功能实现,测试依据主要是需求文档。
  2. 灰盒测试(Gray Box Testing):介于黑盒测试和白盒测试之间,关注程序部分代码和功能实现,测试依据主要是设计文档。
  3. 白盒测试(White Box Testing):针对程序源代码进行测试,关注软件内部设计和程序实现,测试依据主要是设计文档。

这三种测试方法各有优缺点。黑盒测试不需要考虑代码实现,只需要根据需求文档进行测试,但无法发现代码实现中的错误。白盒测试可以发现代码实现中的错误,但需要投入大量时间和精力,且对测试人员的要求较高。灰盒测试则介于两者之间,既可以发现代码实现中的错误,又不会过于关注代码细节。

⿊盒测试:主要针对功能(阶段划分->系统测试)
灰盒测试:针对接口测试(阶段划分->集成测试)
⽩盒测试:针对程序源代码进⾏测试(阶段划分->单元测试)

系统测试和黑盒测试重点核心是:功能测试。
集成测试和灰盒测试又称:接口测试 。
单元测试和白盒测试是对代码进行测试。
自动化测试归属功能测试。
性能测试、安全测试归属专项测试。

 

四、软件质量模型

ISO/IEC 25010是软件质量模型的标准,该标准包含8个特性和31个子特性,具体如下:

  1. 功能性:软件在指定条件下使用时,提供满足明示和隐含要求的功能的能力。这包括适合性、准确性、互操作性、安全性、共存性等子特性。
  2. 性能效率:软件在指定条件下使用时,提供适当的性能和响应性的能力。这包括时间特性、资源利用性、容量等子特性。
  3. 兼容性:软件在指定条件下使用时,能与一个或更多的规定系统进行交互的能力。这包括共存性、互操作性等子特性。
  4. 易用性:软件在指定条件下使用时,能被理解、学习、使用和吸引用户的能力。这包括易理解性、易学习性、易操作性、吸引性等子特性。
  5. 可靠性:软件在指定条件下使用时,能维持规定的性能级别的能力。这包括成熟性、容错性、易恢复性等子特性。
  6. 信息安全性:软件在指定条件下使用时,保护信息和数据的能力。这包括保密性、完整性、可用性等子特性。
  7. 维护性:软件在指定条件下使用时,能被修改的能力。这包括分析性、可修改性、稳定性、测试性等子特性。
  8. 可移植性:软件在指定条件下使用时,能从一环境转移到另一环境的能力。这包括适应性、易安装性、共存性、易替换性等子特性。

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&#xff08…...

1.9.C++项目:仿muduo库实现并发服务器之Connection模块的设计

项目完整在: 文章目录 一、Connection模块:这是一个对于通信连接进行整体管理的一个模块,对一个连接的操作都是通过这个模块来进行!二、提供的功能三、实现思想(一)功能(二)意义&am…...

Iphone文件传到电脑用什么软件,看这里

在数字化时代,文件传输已经成为我们日常生活中不可或缺的一部分。然而,苹果用户在将手机文件传输到电脑时,往往会面临一些困扰。曾经的“文件传输助手”并不能完全满足用户的需求。于是,很多人开始寻找更便捷的解决方案。在本文中…...

JS进阶-原型对象prototype

原型 原型就是一个对象,也称为原型对象 构造函数通过原型分配的函数是所有对象所共享的。 JavaScript规定,每一个构造函数都有一个prototype属性,指向另一个对象,所以我们也称为原型对象 这个对象可以挂载函数,对象…...

【Unity】两种方式实现弹跳平台/反弹玩家(玩家触发与物体自身触发事件实现蹦床的物理效果)

一、声明 只实现物理反弹的效果,不实现蹦床会有的视觉拉伸效果,请自行找相关代码 二、实现 经过我的实践,我发现要想实现一个平台反弹的效果,要么就选择给player添加一个物理材质(平台加了没用)&#xff0…...

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] &#xff08;注意是左闭右闭&#xff09;的子串是否是回文子串。初始值为0.for(int i n…...

为什么InnoDB选择B+树而不是红黑树作为索引结构?

在数据库管理系统中&#xff0c;索引结构的选择对于数据库的性能和效率至关重要。MySQL的InnoDB存储引擎是一个广泛使用的数据库引擎&#xff0c;它选择了B树作为索引结构&#xff0c;而不是像红黑树那样的其他数据结构。本文将探讨为什么InnoDB选择B树&#xff0c;并解释B树与…...

【c++_containers】10分钟带你学会list

前言 链表作为一个像是用“链子”链接起来的容器&#xff0c;在数据的存储等方面极为便捷。虽然单链表单独在实际的应用中没用什么作用&#xff0c;但是当他可以结合其他结构&#xff0c;比如哈希桶之类的。不过今天学习的list其实是一个带头双向链表。 言归正传&#xff0c;让…...

LeetCode 0714. 买卖股票的最佳时机含手续费

【LetMeFly】714.买卖股票的最佳时机含手续费 力扣题目链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 给定一个整数数组 prices&#xff0c;其中 prices[i]表示第 i 天的股票价格 &#xff1b;整数 fee 代表了交易股…...

cartographer-(0)-ubuntu(20.04)-环境安装

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

MIT 6.S081学习笔记(第二章)

〇、前言 本文主要完成MIT 6.S081 实验二&#xff1a;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…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...