软件质量与测试的基础知识
1. 软件工程的知识体系
-
软件需求
用来描述解决现实世界某个问题的软件产品及对软件产品的约束,涉及需求获取、需求分析、建立需求规格说明和确认,领域问题建模,软件开发的技术、经济和时间可行性分析等。
-
软件设计
由软件体系结构设计、软件详细设计两种组成。
-
软件制造
通过编码、单元测试、集成测试、调式、确认等活动,生成可用的有意义的软件。
-
软件测试
标识缺陷和问题,改善产品质量。
-
软件维护
等一系列工作做完,软件开发完毕后,交予用户使用,从此便进入软件维护工作。此阶段会随着需求、问题的提升而提升。
-
软件配置管理
软件配置管理是一种标识、组织和控制修改的技术,维护整个系统声明周期中软件配置的一致性和可追踪性。
-
软件工程管理
确保软件开发和维护是系统的、规范的、可度量的。
-
软件工程过程
软件工程过程是生产一个最终能满足用户需求且达到工程目标的软件产品所需要的步骤。
-
软件工程工具与方法
主要是对一些工具和方法的运用,使要达到目的的软件更符合用户的需求标准。
-
软件质量
软件质量是对软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。
2.为什么要进行软件测试?
- 软件总存在缺陷,只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。
- 软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性
- 测试是所有工程学科的基本组成单元,自然也是软件开发的重要组成部分。
- 测试人员水平越高,找到软件问题的时间就越早,软件就越容易更正,产品发布之后越稳定
3.软件测试的两面性
4.软件测试的概念
-
是指在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价。
-
是指分析某个软件项以发现现存的和要求的条件之差别并评价此软件项的特性
-
软件测试是由“验证”和“有效性确认”活动构成的整体
5.软件测试的价值
-
全面评估产品质量,获得有关产品质量的全面、客观的信息
-
发现问题,督促问题解决,提高产品质量
-
持续提供质量反馈、及时揭示质量风险,有助于控制项目风险,提高构建的质量
-
通过缺陷分析,获得缺陷模式,有助于缺陷的预防
6.软件质量的保证
- 软件质量保证SQA(Software Quality Assurance)活动是通过对软件产品有计划的进行评审和审计来验证软件是否合乎标准的系统工程,通过协调、审查和跟踪以获取有用信息,形成分析结果以指导软件过程
- 对软件工程各个阶段的进展、完成质量及出现的问题进行评审、跟踪
- 审查和验证软件产品是否遵守适用的标准、规程和要求,并最终确保符合标准、满足要求
- 建立软件质量要素的度量机制,了解各种指标的量化信息,向管理者提供可视信息
7.软件质量的考虑
软件系统规模和复杂性的增加,使得软件开发成本和软件故障而造成的经济损失也在增加,软件质量问题,正成为制约计算机发展的关键因素。
- 从软件结构方面
- 从功能与性能方面
- 从开发标准与文档方面
8.软件质量的特征
- 功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度
- 可靠性:软件在指定条件和特定时间段内维持性能的能力程度
- 易使用性:用户使用该软件所付出的学习精力
- 效率:在指定条件下,软件功能与所占用资源之间的比值
- 可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修改的容易程度
- 可移植性:将软件从一种环境移入另一种环境的容易程度
9.软件测试与SQA
- SQA指导、监督软件测试的计划和执行,督促测试工作的结果客观、准确和有效,并协助测试流程的改进。
- 软件测试是重要手段之一,为提供所需的数据,作为质量评价的客观依据。
- SQA是一项管理工作,侧重于对流程的评审和监控。
- 测试是一项技术性的工作,侧重对产品进行评估和验证。
10.软件的相关概念
-
什么是工程
工程是科学和数学数学/107037)的某种应用,通过这一应用,使自然界的物质和能源的特性能够通过各种结构、机器、产品、系统和过程,是以最短的时间和最少的人力、物力做出高效、可靠且对人类有用的东西
-
什么是活动
将某个(或某些)现有实体(自然的或人造的)转化为具有预期使用价值的人造产品过程
-
什么是系统
系统是由相互作用相互依赖的若干组成部分结合而成的,具有特定功能的有机整体
-
什么是过程
指事情进行或事物发展所经过的程序
-
什么是软件
软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据
软件包含计算机程序、规程、文档和软件系统运行所必需的数据四个部分
软件的分类:
- 系统软件
- 应用软件
- Web应用软件
- 工程和科学软件
- 嵌入式软件
- 产品线软件
- 人工智能软件