Skip to content

Manual and automated test cases consistency

Uladzislau edited this page Feb 18, 2025 · 35 revisions

This page provides a description of a regression test suite for the plugin

Some instructions

There is a regression test suite exists for the plugin. To mark the consistency between manual and automated regression test cases, some indications are applied:

  • $${\color{orange}\textsf{this\ text\ means\ that\ the\ steps\ are\ present\ in\ manual\ test\ suite\ and\ are\ missing\ in\ automated\ test\ suite}}$$
  • $${\color{green}\textsf{this\ text\ means\ that\ the\ testcase\ is\ automated\ and\ could\ be\ run}}$$

To define a new test in this page, it should contain such sections as:

  1. Prereqs - the prerequisites for the test to be completed successfully
  2. Execution - the test execution steps to achieve expected results
  3. Expected results - the expected results of the test execution

Regression test suite

$${\color{green}\textsf{Allocate\ data\ sets}}$$

Prereqs:

  • a mask for the related datasets is created (e.g. .*).

Execution:

  1. Click with the right mouse button on any working set

  2. Click New -> Dataset

  3. Input desired valid parameters into a data set allocation window and click OK.

  4. Create datasets of each of the formats:

    • F
    • FB
    • V
    • VA
    • VB
    • $${\color{orange}\textsf{U\ (should\ be\ handled\ separately\ later)}}$$
  5. Use dataset organizations:

    • Partitioned (PO)
    • Sequential (PS)
    • Partitioned Extended (PO-E)
    • Dataset parameters
    • Allocation unit = TRK $${\color{orange}\textsf{/\ CYL}}$$
    • Primary allocation = 10
    • Secondary allocation = 1
    • Directory = 1
    • LRECL = 3200 if Format is "F" else 80
    • Block size = 3200
    • Average block Length = 0

Expected results:

  • after the refresh on the mask is triggered, it should show the list of the newly created datasets

Allocating data sets with invalid parameters

  1. Check all fields interface validation:

    • Try to input invalid data set name
    • $${\color{orange}\textsf{Try\ to\ input\ text\ or\ special\ chars\ into\ numeric\ fields}}$$
  2. Try to create data set with invalid combination of parameters (fill several different here):

    1. Record format: V Record length: 1 Block size: 0
    2. Record format: FB Record length: 255 Block size: 1
    3. Record format: F Record length: 80 Block size: 1
    4. Record format: VB Record length: 2 Block size: 1
  3. $${\color{orange}\textsf{Try\ to\ create\ data\ set\ with\ invalid\ combination\ and\ valid\ dataset\ and\ member\ name\ of\ parameters\ (fill\ several\ different\ here).}}$$

    1. $${\color{orange}\textsf{preset:\ custom\ dataset,\ Record\ format:\ V\ Record\ length:\ 1}}$$
    2. $${\color{orange}\textsf{preset:\ sequential\ dataset,\ Record\ format:\ V\ Record\ length:\ 1}}$$
    3. $${\color{orange}\textsf{preset:\ PDS\ dataset,\ Record\ format:\ V\ Record\ length:\ 1}}$$
    4. $${\color{orange}\textsf{preset:\ PDS\ with\ empty\ member\ dataset,\ Record\ format:\ V\ Record\ length:\ 1}}$$
    5. $${\color{orange}\textsf{preset:\ PDS\ with\ sample\ JCL\ member\ dataset,\ Record\ format:\ V\ Record\ length:\ 1}}$$
  4. Check next field config:

# DSN Org Unit Prim Alloc Sec Alloc Dir RecFM LRECL Blksz Avg Blk Len
1 A23456789.A PO TRK 10 1 1 FB 80 3200 0
2 A23.A23 PO TRK -2 0 1 FB 80 3200 0
3 A23.A23 PO TRK 10 0 0 FB 80 3200 0
4 A23.A23 PO TRK 10 0 1 FB 0 3200 0
5 A23.A23 PO TRK 10 -10 1 FB 80 3200 0
6 A23.A23 PO TRK 10 0 1 FB 80 -1 0
7 A23.A23 PO TRK 10 0 1 FB 80 3200 -1

Create member in partitioned data set

  1. $${\color{orange}\textsf{Click\ with\ the\ right\ mouse\ button\ on\ any\ library\ type\ data\ set.\ Click\ New\ ->\ Member.\ Enter\ the\ new\ member\ name\ and\ click\ ok.}}$$
  2. $${\color{orange}\textsf{Try\ to\ create\ members\ with\ invalid\ names\ (too\ long,\ start\ with\ digit,\ contain\ incorrect\ chars).}}$$

