取消
显示结果 
搜索替代 
您的意思是: 
cancel
公告

December 2020

December 2020

【原创】软件测试入门指南(1)

165
查看次数
0
有帮助
0
评论

引言:在本文中,我们将通过向您介绍有关软件测试的基本方面,以帮助您把空软件质量,并能交付出满意的产品。
世界上没有任何软件能够保证是完美无缺的。但是这不应当成为软件缺陷的托词。为了提高产品的质量,确保软件的有效性、以及应用的平稳运行,我们需要进行各种有计划有步骤的软件测试。在本文中,我们将通过向您介绍有关软件测试的基本方面,以帮助您把空软件质量,并能交付出满意的产品。
软件测试简介
从概念上说,软件测试是一个评估已开发软件的功能,审查应用是否满足既定的要求,识别程序中任何潜在的缺陷,进而提高产品质量的过程。它的输出是发现目标系统与实际需求之间的差距,以及自身存在的错误与缺失。
在业界,我们通常将软件测试称为验证和确证软件产品的过程。因此,它关注软件产品的如下三个方面:
1. 是否满足那些指导其设计和开发的业务和技术需求
2. 是否能够按需运行并提供稳定的服务
3. 既定的服务功能是否能够重复实现
软件开发生命周期
首先,我们来了解一下软件开发生命周期(Software Development Life CycleSDLC)的概念。它是整个软件行业用于设计、开发和测试高质量软件的过程。SDLC旨在规定的时间和成本预算之内,生产出那些满足甚至超出客户期望的高质量软件。
要求阶段
需求的收集和分析是软件开发生命周期中最重要的阶段。业务分析师们会从客户和用户处收集他们的业务需求,并在既有的业务需求规范(具体文档名称会因组织的不同而有所差异)中记录这些需求要点。
分析阶段
在完成对需求的收集和分析后,下一步就是要定义并记录产品的规范需求,进而获得客户的确认。我们一般需要通过软件需求规范(Software Requirement SpecificationSRS)文档来实现。SRS一般包含了在项目生命周期中,那些与设计和开发相关的所有产品需求。
设计阶段
此阶段分为两个步骤:
1. 高级设计(High-Level DesignHLD:有时也称概要设计,它交付的是待开发软件产品的体系结构,一般由架构师和高级资深开发人员来完成。
2. 低级设计(Low-Level DesignLLD:有时也称详细设计,它描述的是产品的每一项功能、以及每一个组件应该如何运作。一般由高级资深开发人员来完成。
可见,此阶段的输出:高级文档和低级文档,将作为下一阶段的输入。
开发阶段
所有级别的开发人员(从资深到初级)都参与到该阶段当中,着手编写并构建软件的相关代码。
测试阶段
软件在完成编码之后,会被发送到测试部门,对可能出现的缺陷进行全面的测试。他们既可以手动测试软件,又可以通过自动化测试工具,以确保软件的每个组件都能够正常工作。软件只有通过了测试,才能得到质量保证(QA),也才能进入下面的实施阶段。
部署和维护阶段
最终,软件产品需要交付和部署,以供客户使用。此阶段通常是由部署与实施工程师来完成。而在客户使用系统与服务的过程中,他们所碰到的任何实际问题,都需要在维护阶段,得到持续并及时地解决。
如果您想深入了解上述软件开发生命周期中有关测试环境的具体内容,请参阅软件测试生命周期一文(https://www.edureka.co/blog/software-testing-life-cycle/)。下面我们来讨论一下所谓的V模型。
验证和确证模型
V模型是目前使用最为广泛的软件开发过程之一。实际上,V模型将测试环节贯穿到了从需求阶段到开始实施的整个过程之中。在业界,V模型也称为验证和确证模型(verification and validation model)。那么到底什么是软件测试中的验证和确证呢?
1. 验证:是一种静态分析的技术。它是在不执行代码的情况下,执行诸如:回顾、检查、以及逐行审验之类的测试。
2. 确证:是一种动态分析的技术,它是对代码执行功能性和非功能性的测试。
V模型中,测试并不是作为一个单独离散的阶段,而是跟随着需求阶段一起开始,与软件开发的整个进程同步推进,分不同的步骤对产品开展验证和确证活动。该模型的阶段名称如下图所示:
V模型的左侧是一系列开发活动,其中包括:用户需求、软件定义、概要设计、详细设计、以及软件编码;而右侧则是一系列对应的测试活动,其中包括:单元测试、集成测试、系统测试、以及验收测试。因此,左右不同阶段的联系可以简述为:单元测试着眼于开发出的代码是否符合详细设计的要求;集成测试检查的是各组成组件能否协同工作;系统测试关注的是集成到一起的产品是否符合规格说明的要求;而验收测试则注重的是产品能否让最终用户满意。
不能显示该小部件。