软件测试项目式学习一(认识软件生命周期与开发模型及软件质量)

简介: 软件测试项目式学习一(认识软件生命周期与开发模型及软件质量)

前言

本文分为以下内容:

1、软件的基本概念

2、软件的生命周期

3、软件的开发模型

4、软件的质量


一、软件的基本概念

什么是软件呢?   

软件一般指的是计算机软件,即计算机程序中的程序及其文档。

1、程序是指为了得到某种结果使计算机或具有信息处理能力的装置执行的代码化指令,可被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列,亦称为程序。

2、文档则是用来描述程序的需求、设计、组成、功能、开发、测试等内容的使用方法的文字资料和图表。

软件一般分为两大类:系统软件、应用软件

1、系统软件是指负责管理和控制计算机硬件及应用程序,包括操作系统、设备驱动程序、数据库管理系统等。如下图所示:

2、应用软件是指为了满足实际生活中的特定需求而开发的,种类繁多,功能各异的软件,比如:办公软件、图像音频处理软件、游戏软件、教育软件等。如下图所示:


二、软件的生命周期

什么是软件的生命周期?

1、软件和其他的产品一样,都有从“出生”到“死亡”的过程,这个过程便称为软件的生命周期。软件测试是软件生命周期中比较重要的一环。

2、软件生命周期分为三大阶段:定义阶段、开发阶段、运行(维护)阶段。其中又细分为以下六个阶段如图:


三、软件生存周期模型

什么是软件生存周期模型?

1、软件周期模型是描述软件开发过程中各种活动如何执行的模型。

2、常见模型有瀑布模型、演化模型、螺旋模型、喷泉模型。下面简单的介绍瀑布模型:

“瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。

瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。”——百度百科

瀑布模型如下图所示:

四、软件的质量

什么是软件的质量呢?

软件产品与其他产品一样,都是有质量要求的,软件质量关系着软件使用程度与使用寿命,一款高质量的软件更受用户欢迎,它除了满足客户的显式需求之外,往往还满足了客户隐式需求。

软件质量的三个层次:

(1)满足需求规定:软件产品符合开发者明确定义的目标,并且能可靠运行。

(2)满足用户需求:软件产品的需求是由用户产生的,软件最终的目的就是满足用户需求,解决用户的实际问题。

(3)满足用户隐式需求:除了满足用户的显式需求,软件产品如果满足用户的隐式需求,即潜在的可能需要在将来开发的功能,将会极大地提升用户满意度,这就意味着软件质量更高。——黑马程序员《软件测试》。

软件质量模型

ISO/IEC 9126:1991标准:功能性,可靠性,可使用性,效率性,可维护性,可移植性。

6个特性与27个子特性,如下图所示:

总结

本文我们了解了什么是软件,软件的生命周期贯穿软件“诞生”到“凋谢”,软件的开发模型,以及ISO/IEC 9126:1991标准的软件质量。下一篇笔者讲着重介绍什么是软件缺陷与软件测试相关概念。

目录
相关文章
|
5天前
|
监控 数据管理 测试技术
自动化测试:提升软件质量的关键
【6月更文挑战第19天】自动化测试在软件质量保障中至关重要,通过使用工具执行测试用例,提高效率、减少错误。关键技术包括测试框架(如Selenium)、测试脚本编写、测试数据管理和测试执行监控。虽面临脚本维护、数据管理等挑战,但自动化测试能提升软件质量,降低成本,加快交付速度,并将在未来持续影响软件行业。
|
3天前
|
机器学习/深度学习 敏捷开发 人工智能
自动化测试的崛起:如何利用AI提升软件质量
【6月更文挑战第20天】在软件开发的浪潮中,自动化测试已成为确保产品质量的关键工具。随着人工智能(AI)技术的飞速发展,其在自动化测试中的应用日益广泛,为测试流程带来了革命性的变化。本文将探讨AI如何优化测试用例生成、提高缺陷检测效率和预测潜在问题,从而显著提升软件测试的效率和准确性。
20 3
|
5天前
|
敏捷开发 测试技术 持续交付
探索式测试在软件质量保证中的角色与实践
【6月更文挑战第18天】探索式测试,一种灵活且高效的软件测试方法,正逐渐改变传统测试流程的面貌。本文将深入探讨探索式测试的核心概念、实施策略及其在现代软件开发生命周期中的应用价值。通过案例分析与实证研究,揭示探索式测试如何提升测试覆盖率,增强团队协作,并促进持续集成与交付。最终,文章旨在为读者提供一套实用的探索式测试框架,以支持其在软件质量保证活动中的有效运用。
7 3
|
5天前
|
JSON Java 测试技术
SpringBoot实用开发篇第二章(测试操作)
SpringBoot实用开发篇第二章(测试操作)
|
3天前
|
开发框架 Java Maven
后端开发之SpringBootWeb入门介绍及简单测试 2024详解
后端开发之SpringBootWeb入门介绍及简单测试 2024详解
11 0
|
3天前
|
数据可视化 Java 持续交付
JavaWeb后端开发之Maven 2024介绍安装测试详解
JavaWeb后端开发之Maven 2024介绍安装测试详解
10 0
|
3天前
|
jenkins 测试技术 持续交付
探索自动化测试的边界:持续集成与软件质量的协同进化
随着软件开发节奏的加快,自动化测试成为确保软件质量和快速交付的关键。本文深入分析了持续集成(CI)在自动化测试中的作用,探讨了如何通过优化CI流程来提升软件测试效率和质量。文章首先概述了自动化测试的基本概念和重要性,接着详细讨论了在CI环境下实施自动化测试的策略,包括工具选择、测试用例设计、以及反馈机制建立等。最后,通过案例分析,展示了一个成功的自动化测试实践,旨在为读者提供一套可行的方法论,以促进其软件项目的质量保证工作。
11 0
|
7天前
|
敏捷开发 机器学习/深度学习 人工智能
探索性测试:软件质量的保障
【6月更文挑战第16天】在快速迭代的软件世界中,探索性测试以其灵活性和深度分析能力成为确保产品质量的关键。本文将深入探讨探索性测试的价值、实施策略及其在现代软件开发中的应用,揭示其如何帮助团队发现并修复潜在的缺陷,提升用户体验。
|
5天前
|
JSON Java Maven
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
17 3
|
1月前
|
NoSQL 安全 测试技术
接口测试用例设计的关键步骤与技巧解析
该文介绍了接口测试的设计和实施,包括测试流程、质量目标和用例设计方法。接口测试在需求分析后进行,关注功能、性能、安全等六项质量目标。流程包括网络监听(如TcpDump, WireShark)和代理工具(Charles, BurpSuite, mitmproxy, Fiddler, AnyProxy)。设计用例时,需考虑基本功能流程、输入域测试(如边界值、特殊字符、参数类型、组合参数、幂等性)、线程安全(并发和分布式测试)以及故障注入。接口测试用例要素包括模块、标题、优先级、前置条件、请求方法等。文章强调了保证接口的幂等性和系统健壮性的测试重要性。
54 5