Verify data sets and members properties

  1. $${\color{orange}\textsf{Right\ click\ on\ dataset\ ->\ Properties}}$$
  2. Create:
    1. Dataset:
      • DsOrg: PS, Alloc unit: TRK, RECFM: VB, LRECL: 255
    2. Member:
      • Name: TESTM, vers: 1, mod: 0, c4date: 2015/08/12, m4date: 2015/08/12, cnorc: 22, inorc: 22, mnorc: 0, mtime: 05:48, msec: 43, user: IBMUSER, sclm: N
    3. USS file:
      • Name: testFile, mode: -rwxr--rw-, size: 20, uid: 0, user: ZOSMFAD, gid: 1, group: OMVSGRP, mtime: 2015-11-24T02:12:04
    4. USS directory
      • Name: testFolder, mode: drwxr--rw-, size: 888, uid: 0, user: ZOSMFAD, gid: 1, group: OMVSGRP, mtime: 2013-05-07T11:23:08
  3. Call and check property for the member
  4. Call and check property for the dataset
  5. Call and check property for the USS file
  6. Call and check property for the USS dir

Copy/Cut/Paste - Sequential, PDS, Member

  1. $${\color{orange}\textsf{Right\ click\ on\ the\ member\ ->\ Click\ copy\ (or\ Choose\ member\ ->\ Click\ CTRL\ +\ C)}}$$
  2. $${\color{orange}\textsf{Right\ click\ on\ the\ another\ dataset\ ->\ Click\ paste\ (or \ Choose\ another\ dataset\ ->\ Click\ CTRL\ +\ V).}}$$
  3. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Skip\ for\ All.}}$$
  4. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Overwrite\ for\ All.}}$$
  5. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Decide\ for\ Each\ ->\ Skip.}}$$
  6. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Decide\ for\ Each\ ->\ Overwrite.}}$$
  7. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Decide\ for\ Each\ ->\ Use\ new\ name.}}$$
  8. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ USS\ folder.}}$$
  9. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Skip\ for\ All.}}$$
  10. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Overwrite\ for\ All.}}$$
  11. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Decide\ for\ Each\ ->\ Skip.}}$$
  12. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Decide\ for\ Each\ ->\ Overwrite.}}$$
  13. $${\color{orange}\textsf{Repeat\ step\ 1\ by\ copying\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Decide\ for\ Each\ ->\ Use\ new\ name.}}$$
  14. $${\color{orange}\textsf{Repeat\ steps\ 1-12\ for\ sequential\ dataset.}}$$
  15. $${\color{orange}\textsf{Repeat\ steps\ 7-12\ for\ PDS.}}$$
  16. $${\color{orange}\textsf{Repeat\ steps\ 1-14\ for\ CUT.}}$$
  17. $${\color{orange}\textsf{Repeat\ steps\ 1-15\ for\ multiple\ files.}}$$
  18. $${\color{orange}\textsf{Repeat\ 2\ for\ local\ file\ and\ choose\ Decide\ for\ Each\ ->\ Use\ new\ name}}$$
  19. $${\color{orange}\textsf{Do\ copy\ non\ pds\ dataset\ to\ dataset\ with\ member\ name\ same\ to\ non\ pds\ (dataset\ ZOSMFAD.TEST\ and\ member\ name\ TEST).\ then\ choose\ "Decide\ for\ Each\ ->\ use\ new\ name"}}$$
  20. $${\color{orange}\textsf{Repeat\ steps\ 1-16\ in\ cross-system\ case}}$$

Drag&Drop - Sequential, PDS, Member

  1. $${\color{orange}\textsf{Drag\ a\ member\ to\ another\ dataset.\ Click\ Yes.}}$$
  2. $${\color{orange}\textsf{Drag\ a\ member\ to\ another\ dataset.\ Click\ No\ (or\ close\ the\ window).}}$$
  3. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Yes\ ->\ Skip\ for\ All.}}$$
  4. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Yes\ ->\ Overwrite\ for\ All.}}$$
  5. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Yes\ ->\ Decide\ for\ Each\ ->\ Skip.}}$$
  6. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Yes\ ->\ Decide\ for\ Each\ ->\ Overwrite.}}$$
  7. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ dataset\ that\ already\ has\ a\ member\ with\ the\ same\ name.\ Click\ Yes\ ->\ Decide\ for\ Each\ ->\ Use\ new\ name.}}$$
  8. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ USS\ folder.\ Click\ Yes.}}$$
  9. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ USS\ folder.\ Click\ No\ (or\ close\ the\ window).}}$$
  10. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Yes\ ->\ Skip\ for\ All.}}$$
  11. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Yes\ ->\ Overwrite\ for\ All.}}$$
  12. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Yes\ ->\ Decide\ for\ Each\ ->\ Skip.}}$$
  13. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Yes\ ->\ Decide\ for\ Each\ ->\ Overwrite.}}$$
  14. $${\color{orange}\textsf{Drag\ a\ member\ to\ the\ USS\ folder\ that\ already\ has\ a\ file\ with\ the\ same\ name.\ Click\ Yes\ ->\ Decide\ for\ Each\ ->\ Use\ new\ name.}}$$
  15. $${\color{orange}\textsf{Repeat\ steps\ 1-14\ for\ sequential\ dataset.}}$$
  16. $${\color{orange}\textsf{Repeat\ steps\ 8-14\ for\ PDS.}}$$
  17. $${\color{orange}\textsf{Repeat\ steps\ 1-16\ for\ multiple\ files.}}$$

