当前位置: 首页 > 科技观察

软件测试新手指南:周期、模型和文档

时间:2023-03-20 00:32:06 科技观察

【.com快译】世界上没有软件可以保证完美。但这不应该成为软件缺陷的借口。为了提高产品质量,保证软件应用的有效性和应用的顺利运行,我们需要进行各种有计划、有步骤的软件测试。在本文中,我们将向您介绍软件测试的基本方面,以帮助您控制软件质量并交付满意的产品。软件测试简介从概念上讲,软件测试是评价所开发软件的功能,审查应用程序是否满足既定要求,识别程序中可能存在的缺陷,提高产品质量的过程。它的输出是发现目标系统与实际需求的差距,以及自身的错误和不足。在业界,我们通常将软件测试称为验证和验证软件产品的过程。因此,它关注软件产品的以下三个方面:是否满足指导其设计和开发的业务和技术需求能否按需运行并提供稳定的服务给定的服务功能能否在软件开发生命周期中迭代执行周期首先,我们先来了解一下软件开发生命周期(SoftwareDevelopmentLifeCycle,SDLC)的概念。它是整个软件行业用于设计、开发和测试高质量软件的过程。SDLC的目标是在规定的时间和成本预算内生产出满足或超过客户期望的高质量软件。下图概述了SDLC涉及的各个阶段。需求阶段需求的收集和分析是软件开发生命周期中最重要的阶段。业务分析师从客户和用户那里收集他们的业务需求,并将这些需求点记录在现有的业务需求规范中(具体文件名称会因组织而异)。在分析阶段,收集和分析需求后,下一步是定义和记录产品的规格需求,然后获得客户的确认。我们一般需要通过软件需求规范(SoftwareRequirementSpecification,SRS)文档来实现。SRS一般包括项目生命周期中与设计和开发相关的所有产品需求。设计阶段这个阶段分为两个步骤:高层设计(High-LevelDesign,HLD):有时也称为概要设计,交付要开发的软件产品的架构,一般由架构师和高级高级开发人员完成。低级设计(Low-LevelDesign,LLD):有时也称为详细设计,它描述了产品的每一个功能以及每个组件应该如何工作。通常由高级高级开发人员完成。可以看出,这一阶段的输出:高层文件和低层文件,将作为下一阶段的输入。各级(高级到初级)的开发人员都参与这个阶段,并开始编写和构建软件的相关代码。在测试阶段,编码完成后,软件会被送到测试部门,对可能存在的缺陷进行综合测试。他们通过手动和自动测试工具来测试软件,以确保软件的每个组件都正常工作。软件只有通过了测试,才能保证质量,才能进入后续的实施阶段。部署和维护阶段最后,需要交付和部署软件产品以供客户使用。此阶段通常由部署和实施工程师完成。客户在使用系统和服务的过程中,遇到的任何实际问题都需要在维护阶段持续及时地解决。如果想详细了解以上软件开发生命周期中测试环境的具体内容,请参考文章软件测试生命周期(https://www.edureka.co/blog/software-testing-life-循环/)。现在让我们讨论所谓的V模型。验证和确认模型V模型是当今使用最广泛的软件开发过程之一。实际上,V模型贯穿了从需求阶段到实现过程的测试过程。在业界,V模型也被称为验证验证模型。那么软件测试中的验证和确认到底是什么?验证:它是一种静态分析技术。它在不执行代码的情况下执行审查、检查和逐行验证等测试。验证:是一种动态分析技术,可对代码执行功能和非功能测试。在V模型中,测试不是一个单独的离散阶段,而是从需求阶段开始,与软件开发的全过程同步推进,分阶段对产品进行验证和验证活动。模型的阶段名称如下图所示:从上图可以看出,V模型的左侧是一系列的开发活动,包括:用户需求、软件定义、概要设计、详细设计和软件编码;而右侧则是一系列相应的测试活动,包括:单元测试、集成测试、系统测试、验收测试。因此,不同阶段之间的关系可以简单描述为:单元测试侧重于开发的代码是否满足详细设计的要求;集成测试检查组件是否可以协同工作;系统测试重点关注集成产品是否满足规范要求;验收测试侧重于产品是否能让最终用户满意。软件测试方法一般来说,我们会采用以下三种方法进行软件相关的测试,它们是:黑盒测试:测试人员不知道被测项目的内部结构、设计和实现原理。白盒测试:测试人员充分了解被测项目的内部结构、设计和实现原理。灰盒测试:测试人员只知道被测项目内部有限的功能信息。软件测试阶段我们使用软件测试的不同阶段来验证目标软件系统的每个单元或组件。因为系统测试的主要目标是评估是否满足既定的开发需求。因此,这些不同的测试阶段不仅有助于检查软件的行为和性能,还可以识别其中的缺陷(bug),在整个开发生命周期中起到一定的协调作用。具体来说,软件测试分为以下四个阶段:单元测试:通过设定目标软件的最小测试单元,尽快找出各个模块或组件中明显的错误,从而提高单个软件的质量编程代码并减少后期返工的成本。集成测试:通过测试整个系统能否编译构建成功,发现系统架构与模块之间、模块与模块之间是否存在接口问题,并记录测试结果。系统测试:通过运行整个系统,根据系统测试用例进行综合测试,验证确认系统的功能和性能是否满足需求说明书中规定的要求。验收测试:系统安装部署后,邀请客户参与,确认软件系统是否能按既定要求顺利运行。软件测试文档各种测试用例的文档将帮助我们评估测试的工作量和跟踪测试的覆盖率。那么,常用的软件测试相关文档包括以下四种:1.测试计划:为目标应用提供测试大纲和策略。这些包括:测试的范围、方法、资源和进度。具体来说,还会涉及到各个阶段的测试任务、时间安排、测试执行团队、风险揭示等。2.测试场景:描述目标的特性、测试的方法、环境的要求、工具的选择、测试的范围。具体来说,还会涉及到各个阶段的起止、完成标准等条件。3、测试用例:由一组条件或变量组成,测试人员以此来判断被测系统是否满足要求,是否能正常工作。开发测试用例的过程也有助于发现应用程序的代码和设计中的问题。因此,在具体测试时,我们可以设计多种类型的测试用例。例如:功能测试用例负错误测试用例逻辑测试用例物理测试用例用户界面测试用例4.TraceabilityMatrix:也称为RequirementTraceabilityMatrix(RTM),它是用于创建产品的表格在起草SDLC模型时,一个起草了各种要求的表格。在实际应用中,我们既可以采用从设计到编码的正向跟踪法,也可以采用反向反向跟踪法。缺陷管理过程众所周知,软件开发是一个非常复杂的过程。它常常要求团队成员每天在严格的期限内完成大量编码工作,因此他们通常没有太多时间思考如何避免错误。因此,对于每一个软件开发项目,我们都需要一个能够发现错误和缺陷,并及时修复的缺陷管理流程。缺陷管理或错误跟踪通常在产品的测试阶段完成。我们可以通过两种不同的方式实施缺陷管理,即:开发人员自己测试他们的产品;或邀请用户参与测试。虽然最终用户可以提供不同的视角来识别缺陷,但他们的识别方法往往不够全面。因此,缺陷管理通常包括以下四个步骤:检测和识别缺陷,分析和定位缺陷,然后填写和提交缺陷报告,要求整改和修复缺陷,验证、修改和记录缺陷清单。缺陷生命周期一般来说,缺陷的生命周期是从发现bug开始,到最终修复并能保证不再发生为止。然而,有时缺陷生命周期可能会因组织战略、使用的软件开发模型(如敏捷或迭代)、项目时间表和团队结构等因素而有所不同。一般来说,它要经过的步骤和流程如下图所示:新建:第一次提交缺陷时,处于“新建”状态。但是,该缺陷可能需要进一步确认。分配:由测试人员创建后,由负责人审核缺陷的真实性,一旦确认,将分配给相应的开发人员或团队接手。开放:开发人员接受缺陷,分析并开发缺陷修复程序。修复:当开发人员完成必要的代码更改并验证修复效果后,他将错误状态设置为“已修复”,并将有关错误的信息发送回测试团队。测试:在此阶段,测试人员对开发人员发回的更改代码进行测试,以验证缺陷是否已修复。验证:测试人员开始对缺陷进行新一轮的测试。如果测试通过,他将错误的状态更改为“已验证”。重新打开:反之,如果测试失败,测试人员将状态更改为“重新打开”。缺陷将再次经历上述循环。已关闭:如果测试人员最终认为目标软件中不再存在此类缺陷,则将错误的状态更改为“已关闭”。重复:如果重复提交同一个缺陷,或者两个缺陷属于同一类型的bug,则该缺陷的状态将被设置为“重复提交”。拒绝:如果开发者认为这不是缺陷,他会拒绝它,并将错误的状态更改为“已拒绝”。Deferred:如果缺陷的状态设置为“Deferred”,则表示该缺陷将在下一个版本中修复。当然,将缺陷设置为“推迟”的原因有很多,例如:缺陷的优先??级不高,或者时间紧迫,或者不会对软件造成太大的影响。手动测试和自动化测试如果选择手动测试,意味着我们需要QA测试人员手动执行目标软件的每一个测试用例,手动提供不同的数据集,并仔细记录每个环节的成功率和失败率。由于需要人工对测试结果进行验证和判断输出,不仅费时费力,而且难免会出现人为疏忽。不用说,自动化测试意味着更高的效率、更少的人力、更低的错误机会以及更频繁的回归和功能测试执行时间。例如:对于一个登录页面,如果我们需要验证所有登录尝试的可能性及其结果,那么我们只需要编写一段测试代码,输入所有可能的数据并执行各种类型的登录方法,然后判断并记录所有登录尝试的成功或失败。此外,您还可以在不同的系统环境、不同的浏览器中进行模拟测试。此外,您还可以指定一天中的特定时间段自动生成结果文件和报告。现在市面上有很多自动化测试工具,比如Selenium等等。如果您有兴趣,可以通过链接https://www.edureka.co/blog/selenium-tutorial了解更多信息。以上就是我想给大家介绍的关于软件测试的一些入门知识。希望能帮助大家建立相关的知识概念,指导后续的学习和测试工作。原标题:软件测试生命周期,作者:SayantiniDeb

猜你喜欢