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

news2024/12/28 2:12:30

目录

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小时,观察其渗漏情况(时间和程度)。

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

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

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超详细!Xmind的学习

哈喽,大家好。最近有小伙伴问使用xmind思维导图怎么快速上手,今天便给各位小伙伴出了这一期快速上手教程。思维导图的上手其实都是很简单的,只要知道基本功能的使用,基本上半天就能学会,一天就能熟练。 一、学习准备 …

【SpringBoot整合JWT】

目录 一、什么是JWT 二、JWT能做什么 三、为什么是JWT 1、基于传统的Session认证 2、基于JWT认证 四、JWT的结构是什么 五、JWT的第一个程序 六、封装JWT工具类 七、整合SpringBoot使用 一、什么是JWT JSON Web Token (JWT) is an open standard ([RFC 7519](http…

chatgpt赋能Python-python2转换为python3

Python 2到Python 3的转换和优化 在过去的几年中,Python 3已经成为了最流行的Python版本。因此,Python 2用户开始转向Python 3,以提高性能、安全性和可靠性。本文将讨论Python 2到Python 3的转换以及一些实用的优化技巧。 为什么要转向Pyth…

chatgpt赋能Python-python3_0列表排序方法

Python 3.0列表排序方法介绍 Python是一门广泛应用、适应性强的编程语言,而Python由于其简洁明了、易于学习、适合初学者的特点,是许多人最喜欢的编程语言之一。 Python 3.0列表排序方法是许多Python爱好者和开发者常用的功能之一。Python 3.0列表排序…

计算机网络 IP 1.1 IP基础知识

1. IP基本认识 网络层是实现主机与主机之间的通信。也叫点对点通信。 网络层(IP)和数据链路层(网络接口层)(MAC)有什么区别? IP是负责在没有直连的两个网络之间进行通信,MAC负责两个直连设备之间的通信。 只有两者一块使用&…

EasyRecovery Photo16数据恢复软件免费版下载或使用方法及安装激活教程

EasyRecovery Photo16数据恢复软件免费版下载是一款支持Mac/Wind平台进行恢复图片的专业工具,尤其是各种流行单反相机RAW格式文件,以及超大型视频文件等,摄影爱好者使用。EasyRecovery是一款非常专业的硬盘数据恢复工具,可以帮你恢…

windows搭建pyspark环境详细教程

一.安装jdk及配置环境变量: 下载地址: https://www.oracle.com/java/technologies/downloads/#java8-windows 安装步骤: 下载后点击安装,中途可以自定义安装路径,最后查看安装路径: 开始配置系统环境变量&#xff1a…

IS215UCVEM08B US2000型处理器板

IS215UCVEM08B US2000型处理器板通用电气标志VI卡 这IS215UCVEM08B是一种印刷电路板,是通用电气公司制造的Mark VI Speedtronic涡轮系列的一部分。这IS215UCVEM08B有一个小的圆形锂电池。这IS215UCVEM08B有几个链接点。电路板右手边有三个娇小的小鹿点。电路板背面…

【LLM系列之GPT】GPT(Generative Pre-trained Transformer)生成式预训练模型

GPT模型简介 GPT(Generative Pre-trained Transformer)是由OpenAI公司开发的一系列自然语言处理模型,采用多层Transformer结构来预测下一个单词的概率分布,通过在大型文本语料库中学习到的语言模式来生成自然语言文本。GPT系列模…

【STM32G431RBTx】备战蓝桥杯嵌入式→决赛试题→第九届

文章目录 前言一、题目![请添加图片描述](https://img-blog.csdnimg.cn/ccdd07679c9b4d86b6faad3554637eba.png)二、模块初始化三、代码实现interrupt.h:interrupt.c:main.h:main.c: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置,直…

[FlareOn6]Overlong 题解

这个题是不需要逆向加密函数就可以得到flag的,可以直接动态调试得到flag比较快一点 这个冒号后面有东西没有输出 查看主函数的汇编 push 1Ch push offset unk_402008 是调用下面这个函数前的参数传递 call sub_401160 观察这个函数,push …

研发工程师玩转Kubernetes——构建、推送自定义镜像

这几节我们都是使用microk8s学习kubernetes,于是镜像库我们也是使用它的插件——registry。 开启镜像库插件 microk8s enable registry模拟开发环境 我们使用Python作为开发语言来进行本系列的演练。 安装Python sudo apt install python3.11安装Pip3 pip3用于…

chatgpt赋能Python-python3_5怎么安装

Python3.5的安装方法 对于想要学习Python编程的新手来说,Python的版本安装是必须要掌握的技能。在本文中,我们将介绍如何安装Python3.5版本。 介绍 Python是一门简单易学的高级编程语言,其代码易于阅读,容易维护。Python有很多…

JAVA—实验3 继承与多态

一、实验目的 1.掌握类的继承机制 2.掌握抽象类的定义方法 2.熟悉类中成员变量和方法的访问控制 3.熟悉成员方法或构造方法的多态性 二、实验内容 1. Circle类及其子类 【问题描述】 实现类Circle,半径为整型私有数据成员 1)构造方法:参数为…

留学文书可以彻底被AI取代吗?留学顾问是否会被AI逼到墙角?

近日,ChatGPT再次“进化”,其最新版本ChatGPT-4又掀高潮。其生产者OpenAI 称,“ChatGPT-4是最先进的系统,能生产更安全和更有用的回复。”和上一代相比,GPT-4拥有了更广的知识面和更强的解决问题能力,在创意…

IC698PSA350 GE Fanuc为RX7i系列生产的电源模块

IC698PSA350 GE Fanuc为RX7i系列生产的电源模块 IC698PSA350是一款 PAC系统 GE Fanuc为RX7i系列生产的电源模块。该模块提供5伏直流电、12伏直流电和-12伏直流电。此外,它还向背板上的模块发送逻辑电平序列信号。该模块插入主机架的插槽0。 IC698PSA350 模块的 在保…

【云计算与虚拟化】第三章 实验三 配置vSphere虚拟网络和iSCSI共享存储

实验3. 配置vSphere虚拟网络和iSCSI共享存储 一、配置vSphere虚拟网络的实验步骤 在 VMware Workstation 中为 ESXi 主机添加两块网卡 2.开启 ESXi 主机,使用 vSphere Client 连接到 ESXi 主机。选中 ESXi 主机 切换到“配置”栏,点击硬件→网络适配器…

计算机中存储器详解

文章目录 一、存储器的分类1. 按存储介质分类2. 按存取方式分类 二、存储器的层次结构三、CPU、缓存、主存、辅存之间的通信关系1. 缓存-主存层次2. 局部性原理3. 主存-辅存层次 一、存储器的分类 1. 按存储介质分类 2. 按存取方式分类 二、存储器的层次结构 在讲存储器的层次…

类和对象【2】默认成员函数

文章目录 引言构造函数定义默认构造函数及相关问题 析构函数拷贝构造定义使用时可能引发的问题 赋值运算符重载运算符重载赋值运算符重载 总结 引言 在上一篇文章中,初步介绍了类和对象:戳我看初识类和对象 不难发现,类类型极大的方便了用户…

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

目录 1.3 软件测试概述 1.3.1 软件测试简介 1.3.2 软件测试的目的 1.3.3 软件测试的分类 1.3 软件测试概述 软件测试工作能保证软件产品的质量。 1.3.1 软件测试简介 IEEE:软件测试是使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它…