Files Explorer - Sorting

  1. $${\color{orange}\textsf{Check\ sorting\ by:}}$$
    • $${\color{orange}\textsf{name}}$$
    • $${\color{orange}\textsf{modification\ date}}$$
    • $${\color{orange}\textsf{type}}$$
  2. $${\color{orange}\textsf{When\ sorting,\ the\ loading\ element\ is\ displayed\ instead\ of\ the\ data.}}$$

Open datasets and members for view

  1. $${\color{orange}\textsf{Use\ previously\ created\ WS\ with\ valid\ mask}}$$
  2. $${\color{orange}\textsf{Open\ Sequental\ data\ set\ for\ view.\ Try\ to\ input\ something}}$$
  3. $${\color{orange}\textsf{Open\ member\ of\ partitioned\ data\ set.\ Input\ something}}$$
  4. $${\color{orange}\textsf{Try\ to\ open\ alias}}$$

Open datasets and members for edit

  1. $${\color{orange}\textsf{Edit\ sequential\ data\ set}}$$
  2. $${\color{orange}\textsf{Edit\ member\ of\ partitioned\ data\ set}}$$
  3. $${\color{orange}\textsf{Edit\ two\ members\ with\ the\ same\ name\ and\ close}}$$

Copy/Cut/Paste - PDS / PDS/E

  1. $${\color{orange}\textsf{Copy\ member\ /\ USS\ file\ /\ local\ file\ to\ a\ PDS\ dataset}}$$
  2. $${\color{orange}\textsf{Copy\ member\ /\ USS\ file\ /\ local\ file\ to\ a\ PDS/E\ dataset}}$$
  3. $${\color{orange}\textsf{Do\ copy\ /\ cut\ member\ /\ USS\ file\ /\ local\ file\ to\ a\ PDS\ dataset}}$$
  4. $${\color{orange}\textsf{Do\ copy\ /\ cut\ member\ /\ USS\ file\ /\ local\ file\ to\ a\ PDS/E\ dataset}}$$

Validation of input into fields for dataset allocation

  1. $${\color{orange}\textsf{For\ numeric\ fields,\ check\ messages\ for:}}$$
    • $${\color{orange}\textsf{values\ outside\ the\ int\ range}}$$
    • $${\color{orange}\textsf{check\ messages\ for\ non-numeric\ values}}$$
  2. $${\color{orange}\textsf{Enter\ the\ correct\ dataset\ names:}}$$
    • $${\color{orange}\textsf{with\ excess\ length}}$$
    • $${\color{orange}\textsf{starting\ with\ numbers}}$$
    • $${\color{orange}\textsf{with\ special\ characters}}$$

Validation of interrupt messages

  1. $${\color{orange}\textsf{Interrupt\ actions\ under\ dataset:}}$$
    • $${\color{orange}\textsf{allocate\ like}}$$
    • $${\color{orange}\textsf{migrate}}$$
    • $${\color{orange}\textsf{rename}}$$
    • $${\color{orange}\textsf{delete}}$$
    • $${\color{orange}\textsf{submit}}$$
  2. $${\color{orange}\textsf{Interrupt\ creating\ a\ new\ tso\ connection}}$$
  3. $${\color{orange}\textsf{Interrupt\ creating\ during\ a\ check\ of\ a\ new\ connection}}$$

TSO console

  1. $${\color{orange}\textsf{Create\ a\ TSO\ Session}}$$
  2. $${\color{orange}\textsf{Open\ a\ TSO\ Console}}$$
  3. $${\color{orange}\textsf{Enter\ TSO\ commands:\ Allocate,\ Delete,\ Rename}}$$
  4. $${\color{orange}\textsf{Click\ Cancel\ command\ (PA1)}}$$
  5. $${\color{orange}\textsf{Submit\ pull\ and\ sleep\ Rexx\ scripts}}$$

