📜  软件测试——大型机测试

📅  最后修改于: 2022-05-13 01:56:14.225000             🧑  作者: Mango

软件测试——大型机测试

大型机测试用于评估基于大型机系统构建的软件、应用程序和服务。大型机测试的主要目标是通过验证和确认方法确保应用程序或服务的可靠性、性能和卓越性,并确定它是否准备好启动。因为 CICS 屏幕是为特定应用程序定制的,所以测试人员只需知道如何在执行大型机测试时导航它们。此外,如果更改了 COBOL、JCL 或其他语言的代码,测试人员不必担心系统上设置的仿真器。

在这里,我们将讨论以下几点:

  1. 什么是大型计算机?
  2. 大型机测试方法
  3. 大型机属性
  4. 大型机测试步骤
  5. 要遵循的大型机测试程序
  6. 大型机手动测试的分类
  7. 大型机自动化测试工具
  8. 大型机测试的最佳实践
  9. 大型机测试挑战和故障排除
  10. 大型机测试的好处

什么是大型计算机?

大型机是一种高性能、高速的多用户计算机系统。大型机系统是可用的最安全、可扩展和可靠的机器系统。换句话说,这些系统用于需要高可用性和安全性的大规模计算。大型机系统通常用于零售、保险、金融和其他必须多次处理大量数据的重要领域。在以下因素的帮助下,一个人每秒可以执行数百万条指令 [高达 569,632 MIPS]:

  • 最大输入/输出带宽:如果输入和输出带宽过大,驱动器和处理器之间的链接就会出现一些阻塞点。
  • 可靠性:大型机经常同意在系统运行时正常退化和服务。
  • 可靠的单线程:性能对于实际的数据库操作至关重要。
  • 最大输入/输出连接:最大输入/输出连接表明大型机在交付大型磁盘场方面表现出色。

大型机测试方法

  • 提交:填写背景就业申请。
  • CANCEL:这是一个已被取消的后台作业。
  • ALLOCATE:此命令分配数据集。
  • COPY:此命令复制数据集。
  • RENAME:用于更改数据集的名称。
  • 删除:删除数据集。
  • JOB SCAN:将 JCL 绑定到应用程序、库、文件等,而无需执行它。

大型机测试的先决条件:

  • 访问应用程序需要登录 ID 和密码。
  • 对 ISPF 命令的基本了解。
  • 文件名、文件限定符和种类都已列出。

在开始大型机测试之前,应检查以下几点。

1.工作:

  • 在执行作业之前,请执行作业扫描(命令 - JOBSCAN)以检查问题。
  • 测试类应在 CLASS 参数中指定。
  • 通过利用 MSGCLASS 参数,可以将任务输出定向到假脱机、JHS 或任何其他人想要的地方。
  • 将作业的电子邮件重定向到假脱机或测试邮件 ID。
  • 对于初始测试,注释掉 FTP 步骤并将作业指向测试服务器。
  • 如果作业生成 IMR(事件管理记录),只需在作业或参数卡上注释“TESTING PURPOSE”即可。
  • 作业的所有生产库都应切换到测试库。
  • 让工作无人看管不是一个好主意。
  • TIME参数应该加上一个指定的时间,以避免作业出现错误时无限循环运行。
  • 保存作业的输出,其中包括线轴。 XDC 可用于保存线轴。

2.文件:

  • 只制作所需大小的测试文件。将数据存储到具有相同名称的连续文件中时,使用 GDG(生成数据组 - 具有相同名称但连续版本号的文件 - MYLIB.LIB.TEST.G0001V00、MYLIB.LIB.TEST.G0002V00 等)。
  • 文件的 DISP(处置 - 定义在正常或异常步骤或任务终止后保留或删除数据集的过程)参数应正确编码。
  • 为避免作业进入 HOLD,请确保用于作业执行的所有文件都已正确保存和关闭。
  • 如果您使用 GDG 进行测试,请确保您指向正确的版本。

3. 数据库:

  • 确保在运行作业或在线程序时没有插入、更改或删除不需要的数据。
  • 此外,请确保您在正确的 DB2 区域中进行测试。

4. 测试用例:

  • 始终检查边界条件,例如空文件、正在处理的第一条记录、正在处理的最后一条记录等。
  • 尽可能包括阳性和阴性测试条件。
  • 如果在软件中使用标准程序(例如检查点重启、异常结束模块、控制文件等),则包括测试用例以验证模块是否已正确使用。

5、测试数据:

  • 在开始测试之前,请确保测试数据已准备就绪。
  • 切勿在未事先通知用户的情况下更改测试区域的数据。其他团队可能正在使用相同的数据,他们的测试可能会失败。
  • 在复制或访问生产文件之前,应获得足够的授权。

大型机属性

以下是各种大型机属性:

  • 多道程序:
    • 多道程序功能是帮助我们充分利用 CPU 的功能。
    • 计算机同时运行许多程序。
  • 分时:
    • 前台处理是指分时处理,而后台处理是指批处理作业。因此,它被称为交互式处理,因为它允许用户直接与计算机进行交互。
    • 在分时系统中,每个用户都有终端设备访问系统。
  • 虚拟存储:
    • 作为物理存储的扩展,虚拟存储利用了磁盘存储。
    • 它是一种有效利用内存来存储和完成大量操作的方法。
  • 假脱机:
    • Spool 代表 Simultaneous Peripheral Operations Online,它用于收集程序或应用程序的输出。
    • 如有必要,假脱机输出将发送到打印机等输出设备。
  • 批量处理:
    • 批处理是一种技术,它允许我们以称为作业的方式完成任何任务。
    • 可以根据手头的任务以特定顺序运行一个或多个应用程序。
    • 作业调度程序得出关于作业执行顺序的结论。
    • 为了最大限度地提高平均产量,工作是根据其优先级和等级安排的。
    • 在作业控制语言的帮助下,批处理为我们提供了必要的信息(JCL)。
大型机属性

大型机属性

大型机测试步骤

大型机测试可以通过两种方式完成 - 手动或借助 QTP、REXX 和 IBM 应用程序性能分析器等自动化工具。以下是大型机测试的步骤:

第 1 步:制定计划:首先,业务或开发团队根据业务需求文档、系统需求文档、其他项目文档和输入构建测试计划。它还规定了在发布周期中如何修改特定项目或流程。同时,测试团队将与开发和项目管理团队合作,提前准备测试场景和测试用例。

第 2 步:制定时间表:一旦需求文档被适当地编写,它将被移交给开发和测试团队。此外,应根据精确的项目交付计划创建测试计划。

第三步:交付成果:收到论文后,他们将审查交付成果。可交付成果也应该明确定义,没有歧义,并满足测试目标的范围。

第 4 步:实施:接下来应按照计划和可交付成果进行实施。在大多数情况下,一个版本中的修改需求将直接影响 15-25% 的应用程序。其余 60-75% 的发布将依赖于开箱即用的功能,例如应用程序和流程测试。因此,需要对 Mainframe 应用程序进行两次测试——

  • 测试要求:将针对需求文档中指定的功能或更改对应用程序进行测试。
  • 测试集成:此测试活动仅用于测试目的。完整的程序将进行测试,以及接收或传输数据到重要应用程序的任何其他应用程序。

第5步:报告:测试结果将在之后定期与开发团队分享。测试团队应与开发团队联系,以便在关键情况下进行快速修改以保持一致性。

要遵循的大型机测试程序

进行大型机测试时,请牢记以下步骤:

第 1 步:冒烟测试:从冒烟测试开始,看看部署的代码是否在正确的测试环境中。它还确保代码没有重要缺陷,从而为测试人员节省了时间和精力,否则他们将不得不测试一个糟糕的构建。

第 2 步:测试/系统测试:在烟雾测试之后,将进行一轮功能或系统测试,以独立评估多个模型的功能并相互关联。下面列出了在实施系统测试时必须执行的测试类型 -

  • 批量测试:进行批量测试,以验证批处理作业对输出文件和数据更改的测试结果是否符合测试规范。
  • 在线测试:通过在线测试评估大型机应用程序的前端功能。在线测试涵盖了各种主题,包括用户友好性、数据输入验证、外观和屏幕导航。应在应用程序中测试确切的输入字段,例如对计划的兴趣、保险计划等。
  • 在线-批量集成测试:在具有批处理和在线应用程序的系统上,可以进行在线-批量集成测试。在线流程与后端流程的集成功能也将在这里进行测试。本质上,此测试验证数据流的准确性以及屏幕与后端系统之间的交互。此外,批处理任务用于验证在线屏幕上的数据流和通信。
  • 数据库测试:进行数据库测试以确保事务存储的数据满足系统的要求。包含来自大型机应用程序(如 IMS、IDMS、DB2、VSAM/ISAM、顺序数据集和 GDG)的数据的数据库验证了它们的布局和数据存储。也可以在数据库测试期间验证数据完整性和其他数据库参数以获得最佳性能。

第 3 步:系统集成测试:系统集成测试用于验证与被测系统相关的系统的功能。因为测试接口和各种类型的消息(如作业成功、作业失败、数据库更新等)至关重要,所以它在单元测试之后运行。还将检查模块和应用程序之间的数据流的准确性。执行系统集成测试以确保构建已准备好部署。在系统集成测试期间可以执行以下测试-

  • 批量测试
  • 在线测试
  • 在线-批量集成测试

第 4 步:回归测试:回归测试是任何测试中最关键的部分。回归测试确保批处理作业和在线屏幕不能直接与被测系统相关,并且当前项目版本对它们没有影响。回归测试确保对模块所做的更改不会影响父应用程序的集成应用程序的整体功能。为了实现成功的回归测试,应根据其复杂性接受指定的测试用例集合,并应构建测试用例存储库。并且每当向版本中添加新功能时,都应更新特定测试。

第 5 步:性能测试:大型机测试的下一步是性能测试。目的是发现前端数据、升级在线数据库以及在性能测试期间保护应用程序的可扩展性等关键领域的瓶颈。在大型机应用程序中可能会面临以下性能问题 -

  • 互联网响应时间可能很慢,引起用户不满。
  • 批处理作业和后端流程可能需要比预期更长的时间,从而限制了在线用户对系统的访问。
  • 可扩展性问题。

要解决上面列出的问题,请通过以下测试运行应用程序 -

  • 系统集成参数。
  • 应用程序和数据库设计的编码。
  • 系统和数据库的参数。
  • 后端作业调度。

第 6 步:安全测试:评估威胁、危害和漏洞,并建议对应用程序和网络采取补救措施。身份和访问管理、风险和合规性管理、数据保护和隐私政策遵守中的用例都应该包含在安全测试中。换句话说,进行安全测试是为了了解应用程序的设计和构造如何能够抵御反安全攻击。应该测试的两种安全系统是大型机安全和网络安全。在安全测试期间必须测试以下因素 -

  • 授权
  • 正直
  • 验证
  • 保密
  • 可用性

第 7 步:敏捷方法:敏捷方法用于简化应用程序的逐步开发并快速响应修改。

大型机手动测试的分类

手动测试分为两部分:

  • 在线测试:成员注册屏幕用于在线测试。使用通过显示器输入的数据检查数据库,就像网页一样。
  • 批处理作业测试:此过程分两个阶段进行测试 - 每个作业都独立验证,任务之间的集成通过向第一个作业提供输入平面文件并验证数据库来验证。 (由于增加了谨慎,必须确认中间结果。)

大型机自动化测试工具

以下是一些大型机自动化测试工具:

1. Subject7: Subject7 是一个简单的、基于云的 SaaS 测试自动化平台,通过一系列指令提供端到端的测试机械化。它是当前自动化解决方案中的知名名称。这个无脚本、语言无关的工具具有简单的在线界面,旨在帮助非技术测试人员和测试自动化专家快速创建复杂的自动化测试场景。

特征:

  • REST、JIRA 和Jenkins可胜任的 DevOps 管道都简单地集成在一起。
  • Appium 和Selenium是用于测试移动和在线应用程序的开源标准。
  • Web 界面易于使用,适合非程序员使用。

2. LambdaTest: LambdaTest 是一个跨浏览器测试平台,具有可扩展性、基于云的特性,专为手动和自动化软件测试而设计。它允许您在 2000 多种不同的浏览器、浏览器版本、操作系统和分辨率上测试您的公共或本地托管网站或 Web 应用程序。它提供了网站外观的快速预览,并允许您一键在 36 种不同的设备上测试布局。最重要的是,该平台允许人们在可扩展的在线Selenium Grid 上跨 iOS 和 Android 上的移动浏览器运行 Appium 和Selenium脚本。

特征:

  • 完全自动化和实时交互。
  • 用户界面非常棒且易于使用。
  • 对于实时测试,有大量的浏览器和移动设备可用。

3. HeadSpin:另一个流行的互联智能平台是 HeadSpin,它提供移动、5G、Web 和 IoT 应用程序。它通过与所有自动化和测试框架集成来统一网络、应用程序和设备监控和测试。人们可以使用 HeadSpin 测试、监控和分析在任何设备、任何网络、世界任何地方运行的任何应用程序。

特征:

  • 本地代码的分析和调试。
  • 远程调试。
  • 测试本地化。
  • 有近 500 个测试并行运行。
  • 在共享的云设备上,可以访问 30 多个国家/地区的 300 多台设备。

大型机测试的最佳实践

  1. 对被测工作进行试运行始终是一个聪明的主意。空输入文件用于试运行。对于受测试周期更改影响的任何作业,都应执行此程序。
  2. 测试任务设置应在测试周期开始之前完成。这将有助于及早发现任何 JCL 错误,从而节省执行时间。
  3. 当通过 SPUFI(模拟器用于访问 DB2 表的选项)访问 DB2 表时,始终将 auto-commit 设置为“NO”以避免意外更新。
  4. 不要低估有效的项目管理和解决方案架构师支持对您的项目的重要性。通常,这些项目专注于长期以来对业务至关重要的应用程序。确认技术清单以及获取测试和用例数据是大型机迁移计划的两个最大的时间和费用驱动因素。确保您的专业知识可用并投资于该项目。

大型机测试挑战和故障排除

每种类型的测试都是一连串的试验和错误,直到您找到可能的最佳系统。在大型机上进行测试也不例外。在整个过程中,测试团队将面临问题或故障排除。下面讨论了测试人员经常报告的一些问题,以及可用于发现解决方案的建议方法。

1. 不匹配的要求和手册:虽然可能有用户手册或培训指南,但这些与规定的要求不同。

  • 解决方案:从定义系统需求的那一刻起,测试团队就应该参与到软件开发生命周期中。如果他们在流程的早期参与,他们将能够验证所指定的标准是可测试的和可行的。这节省了团队的时间、金钱和精力,同时还确保了软件开发过程不会在测试阶段停滞不前。

2. 识别所需数据:有时可能需要利用当前数据来满足特定需求。从可用数据中识别所需数据有时可能很困难。

  • 解决方案:可以根据需要使用自主开发的工具来设置数据。应提前开发查询以检索现有数据。如果出现问题,可以向数据管理团队提出创建或克隆所需数据的请求。

3. 无影响分析:代码影响可能会完全改变系统的外观和功能。可能需要更改测试用例、脚本和数据。

  • 解决方案:影响分析和范围变更管理策略应该到位。

4. Ad-hoc Request:上游或下游应用程序的故障可能需要端到端测试。这些意料之外的需求能够通过在执行周期中增加时间、精力和其他资源来破坏测试过程的预定时间表。

  • 解决方案:为了在整个测试过程中为不可预见的问题做好准备,自动化脚本、回归脚本、骨架脚本和任何其他备份计划都应该在问题出现时立即使用。这减少了完成项目所需的总时间和工作量。

大型机测试的好处

以下是成功完成大型机测试的一些好处:

  1. 它充分利用了可用的资源。
  2. 它有助于避免重复返工。
  3. 它改善了整体用户体验。
  4. 它减少了生产停机时间。
  5. 它帮助我们提高客户保留率。
  6. 它还有助于我们降低 IT 运营的总体成本。