【5.15】一、软件测试基础—软件概述

目录

1.1 软件概述

1.1.1 软件生命周期

1.1.2 软件开发模型

1.1.3 软件质量概述


1.1 软件概述

软件是相对于硬件而言的,它是一系列按照特定顺序组织的计算机数据和指令的集合

软件的生命周期:软件从“出生” 到 “消亡” 的过程

1.1.1 软件生命周期

阶段1-问题定义:由软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性

阶段2-需求分析:划分出软件需要实现的功能模块,并制作成文档。(应考虑到需求的变化)

阶段3-软件设计:在需求分析结果的基础上,对整个软件系统进行设计,如系统框架设计、数据库设计等。

阶段4-软件开发:在软件设计的基础上,选择一种编程语言进行开发。(要符合规范)

阶段5-软件测试:软件开发完成后对软件进行测试,以查找软件设计与软件开发过程中存在的问题并加以修正。

阶段6-软件维护:软件完成测试并投入使用之后,按需对软件进行维护升级以延续软件的使用寿命。软件的维护包括纠错性维护改进性维护两个方面。

1.1.2 软件开发模型

了解软件开发模型,以便找准自己在其中的定位与任务。

              

瀑布模型:只有当一个阶段任务完成之后才能开始下一个阶段。利于大型软件开发人员的组织管理及工具的使用与研究,但无法适应用户需求变更。

快速原型模型:在最初确定用户需求时快速构造出一个可以运行的软件原型,供客户评价以确定需求。克服了需求不明确带来的风险,适用于不能预先确定需求的软件项目;准确地设计出软件原型存在一定的难度,此外,这种开发模型也不利于开发人员对产品进行扩展

迭代模型:又称为增量模型或演化模型,它将一个完整的软件拆分成不同的组件,然后逐个组件地开发测试。整个开发工作被组织为一系列短期、简单的小项目,称为一系列迭代。可以很好地适应客户需求变更,但是迭代模型需要将开发完成的组件集成到软件体系结构中,这样会有集成失败的风险,因此要求软件必须有开放式的体系结构。此外,迭代模型逐个组件地开发修改,很容易退化为“边做边改”的开发形式,从而失去对软件开发过程的整体控制。

迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

螺旋模型:融合了瀑布模型、快速原型模型,它最大的特点是引入了其他模型所忽略的风险分析,比较适合开发复杂的大型软件。

敏捷模型:以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。开发的同时也会进行测试工作,甚至可以提前写好测试代码,因此在敏捷模型中,有“开发未动,测试先行”的说法。敏捷模型可以及时响应客户需求变更,不断适应新的趋势,但是在开发灵活的同时也带来了一定程度的混乱。例如,缺乏文档资料;软件之前版本的可重现性、可回溯性较低;对于较大的项目,人员越多,面对面的有效沟通越困难。因此敏捷模型比较适用于小型项目的开发,而不太适用于大型项目。敏捷模型主要有2种开发方式:Scrum与Kanban。

1.1.3 软件质量概述

高质量的软件除了满足客户的显式需求之外,往往还满足了客户隐式需求。

软件质量的概念:软件质量是指软件产品满足基本需求隐式需求程度

从软件质量的定义,可将软件质量分为3个层次:(1)满足需求规定:软件产品符合开发者明确定义的目标,并且能可靠运行。(2)满足用户需求:软件产品的需求是由用户产生的,软件最终的目的就是满足用户需求,解决用户的实际问题。(3)满足用户隐式需求:除了满足用户的显式需求,软件产品如果满足用户的隐式需求,即潜在的可能需要在将来开发的功能,将会极大地提升用户满意度,这就意味着软件质量更高。

软件质量模型:ISO/IEC 9126:1991标准所包含的6大特性。