Delete multiple files / folders / datasets

  1. $${\color{orange}\textsf{Try\ delete\ invalid\ combination:}}$$
    1. $${\color{orange}\textsf{dataset\ /\ member\ and\ USS\ file}}$$
    2. $${\color{orange}\textsf{dataset\ /\ member\ and\ working\ set}}$$
    3. $${\color{orange}\textsf{dataset\ /\ member\ and\ USS\ folder}}$$
    4. $${\color{orange}\textsf{sequential\ dataset\ and\ member}}$$
    5. $${\color{orange}\textsf{USS\ file\ and\ non-ancestor\ folder}}$$
    6. $${\color{orange}\textsf{USS\ file\ and\ workspace}}$$
    7. $${\color{orange}\textsf{USS\ folder\ and\ workspace\ }}$$
    8. $${\color{orange}\textsf{member\ and\ non\ parent\ dataset}}$$
  2. $${\color{orange}\textsf{Try\ delete\ valid\ combinations:}}$$
    1. $${\color{orange}\textsf{several\ members\ /\ datasets}}$$
    2. $${\color{orange}\textsf{several\ USS\ files\ /\ folder}}$$
    3. $${\color{orange}\textsf{file\ and\ ancestor\ folder}}$$
    4. $${\color{orange}\textsf{several\ working\ sets}}$$
    5. $${\color{orange}\textsf{member\ and\ parent\ dataset}}$$

Add valid connection

  1. $${\color{orange}\textsf{Go\ to\ File\ ->\ Settings\ ->\ Zowe\ Explorer}}$$
  2. $${\color{orange}\textsf{In\ z/OSMF\ Connections\ click\ +}}$$
  3. Set fields with valid data:
    • Connection name: Z23D
    • Connection URL: https://test.com:10443
    • Username: zosmf
    • Password: *****
    • Accept self-signed certificates: V
  4. Click OK
  5. Repeat step 3 adding several spaces after URL / $${\color{orange}\textsf{user}}$$ / $${\color{orange}\textsf{password}}$$ (? - not sure if we should check password triming)
  6. $${\color{orange}\textsf{Add\ connection\ with\ the\ same\ URL}}$$
  7. Add connection using "+" in the explorer view
  8. Repeat 1-3 with too long name (200 "b")

Add invalid connection

  1. $${\color{orange}\textsf{Add\ connection\ with\ invalid\ URL:}}$$
  2. $${\color{orange}\textsf{Click\ OK}}$$
  3. $${\color{orange}\textsf{Add\ connection\ with\ invalid\ (non-existent,\ invalid\ by\ RACF\ -\ e.g.\ personal)\ credentials}}$$
  4. Add connection with self-signed certificate and unchecked "Accept self-signed SSL certiаficates"
  5. Try to add connection with incorrect URL, e.g. zzz
  6. $${\color{orange}\textsf{Add\ connection\ with\ very\ long\ name}}$$
  7. Add 2 connections with the same name

Edit existing connection

  1. $${\color{orange}\textsf{Get\ existing\ connection\ with\ correct\ information,\ edit\ name,\ username,\ password\ (one\ field\ in\ one\ time)}}$$
  2. Get connection with invalid information - change it to correct
  3. Edit connection URL: correct to incorrect and back
  4. $${\color{orange}\textsf{Change\ value\ of\ "Accept\ self-signed\ SSL\ certificates"}}$$
  5. Change value of "Accept self-signed SSL certificates" from unchecked to checked

Delete connection

  1. Delete connection that has unique URL
  2. $${\color{orange}\textsf{Delete\ connection\ that\ shares\ URL}}$$
  3. Delete connection with assigned working sets
  4. Delete connection with assigned JES working sets
  5. Delete connection with assigned working sets and JES working sets
  6. $${\color{orange}\textsf{Delete\ all\ connections}}$$

Create a working set with valid masks

  1. In Files Explorer view click "+", select "Working Set"
  2. Create a working set with masks:
    • TEST.*, test1.*, TEST.IJM@., TEST*, WWW.*, TEST.IJM@, mask with maximal length of 44 chars, test.**, test.@#%, test.@#%.*, test
    • mask: /u, /u/, /etc/ssh, etc///ssh, /uuu

Check name and masks validation in working set (z/OS datasets)

  1. $${\color{orange}\textsf{Create\ a\ working\ set\ with\ very\ long\ name\ (200\ symbols)}}$$
  2. Add a string to a working set name field: WS1
  3. $${\color{orange}\textsf{Try\ create\ a\ working\ set\ without\ a\ mask}}$$
  4. Try to add several masks and check the error after Ok is clicked:
    • two identical masks
    • mask with an HLQ started with a number ("1test.*")
    • mask with special characters, except @,#,$,- ("test.{!")
    • mask with an HLQ part that is more than 8 chars ("test.A23456789.")
    • mask with a length more than 44 chars
    • mask ended with dot ("TEST.")
    • mask with incorrect asterisks amount ("zosmfad.***")

Consistency tracking

To track the consistency of the test suite, the next list is used: