软件测试
软件测试
简介
生命周期
每一个产品都具有一个生命周期,从需求阶段——>设计阶段——>开发阶段——>测试阶段——>维护阶段——>死亡阶段
需求阶段
这是整个软件开发生命周期中最关键的阶段,在这个阶段,客户需要说明需求、规格、期望以及一些与产品相关的特殊要求。在这个阶段收集到的所有信息对于产品是否符合需求至关重要。
设计阶段
设计阶段包括了根据需求阶段对新软件的详细分析。这是系统开发生命周期中的最高优先级阶段,因为系统的逻辑设计需要转化为物理设计。所需阶段的输出是需求事务的集合,设计阶段为实现这些需求提供了方法,所有必须的基本工具的决定,例如编程语言的选择、数据库的选择、硬件的选择、架构的选择,提供了一个平台。软件软件可以在这个平台上运行而没有任何问题。使用生命技术和工具,如数据流图、流程图、决策表。决策树、数据字典和结构化字典用于描述系统设计。
开发阶段
在完成需求和设计阶段后,就会将设计实现到软件系统的具体开发中。在这个个阶段,工作可能会划分为一个个小单元,编码由开发人员根据前一阶段讨论的设计开始,并根据需求阶段的要求产生需求结果。前端开发人员开发简单且由吸引力的GUI和必要的接口,以便与后端操作进行交互,后端开发人员根据功能需求进行后端编码。
测试阶段
测试是完成软件系统的最后一步,在这里,我们将根据需求阶段中的要求对其进行测试。确认软件是否实际的符合需求。制定测试计划以开始测试,这个测试包含了所有的测试类型。如果测试过程中软件没有按照预期工作,那么就需要向开发提供有关该问题的信息,如果这是一个有效的缺陷或者值得修复,
那么它将会被修复,将其替换为新的,对此还需要进行验证测试。
部署阶段
当软件测试完成且结果符合预期,并且软件工作中没有余留问题,就可以将他进行交付使用。当客户收到产品时,建议他们优先进行β测试,在β测试中,客户可以要求软件中没有但在需求文档中或其他任何GUI更改中提及的任何更改,以使其更加用户友好。除此之外,如果客户在使用该软件的过程中遇见任何类型的缺陷,它将会通知该软件的开发团队解决问题,如果这是一个严重的问题,那么开发团队需要在短时间内解决问题,如果这是一个不那么严重的问题,那它将会被留置到下个版本,在解决了所有类型的错误和变更后,软件将会被部署到最终用户。
维护阶段
维护阶段是SDLC的最后和持久阶段,因为它是一直持续到软件生命周期结束的过程。当客户开始使用软件时,实际问题就已经开始产生,那时需要解决这些问题。这个阶段包含了对硬件以及软件进行更改以维持其运营效率,例如提高性能,增强安全功能以及更具客户的要求和即将到来的时间。这个不时处理产品的过程称之为维护。
所有这些都是软件开发生命周期(SDLC)的六个阶段,在这个阶段,软件开发过程发生。所有这些都是强制阶段,没有任何一个开发是不可能的,因为开发在软件的生命周期中持续进行维护”。
需求分析
手动测试程序的第一步是需求分析。在此阶段,测试人员分析SDLC(软件开发生命周期)的需求文档,以检查客户所述的要求。在检查要求后,测试人员制定测试计划以检查软件是否满足要求。
- 进入条件 - 对于测试计划需求规范的规划,应该提供应用程序体系结构文档和明确定义的验收标准。
- 活动行为 - 准备所有要求和查询的列表,并从技术经理/主管,系统架构,业务分析师和客户处获得解决。列出要执行的所有类型的测试(性能,功能和安全性)。列出测试环境详细信息,其中应包含执行测试用例的所有必要工具。
- 交付成果 - 列出可测试要求和测试环境详细信息的所有必要测试。
测试计划
创建测试计划的创建是STLC的关键阶段,它定义了所有测试策略。测试人员确定整个项目的估计工作量和成本。此阶段在成功完成需求分析阶段后进行。此阶段提供的测试策略和工作量估算文档。成功完成测试计划创建后,可以开始测试用例执行。
- 进入条件 - 需求文档活动行为 - 定义目标以及软件的范围。列出测试中涉及的方法。测试过程概述。
- 测试环境的解决。准备测试计划和控制程序。角色和责任的确定。列出测试可交付成果,定义风险(如果有)。
- 交付成果 - 测试策略文档。测试估算文件是此阶段的交付成果。
环境设置
测试环境的设置是一项独立的活动,可以与测试用例开发一起启动。这是手动测试程序的重要部分,因为没有环境测试无法进行。环境设置需要一组必要的软件和硬件来创建测试环境。测试团队不参与设置测试环境,而是创建测试环境的高级开发人员完成。
- 进入条件 - 测试策略和测试计划文档。测试用例文档。测试数据。
- 活动行为 - 通过分析需求规范来准备软件和硬件列表。在设置测试环境之后,执行测试用例以检查测试环境的准备情况。
- 交付成果 - 执行报告。缺陷报告。
测试用例
执行测试用例在成功完成测试计划后执行。在此阶段,测试团队启动案例开发和执行活动。测试团队记下详细的测试用例,并在需要时准备测试数据。准备好的测试用例由团队的同行成员或质量保证负责人进行审核。 RTM(需求可追溯性矩阵)也在此阶段准备。需求可跟踪性矩阵是行业级格式,用于跟踪需求。每个测试用例都与需求规范一起映射。可以通过RTM完成向后和向前可追溯性。
- 进入条件 - 需求文档。
- 活动行为 - 创建测试用例。执行测试用例。根据要求绘制测试用例。
- 交付成果 - 测试执行结果。具有缺陷详细说明的功能列表。
缺陷记录
测试人员和开发人员根据测试覆盖范围,质量,时间消耗,成本和关键业务目标评估软件的完成标准。此阶段确定了软件的特性和缺点。深入分析测试用例和错误报告,以检测缺陷的类型及其严重性。 缺陷记录分析主要用于根据严重程度和类型找出缺陷分布。如果检测到任何缺陷,则将软件返回给开发团队以修复缺陷,然后在测试的所有方面对软件进行重新测试。 一旦测试周期完全完成,然后测试关闭报告,并准备测试指标。
- 进入条件 - 测试用例执行报告。缺陷报告
- 活动行为 - 它根据测试覆盖率,质量,时间消耗,成本和关键业务目标评估软件的完成标准。缺陷记录分析通过对类型和严重性进行分类来找出缺陷分布。
- 交付成果 - 关闭报告,测试指标
测试周期
关闭测试周期结束报告包括与软件设计,开发,测试结果和缺陷报告相关的所有文档。如果存在具有相同规范的软件,此阶段将评估开发策略,测试过程,可能的缺陷,以便将来使用这些实践。
- 进入条件 - 所有与软件相关的文档和报告。
- 活动行为 - 如果存在具有相同规范的软件,则评估开发策略,测试过程,将来可能存在的缺陷以使用这些实践。
- 交付成果 - 测试结束报告。
质量保证和软件质量控制
软件质量保证(也称为QA)是一系列任务,用于防止缺陷并确保为特定应用程序设计的技术,方法,方法和过程必须正确实施。这是软件系统开发过程中的持续过程。 应用程序单元的开发按照其开发顺序在质量保证规范下进行检查。 质量保证测试确保了高质量软件的开发,因为它主要关注软件开发过程中的高质量流程,良好的质量管理体系和定期的一致性审核。它是一种管理工具,包括计划和系统的活动和文件,以防止与质量有关的问题。
软件质量保证的责任不是任何特定的团队,而是开发团队的每个成员的责任。
- 软件质量保证可防止缺陷。
- 软件质量保证是面向过程的。
- 软件质量保证在流程和预防性方面具有前瞻性。
- 软件质量保证是一种管理工具。
- 每个开发人员都负责软件质量保证。
软件质量控制
软件质量控制也称为质量控制,是一系列任务,通过识别缺陷和纠正开发软件中的缺陷来确保软件质量。这是一个被动的过程,此过程的主要目的是在发布软件之前纠正所有类型的缺陷。通过纠正工具消除问题根源(导致质量低下),从而使软件能够满足客户的要求和高质量,从而完成该过程。
质量控制的责任在于一个特定的团队,称为测试团队,通过验证和纠正工具测试软件的缺陷。
- 质量控制提供缺陷识别。
- 质量控制是以产品为导向。
- 质量控制是一种纠正工具。
- 测试团队负责质量控制。
- 质量控制是一个反应过程。
质量保证与质量控制的区别
软件质量保证与质量控制的区别如下表所示:
|项目|质量保证|质量控制|
|——|——|——|
|定义|质量保证是一组活动,可确保始终保持软件开发过程中使用的过程质量。|QC是一组用于检测已开发软件中的缺陷的活动。|
|关注重点|QA的重点是通过关注流程来防止开发软件中的缺陷。|QC的重点是通过关注测试过程来识别开发软件中的缺陷。|
|如何做|建立高质量的管理系统,并定期审核开发软件的操作是否符合要求。|通过使用开发软件中的测试技术和工具来检测和消除质量问题元素。|
|为什么做|质量保证通过使用包括文档在内的系统活动来确保质量问题的预防。|QC通过使用流程和技术来实现和维护高质量的软件,从而确保识别和消除缺陷。|
|面向|质量保证是面向流程的。|QC是面向产品的。|
|责任|开发团队的每个成员都负责QA|只有特定的测试团队负责QC|
|示例|验证软件流程|检验软件功能和流程|