(1)功能性:在指定条件下,软件满足用户显式需求和隐式需求的能力。(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。(3)可使用性:在指定条件下,软件产品被使用、理解、学习的能力。(4)效率:在指定条件下,相对于所有资源的数量,软件产品可提供适当性能的能力。(5)可维护性:指软件产品被修改的能力。修改包括修正、优化和功能规格变更的说明。(6)可移植性:指软件产品从一个环境迁移到另一个环境的能力。 

这6大特性及其子特性是软件质量标准的核心,软件测试工作就从这6个特性和27个子特性去测试、评价一个软件的

“纸杯测试”是一个经典的测试案例,这是微软公司曾给软件测试者出的一道面试题,用于考察面试者对软件测试的理解与掌握程度。

测试项目:纸杯。

需求测试:查看纸杯说明书是否完整。

界面测试:观察纸杯外观,测试表面是否光滑、手感是否舒适。

功能测试:用纸杯装水,观察是否漏水。

安全测试:纸杯是否有毒或细菌。

可靠性测试:从不同高度摔下来,观察纸杯的损坏程度。

易用性测试:用纸杯盛放开水是否烫手,纸杯是否易滑、是否方便饮用。

兼容性测试:用纸杯分别盛放水、酒精、饮料、汽油等,观察是否有渗漏现象。

可移植性测试:将纸杯放在温度、湿度等不同的环境中,查看纸杯是否还能正常使用。

可维护性:将纸杯揉捏变形,看其是否能恢复。

压力测试:用一根针扎在纸杯上不断增加力量,记录多大压强时针能穿透纸杯。

疲劳测试:用纸杯分别盛放水、汽油放置24小时,观察其渗漏情况(时间和程度)。

跌落测试:纸杯(加包装)从高处落下,查看可造成破损的高度。

震动测试:纸杯(加包装)六面震动,评估它是否能应对恶劣的公路/铁路/航空运输等。

测试数据:编写具体测试数据(略),其中可能会用到场景法、等价类划分法、边界值分析法等测试方法。

期望输出:期望输出需要查阅国际标准及用户的使用需求。

用户文档:使用手册是否对纸杯的用法、使用条件、限制条件等有详细描述。

说明书测试:查看纸杯说明书的正确性、准确性及完整性。

影响软件质量的因素:需求模糊,软件开发缺乏规范性文件指导,软件开发人员问题,缺乏软件质量控制管理。

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

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

相关文章

Foxit PDF Reader及Editor任意代码执行漏洞复现(CVE-2023-27363)

0x01 产品简介 Foxit PDF Reader是一套用来阅读PDF格式文件的软件,由福建福昕软件所研发,主要运行在Windows操作系统上。 0x02 漏洞概述 Foxit PDF Reader及Editor中存在任意代码执行漏洞,由于Foxit PDF Reader/Editor未验证exportXFAData方…

RocketMQ介绍

一、MQ简介 1.1 项目工程弊端 1.2 MQ简介 MQ(Message Queue)消息队列,是一种用来保存消息数据的队列 队列:数据结构的一种,特征为 “先进先出” 何为消息: 服务器间的业务请求 原始架构: 服务器中的A功能…

Flink学习——基本概述

目录 一、简介 1.1 flink是什么 1.2 flink主要特点 核心特性: 分层API: 1.3 flink vs spark 1.3.1 数据处理框架 1.3.2 数据模型 1.3.3 运行时架构 二、wordcount实例 2.1 项目依赖 2.2 添加框架支持 2.3 批处理 - DataSet API 2.4 有界流处…

DBCO-COOH分子量:305.3,CAS:1353016-70-2,二苯基环辛炔-羧基;类似有DBCO-NH2、SH、MAL、NHS等等

中文名称:二苯基环辛炔-羧基 英文名称:DBCO-acid 英文别称:DBCO-COOH cas: 1353016-70-2 分子式:C19H15NO3 分子量:305.3 DBCO-COOH是DBCO 衍生化的常用构件,在EDC、DCC和HATU等活化剂存在下&#xf…

汇编学习教程:灵活寻址(四)

引言 在上篇博文中,我们学习了 [bxsi] 的灵活寻址形式,由此讲解了汇编中的多重循环实现。那么本篇博文中,我们将继续学习灵活寻址其他实现形式。 本次学习从一道编程案例开始学起。 编程示例如下: assume cs:code,ds:datadata…

【jvm系列-12】jvm性能调优篇---GUI工具的基本使用

JVM系列整体栏目 内容链接地址【一】初识虚拟机与java虚拟机https://blog.csdn.net/zhenghuishengq/article/details/129544460【二】jvm的类加载子系统以及jclasslib的基本使用https://blog.csdn.net/zhenghuishengq/article/details/129610963【三】运行时私有区域之虚拟机栈…

openEuler 成功适配 LeapFive InFive Poros 开发板

近日,openEuler RISC-V 23.03 创新版本在跃昉科技的 Poros 开发板上成功运行。 openEuler 在 Poros 上适配成功,XFCE 桌面启动正常,文件系统、终端模拟器和输入法等相关 GUI 应用也运行流畅,Chromium 浏览器和 LibreOffice 等应用…

大屏只用来做汇报?知道这6个应用场景,直接升职加薪!

五一假几个朋友小聚了一下,好久没联系了,现在才知道大家从事行业五花八门的。知道我从事IT行业好几年,他们非要让我讲讲现在异常火爆的大屏,说是所在企业单位都在研究这玩意儿,有的业务人员焦虑不已不知道如何下手&…

SD-如何训练自己的Lora模型

官方地址:GitHub - bmaltais/kohya_ss 尝试过mac和Ubuntu,装上后都会有问题 Windows按照官方步骤安装即可 第一步 git clone https://github.com/bmaltais/kohya_ss.git cd kohya_sspython -m venv venv .\venv\Scripts\activatepip install torch1.…

SpringCloud Alibaba详解

目录 微服务架构概念 服务治理 服务调用 服务网关 服务容错 链路追踪 SpringcloudAlibaba组件 Nacos 负载均衡 Ribbon Fegin Sentinel 高并发测试 容错方案 Sentinel入门 Feign整合Sentinel 微服务架构概念 服务治理 服务治理就是进行服务的自动化管理&#xf…

pod的基本介绍| harbor仓库的搭建 tomcat镜像拉取

pod的基本介绍| harbor仓库的搭建 tomcat镜像拉取 一 Pod基础概念:二 通常把Pod分为两类:三 Pod容器的分类:四 应用容器(Maincontainer)五 镜像拉取策略(image PullPolicy)六 部署 harbor 创建私…

SpringMVC高手进阶

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,…

解密Netty中的Reactor模式

文章目录 单线程Reactor模式多线程Reactor模式Reactor模式中IO事件的处理流程Netty中的通道ChannelNetty中的反应器ReactorNetty中的处理器HandlerNetty中的通道Channel和处理器Handler的协作组件Pipeline Reactor(反应器)模式是高性能网络编程在设计和架构方面的基础模式.Doug…

Science文章复现(Python):图1 - Aircraft obs(机载的观测 CO2)

之前有写过science文章后处理的复现Science文章复现(Python):在机载观测中明显的强烈南大洋碳吸收 在这里是针对图细节的理解: 首先需要下载这个项目 https://github.com/NCAR/so-co2-airborne-obs 这里的环境配置会比较麻烦 con…

00后卷起来,真没我们老油条什么事了···

都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪20K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。…

【刷题之路】LeetCode 232. 用栈实现队列

【刷题之路】LeetCode 232. 用栈实现队列 一、题目描述二、解题1、图解主要思路2、先实现栈3、实现各个接口3.1、初始化接口3.2、入队接口3.3、出队接口3.4、取队头接口3.5、判空接口3.6、释放接口 一、题目描述 原题连接: 232. 用栈实现队列 题目描述:…

网站测试的主要方法

网站测试的主要方法 网站测试是保证网站质量的重要手段,通过对网站进行测试可以及时发现问题并修复,提高用户体验和网站的可靠性。本文将介绍网站测试的主要方法。 1.功能测试:测试网站的所有功能是否正常。通过模拟用户的操作,确…

在外包干了三年,我废了……不吹不黑!

没错,我也干过外包,一干就是三年,三年后,我废了…… 虽说废的不是很彻底,但那三年我几乎是出差了三年、玩了三年、荒废了三年,那三年,我的技术能力几乎是零成长的。 说起这段三年的外包经历&a…

文档管理-gitlab+markdown网页插件

特点 使用git进行版本管理,本地编辑使用Typora。使用gitlab进行权限管理可以在线阅读通过Markdown在线阅读插件实现,可显示目录显示与链接跳转,界面优于自带的wiki。 与其他方式对比 gitlab的wiki:显示界面效果不好&#xff0c…

【数据结构】栈及其实现

目录 🤠前言 什么是栈? 栈的定义及初始化 栈的定义 栈的初始化 栈的判空 栈顶压栈 栈顶出栈 栈的数据个数 栈的销毁 完整代码 总结 🤠前言 学了相当长一段时间的链表,总算是跨过了一个阶段。从今天开始我们将进入栈和…