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

news/2024/11/28 3:59:24/

目录

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.ppmy.cn/news/70824.html

相关文章

电脑压缩包文件不见了怎么办?2种办法轻松找回电脑丢失文件!

一般情况下,为了节省磁盘空间或者传送文件时能够更快点,我们都会选择把文件进行压缩,这样会更加方便。 但时间一长,由于各种各样的原因,比如: 清理积累下来的压缩包时不小心把需要的压缩文件删除了&#x…

数据库驱动链接

数据库驱动链接 MySQL数据库: 1)驱动包:https://mvnrepository.com/artifact/mysql/mysql-connector-java(下载路径) 2)驱动类名:com.mysql.jdbc.Driver 3)JDBC的URL:jd…

umi4 实现msal aad 登录loginRedirect方式并获取令牌

在 Umi 4 中使用 Ant Design Pro Layout 以及 MSAL (Microsoft Authentication Library) 实现登录并获取令牌进入到首页,你需要按照以下步骤进行操作: 安装所需依赖: 使用 npm 或 yarn 安装所需的包: npm install azure/msal-bro…

本科毕业论文专家评阅意见汇总

文章目录 论文1论文2论文3论文4论文5论文6论文7论文8论文9论文10论文11论文12论文13论文14论文15论文16论文17论文1 论文“基于Java的xxx管理系统的设计与实现”,选题正确,具有一定的理论意义和实用价值。作者系统地归纳和评述了有关文献,掌握了该领域的研究现状。论文运用…

让你的网站变得更智能 - B2 Pro主题问答模块新增OpenAI ChatGPT机器人自动回答功能

作为一个网站管理员,你一定会希望能够给你的用户提供更多、更好的服务。那么,你是否曾经想过为你的B2 Pro主题问答模块新增一个智能机器人自动回答功能呢?相信你一定想要这个功能,因为它能够大大提升你网站的用户体验。 现在,我们为你提供了一个好消息。我们已经为B2 Pro…

mysql中的Redo log

目录标题 前言redolog保证持久性redolog工作过程 redo log中的WAL(先写日志,再写磁盘【写入redo log file】)刷盘策略 重要参数innodb_flush_log_at_trx_commit如何选择 Redo log file日志文件日志文件组redo log刷盘与数据页刷盘redo log何时…

云上高校导航 小程序 开发教程 1.0.1

​ Gitee仓库:云上高校导航 GitHub仓库:云上高校导航 “云上高校导航”是一套基于小程序云开发的校园导航类系统开发方案,该开发方案可供开发者进行二次开发,用于解决师生和访客的校园出行需求。 项目优势及创新:…

Java中的数据库编程如何实现

在Java应用程序中,数据库是一个不可或缺的组成部分。数据库编程旨在通过Java代码与数据库交互,以实现数据的存储,检索和管理。本文将介绍Java中的数据库编程,包括连接数据库,执行SQL语句和处理结果集等。 连接数据库 …