Download as pdf or txt
Download as pdf or txt
You are on page 1of 61

Contents

Hopper Tool Utilization .......................................................................................................................4


Setup .............................................................................................................................................4
Installation Steps:........................................................................................................................4
Updating Hopper - Pulling latest updates from Master to local system with GIT: .............................4
Updating Hopper – Getting code changes into VM: .......................................................................7
Updating Hopper – Saving changes to Master branch within GIT (Applies only to Dev): ...................8
Hopper Resources:..........................................................................................................................8
Copy files from local Hopper to VM Hopper......................................................................................9
Copy files from VM Hopper to Local Hopper.....................................................................................9
Hopper Overview.......................................................................................................................... 10
Starting Hopper:........................................................................................................................ 10
Hopper Homepage: ................................................................................................................... 11
Test Results:.............................................................................................................................. 11
Global Variables: ....................................................................................................................... 12
Generate SQL Report................................................................................................................. 13
Test Lists:.................................................................................................................................. 15
Test Editors:.............................................................................................................................. 16
Generate Workflow Graph......................................................................................................... 18
Test Runner: ............................................................................................................................. 19
Execution from command line:................................................................................................... 20
Framework................................................................................................................................... 20
VSTS Relationships .................................................................................................................... 20
Utilization..................................................................................................................................... 21
Using Hopper – Shared Steps ..................................................................................................... 21
Using Hopper – Creating Queries as Global Variables................................................................... 22
Using Hopper - Referencing other Global Variables within a SQL query......................................... 23
Using Hopper - Global Variables – How to add them to a Test Case .............................................. 23
Using Hopper - Using Mathematical expressions within the data field .......................................... 24
Using Hopper - Using query result as a validation point ............................................................... 24
Tips and Best Practices .................................................................................................................. 25
Hopper test update - procedure for a new application year............................................................. 25
Hopper Execution Report .............................................................................................................. 26
How to collect a Test Plan ID, Test Suite ID and Test Point ID ........................................................... 26
Jenkins............................................................................................................................................. 30
Accessing Jenkins and Executing a Test .......................................................................................... 30
QANode offline ............................................................................................................................. 31
Quality Assurance Reference Documents ........................................................................................... 31
EMA............................................................................................................................................. 31
Gardiner....................................................................................................................................... 32
FTC (Florida Tax Credit) ................................................................................................................. 32
Epicor........................................................................................................................................... 32
E-commerce ................................................................................................................................. 32
Postman....................................................................................................................................... 33
Naming Convention .......................................................................................................................... 33
Test Case Naming convention ........................................................................................................ 33
SQL Querying Tips............................................................................................................................. 34
How To: ....................................................................................................................................... 34
Lessons Learned: .......................................................................................................................... 35
Servers:........................................................................................................................................ 35
VSTS Utilization ................................................................................................................................ 36
QA Reporting Dashboard Reference............................................................................................... 36
Bug/Defect submission format ...................................................................................................... 36
Bug Anatomy................................................................................................................................ 36
HEADER [section]: The Details section contains the most pertinent information of the bug. Each
field and definition are given below............................................................................................ 36
PLANNING [section]: Planning[section] contain values used to group, track, and estimate effort for
issue......................................................................................................................................... 37
LINKS [section]: Associates issue to either development builds or other work item types, using a
hierarchical structure. All links are active and allow you to transition to associated items.............. 38
Copying Test Cases........................................................................................................................ 38
SIMPLE: Works best for sequential testcase ID’s, 5 or less test cases, or testcases in the same suite
................................................................................................................................................ 38
COMPLEX: Works best with copying various test cases from different suites, 6 or more with
sequential id’s, or querying for a specific group of test cases with matching criteria. ..................... 40
Cloning Test Cases ........................................................................................................................ 41
Copying Test Plans ........................................................................................................................ 41
Pipeline and Releases.................................................................................................................... 42
To confirm files are in Master..................................................................................................... 42
To merge pipelines into Master (usually handled by Dev but can be done by QA if necessary) ....... 42
To Confirm what Pipelines a user story or bug is in. ..................................................................... 43
VSTS Tips and Tricks ...................................................................................................................... 45
VSTS – How to see all of the test suites a test case is in if you know one of the suites. ................ 45
VSTS – How to see all of the test suites a test case is in if you only know the test case number. .. 46
VSTS – use queries to find User stories, Test Cases, Shared steps and more. ............................... 48
VSTS – as of February 2021 can no longer switch - How to switch the Test Plan view from the new
view to the old view or back ..................................................................................................... 48
Test and Feedback ........................................................................................................................ 49
Direct Certification (Feature switch) .................................................................................................. 49
Direct Certification means that we can ignore the household income for awarding. ................... 49
During the scholarship application intake process we run a API that checks to see if the student
is getting Free or Reduced lunch. This information is based on student SSN - last 4 digits,
LastName - first 3 letters, DOB - mm/dd/yyyy. Since this is difficult to get in test environment
what we have some feature switches that allow us to force the response to be Yes. As a IT user
you can log into SAS and go to Menu search for Feature (Administration > Configure Feature
Settings..They are ........................................................................................................................... 49
Postman Testing............................................................................................................................... 50
Install Desktop Application ............................................................................................................ 50
Accessing Workspace .................................................................................................................... 50
Creating Collections ...................................................................................................................... 52
Creating Requests......................................................................................................................... 53
Manual Token Authorization...................................................................................................... 53
Manual Authorization................................................................................................................ 54
Creating a Request - using CURL .................................................................................................... 57
Request Management................................................................................................................... 58
Response Management................................................................................................................. 58
Troubleshooting ........................................................................................................................... 59
Test are failing in general: try the following steps ....................................................................... 59
Could not get any response........................................................................................................ 59
401 Authorization...................................................................................................................... 60
Hopper Tool Utilization
Setup
Installation Steps:

• Download and install Visual Studio 2017 or above.


• Download and install GIT

https://git-scm.com/download/win

• Create folder “DevTools” at location: “C:\”


• Use Command Prompt to clone SUFS repo into DevTools directory
o Enter 'cd C:\DevTools'
o Enter 'git clone https://sufs.visualstudio.com/Agile%20Project/_git/Foundation-QA' in
the command prompt.
o Use login credentials if required.
• Open Visual Studios
• Within Visual Studio, open Solution
o Select File > Open> Project Solution
o Navigate to
▪ C:\DevTools\ Foundation-QA \Hopper\TestAutomationSln
o Double-click TestAutomationSln.sln
• In the Solution Explorer[pane], right-click on KWDT.UI and click “Set as StartUp Project.”
• Start project and it should load Hopper with all the KWDT folders on the C: drive.

Updating Hopper - Pulling latest updates from Master to local system with GIT:

• Close Hopper if it is running


• Open Visual Studio 2017
• Select File > Open> Project Solution
• Navigate to
o C:\DevTools\Foundation-QA\Hopper\TestAutomationSln\
• Scroll to bottom and double click/open file “TestAutomationSln.sln”
• If you look in the lower right of the Visual Studio screen you should see:

• Make sure that the panel on the page shows “Team Explorer”
• If not visible click View[menu]\Team Explorer
o If Team Explorer does not show then Select View > Team Explorer from menu
• Click on Sync
o If Sync does shows

o If Sync does NOT show


▪ Select Git Changes


• Look for Fetch and Pull icons next to master
• Select the appropriate one in the next step but my look like this screen

• Look at the available code updates (each may take a couple of seconds to start).
o FETCH will show you all the changes
o PULL will pull the updates down to your local system

• When you see Repository updated to commit you are ready for the next step
o
• Click Start

o
• Wait for it to finish. Hopper should open automatically.
• Check the version date to confirm it updated. Lower right corner of the Hopper home
page.

C:\DevTools\Foundation-QA\Hopper\TestAutomationSln\KWDT.UI\bin\Debug

Updating Hopper – Getting code changes into VM:

• Sign in to the QA VM
o AZ-PC-QA1
o Credentials: Use your personal credentials
• Open Hopper project within Visual Studio
o C:\DevTools\Foundation-
QA\Hopper\TestAutomationSln\KWDT.UI\bin\debug\Hopper
• Confirm you are in the Master branch
• Switch to Team Explorer tab
• Click Sync
• Click “Fetch” incoming commits to view all available changes
• Click “Pull” incoming commits to pull available changes down to your system
• Click “Start” or “Build Solution” to update Hopper files and save all changes
Updating Hopper – Saving changes to Master branch within GIT (Applies only to Dev):

• Switch to feature branch


• Commit all changes – this is only done locally
• Checkout Master
• Pull latest to Master
• Checkout feature branch
• Merge Master into feature branch
• Handle any conflicts
• Push feature branch
• Create pull request in Azure DevOps
• After pull request is approved – Checkout Master
• Pull latest to Master
• Checkout feature branch
• Merge Master into feature branch

After all changes have been pushed to master and pull request has been approved:

• Log in to the QA VM
• Open TestAutomationSln in Visual Studio and pull changes to master, or use command
prompt to pull changes
• After changes have been pulled, Start Visual Studio and build project – that will update
the exe to the latest code

Hopper Resources:

Hopper code:

C:\DevTools\SUFS\QA\Hopper\TestAutomationSln

Should this be: C:\DevTools\ Foundation-QA \Hopper\TestAutomationSln

Selenium web drivers:

C:\DevTools\SUFS\QA\Hopper\Selenium Drivers

Should this be: C:\DevTools\ Foundation-QA \Hopper\TestAutomationSln


Local Hopper resource folder:

C:\KWDT Temp Repo

The following files are stored within this folder:

Copy files from local Hopper to VM Hopper

Open 2 file explorers

• 1st file explorer: C:\KWDT Temp Repo\[folder where file is you want to copy to VM]
• 2nd file explorer: \\AZ-PC-QA1\KWDT Temp Repo\[same folder as local]

Step to copy to VM

• Right click file you want to copy on 1 st file explorer and drag to 2nd file explorer and drop

Note: make sure you are copying to same folder.

Copy files from VM Hopper to Local Hopper

Open 2 file explorers


• 1st file explorer: \\AZ-PC-QA1\KWDT Temp Repo\[same folder as local]
• 2nd file explorer: C:\KWDT Temp Repo\[folder where file is you want to copy to VM]

Step to copy to VM

• Right click file you want to copy on 1 st file explorer and drag to 2nd file explorer and drop

Note: make sure you are copying to same folder

Hopper Overview
Starting Hopper:

Hopper can be started in two ways:

• By loading the TestAutomationSln project within Visual Studio and starting it directly from
there
o Open Visual Studio
o Pull down the latest version of Hopper
o Click the Start icon, which will launch Hopper

• By running the .exe file that’s created within the KWDT.UI folder
o Navigate to
C:\DevTools\SUFS\QA\Hopper\TestAutomationSln\KWDT.UI\bin\Debug
o Launch Hopper.exe

*If you select method 2, then be sure that Hopper has been updated to the latest version. To
update Hopper, you will need to execute method 1 first. Pull down the latest version of the
code and Build/Start it from within Visual Studio. This will automatically update your .exe file to
the latest version. This process needs to be done after every new Hopper version release. If a
latest version of Hopper is not available, then you can skip method 1 and simply launch the
.exe.
Hopper Homepage:

The Hopper homepage consists of six areas:

• Test Suites – area to create, update and execute automated test suites created in Hopper
• Test Sets – area to create, update and execute automated test sets created in Hopper
• Test Cases – area to create, update and execute automated test cases created in Hopper
• Test Reports – area to view results of previous test runs from each test category
• Global Variables – area to create/update both static and dynamic variables that are
referenced within tests. Also supports SQL report generating
• Logs - area to view text version of Test Reports, in case the test report is not generated
successfully

The version value refers to the current version of the Hopper instance that is saved on your
system. If your version number does not match the latest Hopper version, then it needs to be
updated in order to see the latest changes.

Test Results:
The test results page contains all the results from previously run tests ordered by their date of
execution. Double-clicking on an option in the list opens the report for that test. You may also
filter results using the search bar to find specific test results or to find test results of a certain
type.
If you run a test and the result is not displayed in this list, then it was not successfully saved to
the test results folder (C:\KWDT Temp Repo\Test Results). You may also check the Hopper logs
to find a txt version of the report, located in: C:\KWDT Temp Repo\Test Results\Logs
Global Variables:
The global variables page displays all variables that are generated during test execution or that are
manually created. A global variable is simply a reference to a value, or a value returned by a SQL query.

Generate SQL Report


Global variables that consist of SQL queries can also be used to generate a report. By clicking
the “Generate SQL Report” button. This function takes the results of each query and saves
them into an Excel spreadsheet, which is saved to: C:\KWDT Temp Repo\Excel Reports
Test Lists:
Each of the test list pages displays the existing tests for a given test category. These lists contain
a status value and name for each test, with the option to delete or copy it. Tests can easily be
searched for using the search bar and new tests created by clicking the “Create New Test …”
button. To access an existing test, simply double-click on any option in the list.

Test Editors:
The test editor pages allow you to add new elements to a test and update existing functionality. Each
test must have a unique name and is assigned a Status, which Browser it will execute on and within
which Environment. The Test Case Editor is the foundation for all other tests. Here you will create and
add new steps to a test case, which can then be pulled into a Test Set and then a Test Suite. At the
bottom of the page is a time stamp for that test, which tells you when the test was last updated and
saved.

Generate Workflow Graph

Test Suites and Test Sets also contain the option to “Generate Workflow Graph.” This
functionality takes each of the pages that are accessed in a given test and maps it sequentially
within a workflow graph. This serves as a nice visual indicator of which areas within a program
are covered by your test.

From the Test Suite/Test Set Editor screen, when you click “Generate Workflow Graph,” a code
string will automatically be generated and copied to your clipboard. The Hopper will then open
a webpage called Mermaid Live Editor. Simply paste the string from your clipboard into the
"Code" section within the editor. That will automatically generate a graph within the "Preview"
section, as seen below.
Test Runner:

The test runner page is the same for all Test Suites/Sets/Cases. It displays each of the test cases
that will be executed and which test steps belong to those test cases. The test steps have
checkboxes next to them that serve as breakpoints. This allows you to stop the test execution
at any point then proceed by executing the steps one by one, or by continuing the automated
test as a whole.
Execution from command line:

To execute Hopper from command line you must first open the Command Prompt. Then navigate to the
location of the Hopper executable:

• C:\DevTools\Foundation-QA\Hopper\TestAutomationSln\KWDT.UI\bin\Debug

Hopper requires two parameters to be passed in order to successfully execute via command line. The
first, is your test type. This may be a Test Suite/Test Set/Test Case. Second, an absolute path to the test.
For example, "C:\KWDT Temp Repo\Test Cases\test.json"

The request above would then looks like:

• C:\DevTools\SUFS\QA\Hopper\TestAutomationSln\KWDT.UI\bin\Debug>Hopper.exe "TestCase"
"C:\KWDT Temp Repo\Test Cases\tes

Once you submit this request, Hopper will launch without its User Interface and execute a Test Case
called “test.json”

The result and screenshots will be stored in their default location, as with any form of Hopper execution.

Framework
VSTS Relationships

Defects and Tracking

• User Story
o Created when new action or function is needed for automation.
o Created when new feature or function is needed for Hopper.
o Field setting:
▪ Programs: Set to appropriate AUT or core for global functionality.
▪ Item type: New Feature for R & D or Enhancement for known functionality.
• Bug
o When existing action\function fails
o When action or functionality no longer functions.
o When an element does not exist on a page.
o When an element can no longer be referenced correctly
o Field Settings
▪ Programs: Set to appropriate AUT or core for global functionality
▪ Item type: Maintenance

When creating a Bug or User Story make sure to include the following:

o Steps to reproduce issue or to access new functionality
o Screenshots for the new or broken item in question
o Description of expected functionality
o Attached Test Case(s) and Global Variables associated with the issue

• States of work items


o New: Default status for all work items
o Active: Item is under research or on hold awaiting outside resource.
o In Development: Automation team begins work on item.
o Ready for QA: Development complete and validation needed by source of item.
o In QA: Work item is actively being tested.
o Closed: Validation complete that item functions as needed.

Sample workflow: Item is created and set to New. Dev picks up the item, sets it to In
Development and begins work. After completion, Dev sets the item to Ready for QA. QA grabs
the item and moves it to In QA when testing begins. If testing is successful, QA sets the item
to Closed. If item fails testing it is set to Active. Dev will then grab the item and move it
accordingly.

Utilization
Using Hopper – Shared Steps
Create a test case with the steps you want to use repeatedly. This can be as simple as three
steps; Enter a username, enter a password then click Sign In.
Create a new test case. Where you want to add the shared steps select the “Add Shared Test
Step” button. The system will show all the test cases and you select the item and click the add
button. This will display the shared step as a single step within your test case. However, during
execution that step will then reference the other steps associated with it.
TIP: Including “Shared Step” in the name will make referencing the test case easier

Using Hopper – Creating Queries as Global Variables

• TIP: Hopper does not recognize commented out lines. Take out the comment lines that
are normally apart of a query within Microsoft SQL Server Management Studio before
copying into Hopper.
• If the query does NOT exist as a Global Variable, you will need to set it up as one
o Select Global Variables from the Hopper Homepage
o Select the “Add New Global Variable”
▪ Name = (fill in a name – be sure to use “_” underscores instead of spaces
▪ Value = since this is a SQL query no need to put in
▪ Use SQL script = Select check box if the variable will use sql query to
return a value.
▪ Enter SQL Script here = Create\Copy sql script into the field.
▪ Server Name = Server where the db tables reside. Defaults to
Test[environment].
▪ Column name = Name of column to pull the query result.
▪ Row Number = Row number to pull the result value from. To use a
random row, set to 1 and add the line “ORDER BY NEWID()” to the end of
your query.
▪ Description = Description of the value or query value being written to
global variable.[optional]
▪ Save the change
Using Hopper - Referencing other Global Variables within a SQL query
• If you need to pull data from one server, then use it within another server query, or you need
to use a dynamic value within a SQL query you can take advantage of this functionality. You
have the option to reference an existing Global Variable value within a SQL query, using
the $[globalVariableName] format. The "$[ ]" format tells Hopper to replace that string with
another value, stored within a Global Variable. You may also reference another SQL query using
this approach.

Using Hopper - Global Variables – How to add them to a Test Case

• Open the Test Cases you want to work on from the Test Case list page.
• To add an existing Global Variable, go to the step you want to add the Global Variable or add a
new step
o Add the program, page, element, and action information.
o Select “View Available Variables”
o Double click the Variable you want to use in the step
o Paste the variable name into the “Enter primary data for the action” field.
o Put in notes if you want
o Select “Add”
• If you are collecting some piece of information as a global variable for a latter step
o Open or add the step that you collect the information and enter the name for the global
variable. Note: The action name must contain the word “Collect” for this to work.


o In the step where you will actually use the information you need the “$[ ]“around the
global variable name.

Using Hopper - Using Mathematical expressions within the data field


Within the “Enter primary data for the action” field in a test step you can use mathematical expressions
in place of static values. These expression can also contain global variables.
Format: (1 + 1), (2 - 1), (2 x 5 + 6), (3 / 3 - 1)
(1 + 1) set in the Hopper data field will set a value of “2” within the test.
(1 + $[someVariable]) will grab the value of “someVariable” and add it to 1. Then set that value within
the test.

Using Hopper - Using query result as a validation point

There are 3 actions


[ExecuteSqlQuery|ExecuteSqlQueryAndCollectValue|ExecuteSqlQueryAndVerifyResultEquals]
that allow you to use a SQL query as a validation point. All 3 require the use of the ' Creating
Queries as Global Variables' from above first. Use the step below to utilize them:
ExecuteSqlQuery - simply execute a SQL query that's saved as a Global Variable - no
validation or data is returned

ExecuteSqlQueryAndCollectValue - SQL query is executed and the returned result can be


saved as a new Global Variable

ExecuteSqlQueryAndVerifyResultEquals - Provide a secondary data value and validate


whether the SQL query (primary data value) returned result matches the secondary data
value

Tips and Best Practices


Hopper test update - procedure for a new application year

• Will be easiest to start fresh for the new year. This may means creating new suite, sets,
test cases & shared steps
o Will help us maintain the integrity of the original tests if we need them.
• Be sure to coordinate with your team members if you are working on similar files in
Hopper.
• Make sure your local machine has the most recent Test Cases, Sets & Suites on it.
• Create the Test Suite - change name of original to 20-21
o When duplicating make sure this done through the Hopper UI and not within a
folder. The Hopper UI generates a new test ID on the backend.
• Create the Test Set - change name of original to 20-21
o use the Hopper UI
• Create the Test Cases - change name of original to 20-21
o use the Hopper UI
• Make sure the NEW test cases have had the Test Plan ID and Test Point ID have been
updated to match what they where in the original test.
• If necessary duplicate any SharedSteps - change name of original to 20-21
• Open the Test Step that uses the NEW SharedStep
o add the new SharedStep
o move the new sharedstep below the old step
o delete the old sharedstep
o save the change
• Add new Test Cases to new Test Sets
• Add new Test Sets to new Test Suites
• Run the new Test Case to confirm it functions as expected
• Run the new Test Set it's associated with to confirm it functions as expected
• Run the new Test Suite it's associated with to confirm it functions as expected
• Copy the following files that you updated to the VM
o Test Cases & SharedSteps
o Test Sets
o Test Suites
Hopper Execution Report
After completion of a test run, Hopper generates a HTML report that summarizes execution and
provides valuable insight into the success\failure of the run.
NAVIGATION

How to collect a Test Plan ID, Test Suite ID and Test Point ID

Open Azure DevOps and navigate to the Test Plans section

Click on the three dots next to the Test Plan name and select EDIT
Find the number in the top left. That will be your Test Plan ID. In this case it is “7502”

Close the Test Plan and it will take you back to the previous screen. Click the Test Plan name “Ex: FTC
Regression Plan.”

This screen displays the different Test Suites within the selected Test Plan. Find the Test Plan that
contains your Test Case and select it. It will be highlighted in blue, like in the screenshot above for Test
Suite “FTC.” This will be the lowest subfolder the test is in. Once selected, you can find the Test Suite ID
at the top of the screen. In this case, it is “7504.”

With the two ID values collected, Test Plan ID (7502) and Test Suite ID (7504), you can now create your
API call to collect the Test Point ID. Use the example below:

Format:
https://dev.azure.com/sufs/Agile%20Project/_apis/test/Plans/TestPlanID#/Suites/TestSuiteID#/points?a
pi-version=5.0
Example:
https://dev.azure.com/sufs/Agile%20Project/_apis/test/Plans/7502/Suites/7504/points?api-version=5.0

Open a new Chrome tab and paste the API call in the search bar, then hit Enter.
You should see the following response:
Copy the entire response message and navigate to https://jsonformatter.org/ or
http://jsonviewer.stack.hu/

For jsonformatter.org Paste the response message in the left window. You should see a formatted
version of the message in the right window now.

The ID that appears at the top of the response in red is your Test Point ID. In this case, “17692”

For jsonviewer.stack.hu Paste the response message in the tab labeled Text. When you select the View
tab you will see a formatted version of the message
Screen shot of the Text tab

Screen shot of the View tab


Down in the Search at the bottom of the screen you can put in the Azure Test Case # and select Go next
to it. #1 in the screen shot shows the Azure Test Case # (39837)and #2 shows the Test Point ID 18683
Jenkins

Accessing Jenkins and Executing a Test


Access our Jenkins server here: http://az-pc-jenkins01:8080/login?from=%2F

Use your system credentials to log in.

Once you log in you'll see the following dashboard:

Select "Hopper Automation Framework" to get to the automation test section.

From that screen you can find the automation test you would like to execute.

In this example I'll kick off the test suite "Smoke Test - Lower Environment"
First, I'll select "Hopper Automation Framework", then "Test Suites" and finally, "Smoke Test - Lower
Environment"

You should now see this screen:


To execute a test, simply click "Build Now", which you can see is highlighted in the column on the left
the screenshot above. Once the build starts, it will generate a progress bar, which can be seen in the
highlighted section in the bottom left corner. If the progress bar is visible then the test is running o n
the automation VM. To cancel the build simply click the red "X" next to the progress bar. Once the
build is done it will generate a report which you can see a link to in the middle of the screen.

QANode offline
Follow these steps if Jenkins show QANode agent offline or if reports are not correctly displayed.

1. Connect to remote desktop QA VM (AZ-PC-QA1)

2. Select Launch-Jenkins-2022 icon on desktop

You can find helpful hints:


https://stepupforstudents.sharepoint.com/:w:/r/_layouts/15/Doc.aspx?sourcedoc=%7BA8BD4620 -
14F0-42A1-8D43-
D009D82D1D18%7D&file=Hopper%20Tips.docx&action=default&mobileredirect=true

Quality Assurance Reference Documents


EMA
Document name (with link to location) Description

Links & Logins.xlsx Various URL and log ins to EMA per environment
Gardiner

Document name (with link to location) Description

Application to SAS – Decision Trees folder located on Various Decision Trees around the Application (decision
SharePoint Information Technology Public Library > flows)
Product and Implementation > Documentation >
Application to SAS > Decision Trees

FTC (Florida Tax Credit)

Document name (with link to location) Description

Application to SAS – Decision Trees folder located on Various Decision Trees around the Application
SharePoint Information Technology Public Library >
Product and Implementation > Documentation >
Application to SAS > Decision Trees

Epicor

Document name (with link to location) Description

Epicor-SAS-Integrations-Descriptions-Runtimes- Shows the Integrations with decriptions and runtimes


Graylog.xlsx and what Graylog tables to see the info in.

Integrations Field Mapping Spreadsheet that shows the mapping between


Ariba/PLSA SAS/Commerce/Epicor.

Support Troubleshooting - Epicor Documentation of errors and the fix/workaround. Mostly


Graylog errors.

E-commerce

Document name (with link to location) Description

Commerce database - explanation of queries used to Shows the connections between the Commerce db tables
show information that was entered into the database for Requisitions, Purchase Orders, and Invoices
Gardiner – table that shows the dates for the 2 year Shows the dates to see if a qualifying item would have
purchasing rule been purchased within the last 2 year or more than 2
year ago.

MSS External Approval – list of commodity codes and C- List of Commodity Codes with their C-T-D associated with
T-D it

Postman

Document name (with link to location) Description

Postman - environment variables Environmental variables currently used by Fulfillment


Team

Naming Convention
Test Case Naming convention
Provider Services - Post Jobs (this was related to when we were going to use MJE. Before we actually
implemented MJE it was decided to go into a different direction.

We have the following fields that the user will populate when Posting (Creating) a MJE job.

Initials used in Test


Case Naming to What follows initial in Required or Optional
Field name
reference the field the Test Case Name field
name
Job Name n/a Required
Total Price n/a Required
Followed by a number
Number of Sessions NS based on how many Required
sessions service is for
Followed by a 2 digit
Session Length SL number based on ho Required
minutes in each session
Followed by:
A = After School
Service Category SC Program Required
P = Part-Time Tutoring
S = Summer Program
Followed by:
H = In-Home
Location Service LS Required
O = In-Office
V = Virtual
Followed by:
Grade Level GL S = Single grade Required
M = Multiple grades
Description n/a Required
Followed by how many
images will be
Gallery G Required
downloaded
1-5
N = No URL link
given
Video V Optional
Y = Yes a URL link is
given
N = No opening
message is keyed in
Open message O Optional
Y = Yes an opening
message is keyed in

Example: MJE_Postjob_NS1_SL50_SCA_LSH_GLS_VN_ON

Would translate to NS1 = Number of Session = 1, SL50 = Session Length = 50 minutes, SCA = Service
Category = After School Program, LSH = Location of Service inHome, GLS = Single grade level, VN = no
video URL, ON = No opening message

SQL Querying Tips


How To:
Definition of awarded includes where the StudentScholarshipStatus is one of the following.

• Awarded
• Continuing
• Enrolled
• Transportation
• Pending Award
See query: See query I:\QA Tools\SQL Queries - FTC-OLA\FTC-OLA - find Gardiner student
who is awarded - ie StudentScholarshipStatus = Awarded, Enrolled, Transportation, Pending
Award or Continuing

Lessons Learned:

Servers:

Server Name What’s databases are accessed Environment

dev-sqlc1n1\dev SAS db (FTC & Gardiner) Dev 1 SQL DB

DC-DE-FLWA1 Dev1 Dev1

AZ-DC-FLWA2 Dev2 Dev2

AZ-TC-SQL1\Dev Dev 2 SQL DB Dev 2 SQL DB

dev-sqlc1n1\test SAS db (FTC & Gardiner) Test 1 SQL DB

DC-TE-FLWA1 Test1 Test1

AZ-TC-FLWA2 Test2 Test2

AZ-TC-SQL1 Test 2 SQL DB Test 2 SQL DB

dev-sqlc1n1\uat SAS db (FTC & Gardiner) UAT

AZ-TC-TSTEPIAP1 Test 1 Epicor Test 1 Epicor

AZ-DC-DEVEPISQ2 Epicor db, Commerce db Dev

AZ-TC-TSTEPISQ3 Epicor db, Commerce db Test

AZ-UC-UATEPISQ2 Epicor db, Commerce db UAT

AZ-PC-QA1 Used for Hopper VM automation

AZ-TC-SQL1\stage SAS db (FTC & Gardiner) UAT2 (staging)

AZ-GC-FLWA1 Staging Staging

Dev-sqlc1n1 Prod Support


VSTS Utilization

QA Reporting Dashboard Reference


To assist in for tracking and tracing the Software Testing LifeCycle (STLC), the QA team has
developed a dashboard within VSTS. The QA Reporting Dashboard should assist IT organization on
where testing efforts are and assist team members in knowing potential concerns within the active
sprints. All graphs within the dashboard are in real-time and interactive. Clicking on graphical values
will take you underlying custom query, where additional data can be reviewed. You can also click on
the keys to hide specific data points.

Bug/Defect submission format

The format for creating bug tickets can be here.

Bug Anatomy
HEADER [section]: The Details section contains the most pertinent information of the bug. Each field
and definition are given below
Field# Field Name Description
1 Bug ID System generated ID to track work item as it moves through work flow.
2 Title Brief summary describing the issue. May include AUT, but not required.
3 Owner Who the issue is assigned to. Defaults to ‘Unassigned.’
4 Comments Displays the number of responses in the Discussion thread. Links to thread if there is
one.
5 Tags Used to group common WIT’s together for tracking\querying purposes. Can have
multiple tags.
6 State The status of bug. Customized to meet need. Has all states of associated workflow.
7 Reason Shows last update of item. Not editable
8 Area Team area for grouping like items
9 Iteration Cycle in which Bug was found or in which validation of fix will take place.
10 Repro Steps Step(s) to take in order to reproduce issue. Should include screenshot(s) if possible.
11 System Info Configurations and\or setting for the system when issue occurred.
12 Discussions Thread type field for keep historical record of conversations. Sends email of discussion
to assigned owner or any user liked in thread with ‘@’symbol.

PLANNING [section]: Planning[section] contain values used to group, track, and estimate effort for
issue.

Field# Field Name Description


1 Resolved Reason Resolution for closing bug
2 Story Points If Bug is to be fixed with code, gives estimate of the amount of effort.
3 Priority Identifies the level of importance that the bug be resolved. Value between 1 - 4
4 Severity Identifies the impact of the issue as it relates to associated story and\or feature.
5 Activity Identifies activity was being performed when the issue was identified.
6 Program Identifies which AUT is the issue associated to. Defaults to Core
7 Item Type Identifies whether issue affect existing of new code.

LINKS [section]: Associates issue to either development builds or other work item types, using a
hierarchical structure. All links are active and allow you to transition to associated items.

Copying Test Cases


To efficiently conduct testing it sometimes becomes necessary to create a new instance (copy) a group
of test cases from one location to another. This is different from cloning, as copying puts another
instance of a test case in another test set. Any changes you make will also change the test case in it’s
original location.

There are 2 techniques for multiple test case copying:


SIMPLE: Works best for sequential testcase ID’s, 5 or less test cases, or testcases in the same
suite

1. Capture test case ID number(s)


2. Go to the test suite you plan to copy to.
3. Click the Add existing[button] in the test suite.
a.
4. From the Add test cases to suite[popup], do the following:
a. Filter using ‘ID’ and Operator ‘In’
b. Enter each test case ID separated by a ‘,’
c. Click Run query[button]
d. Select all test cases to be copied
e. Click Add test cases[button]

f.
5. All of your test cases from step for should now be visible within your test suite.
COMPLEX: Works best with copying various test cases from different suites, 6 or more with
sequential id’s, or querying for a specific group of test cases with matching criteria.

6. Identify the test case to be copied- A query might work best, but you could go to the various
suites that meet your criteria.
7. Right click and select Edit selected test cases[menu item].
8. From the Edit work items[popup]:
a. select Field Tags(Add).
b. Create a unique identifier for yourself( i.e. ‘SeanK’ , ‘Seans Tag, or ‘This is MINE!,’ etc.,..)
c. Optional: If you want to add a note for tracking, you can do so.
d. Click OK[button].

e.
9. Click the Save Test Cases[button] and repeat until all desired test cases have the tag.
a. Critical not to forget this step!
10. Go to the test suite you plan to copy to.
11. Click the Add existing[button] in the test suite.

a.
12. From the Add test cases to suite[popup], do the following:
a. Filter using ‘Tags’ and Operator ‘Contains’
b. Enter unique identifier you created
c. Click Run query[button]
d. Select all test cases to be copied
e. Click Add test cases[button]

13. Remove tag after successful copy (Do not forget this step or unwanted test cases will appear on
next attempt!)

14. Create a reusable query that looks something like:

a.
15. Go to Results[view]
16. Click the Save Items[button] and repeat until all desired test cases have the tag.
a. Critical not to forget this step!

Cloning Test Cases

Use this to author a new test case that is similar to an existing one.

1. Double-click on test case to be cloned to open the test in edit view.


2. Select the 3 ellipses> Create copy of work item

a.
3. Edit the new test. You must at least change its title. Under Links, you might want to
delete the link to the old test case. NOTE: You may want to keep reference to original
test if you choose.
4. Click Save[button], NOT Save and Close[button]
5. Make note of Test Case ID
6. Go to Test suite you want to place the new test case in.
7. Use Add existing[button] and add cloned test case.

Copying Test Plans


To copy Test Plans do the following

• Have two VSTS windows open


o 1st on the existing Test plan you want to use - note Test Suite ID #
o 2nd one to the Test Plan where you want the test to end up.
• Make sure that you have the new view of VSTS open for the Test Plan where you want
the Test Suite to go to. If you have the old view select "switch to new view" or look in the VSTS
Tips and Tricks section in this wiki.
• In the Suite you want the test to be in, right click on the Suite Name
• Select "Import test suite"
• Select the Project, Test Plan & Suite

Pipeline and Releases


Releases are pushed from development to Prod by Dev. & QA resources via a cyclical pattern:
[Merge (Master+Old Release Branch)-->Test-->UAT-->New Release Branch-->Test-->UAT-->Prod]
Dev. = (Initiate Merge, Create new Release Branch and pushes vetted new Release Branch to Prod)
QA = (Pushes from Merge to Test, and UAT). QA must smoke Test & UAT anytime a deployment is
made.
NOTE:
QA must vet new deployment in Test environment before pushing to UAT.
PO/BA must vet new deployment in UAT environment before pushing to Prod.

Pipelines are used to convey code changes from development to Production. Making sure that we
have the current pipeline in the environments is key to production efficiency. IE if we move the
wrong pipeline to Production means we have the wrong codes in production. Master shall never be
moved to Production without a Release Branch(Normal or Hotfix).

To confirm files are in Master

• Open VSTS
• Select Pipelines > Pipelines
• Look for each pipeline name and check what branch it's in (Master or Release Branch)

o
o OR

To merge pipelines into Master (usually handled by Dev but can be done by QA if necessary)

1. Select Pipeline > Pipelines to get to the list of them. (left side tool bar)
a.
2. Select the pipeline name that is showing as a release or hotfix branch (can also select the
more option to the right and select Run Pipeline if you do this skip step 2
a. Text Description automatically generated
3. Select the Run Pipeline button
a. Graphical user interface, Application Description automatically generated
4. Set filters and run
a. Agent Pool = SUFS Pool
b. Set Branch/tag = Master
c. Select Run Button
5. Repeat for all pipelines

To Confirm what Pipelines a user story or bug is in.

• Open the user story/bug


• Under Development
o expand the pipeline release (see #1 in screen shot)
o
o You will be able to see which pipeline release the item is in.

Foundation System currently have the following pipelines for normal use.

• ProdDMZ
o FTC_Web
o Gardiner_Web
• Prod_Internal
o Application Reports
o Claims Windows Services
o FTC Processing
o FTC Window Services
o FTC.DbUp (occupationally moved)
o Gardiner Processing
o Gardiner Window Services
o Gardiner.DbUp (occupationally moved)
• Refreshes
o Approval Scores Api
o Identity Server (do not push this as of May 2022)
o Micros Services
o Ola Api
o Ola App
o Ola Support
o Portal App

Note: occasionally the following will have changes to be moved:

• Commerce
o Ariba.Approvals.WebJobs
o Ariba.Data.DbUp
o Ariba.Exports
o Ariba.Exports.WebJobs
o Commerce.Api
o Commerce.Mvc
• Epicor
o Epicor.Api
o FTC Epicor Integration
o Gardiner Epicor Integration

Env2 deployment – follow same steps as deploying other branches, however only 1 branch/program
will deploy at a time, all other requests will be put in a queue and push one at a time.

Video: Video of deployment

VSTS Tips and Tricks


VSTS – How to see all of the test suites a test case is in if you know one of the suites.

The following screenshot is associated with the steps below:


Step 1 & 2: Using VSTS open a Test Plan
Step 3: Select a Test Case making sure it is highlighted
Step 4: Make sure have selected Define
Step 5: Right click and select "View Linked Items" so that there is a new additional information pane on
the page.
Step 6: Select Pane and change to “Test suites”
Step 7: The pane will display all of the suites that that test is located in. It will list the following columns:
Title – the name of the suite it is in
Test Plan – the name of the test plan the suite is in.
Team Project
Step 8: If you double click the Title name is will open the Test Suite location the test is in. When you go
to the new folder it will not necessary be on the same test case. If you want to look at the same test you
must highlight that test again.

Tip: If you open your sprint suite and highlight each test you can see if you have copied it to a Program
or Regression suite.
VSTS – How to see all of the test suites a test case is in if you only know the test case number.

With the Test case number, you can now create your API call to collect the find the suites the test case is
in.

Format:
https://dev.azure.com/{organization}/_apis/test/suites?testCaseId={testCaseId}&api-version=5.0

Example:
https://dev.azure.com/Sufs/_apis/test/suites?testCaseId=45623&api-version=5.0

Open a new Chrome tab and paste the API call in the search bar, then hit Enter.
You should see the following response:

Copy the entire response message and navigate to http://jsonviewer.stack.hu/ or your favorite json
viewer.

For jsonviewer.stack.hu Paste the response message in the tab labeled Text. When you select the View
tab you will see a formatted version of the message

Screen shot of the Text tab

Screen shot of the View tab

Each section can be expanded to see the Suite

For example

Expand (0), expand Parent and Plan


Plan will show you the suite and Parent will show the sub suite
IE Plan = Gardiner Regression Plan
Parent = PLI
You will have to find which sub suites by looking through each one.

VSTS – use queries to find User stories, Test Cases, Shared steps and more.

• Link to document

VSTS – as of February 2021 can no longer switch - How to switch the Test Plan view from the new
view to the old view or back
The following is a screen shot of the difference between the old view and the new view.

Old View:
New View:

To change the view select the user setting icon next to the user avatar in upper right of the screen
Select the Preview features
look for and turn OFF the "New Test Plans Page" (you can set to ON to turn it on)
On the Turn off New Test Plan Page popup select "Turn Off" button
You will need to reopen the VSTS test plan page.

Test and Feedback


Test and Feedback allows you to have access to the

Direct Certification (Feature switch)


Direct Certification means that we can ignore the household income for awarding.

During the scholarship application intake process we run a API that checks to see if the student is
getting Free or Reduced lunch. This information is based on student SSN - last 4 digits, LastName -
first 3 letters, DOB - mm/dd/yyyy. Since this is difficult to get in test environment what we have
some feature switches that allow us to force the response to be Yes. As a IT user you can log into
SAS and go to Menu search for Feature (Administration > Configure Feature Settings..They are

• · FreeReducedLunch0Students
• · FreeReducedLunch1Student
• · FreeReducedLunch2Students
When you use this be sure to post a note out to the Team > SQA Squad > Configuration
Notification. As soon as the application is in SAS turn the Feature switch back to FALSE.

The response for this shows in 2 places on the AP Worksheet. At the student level is shows as Direct
Certification Student. If any student on the application returns a YES then under the Categorically
Eligible section on the top section left side will show as Direct Certification Household.

Just be sure that if you turn the switch on and you turn if off as soon as you are done with the test.

Postman Testing
Install Desktop Application
Postman is best utilized through the application, even though it is accessible through a browser. To get
app:

1. Go to https://www.getpostman.com/apps
2. Download Windows 64-bit version.

Accessing Workspace

Postman Workspaces automatically share your collaborative projects with your teammates. Easily
maintain a sole source of layout, comment on documentation, and notify your teammates. We have
upgraded our license to Postman Pro and can now take advantage of 2 additional logins. We also use
team workspaces for sharing and collaboration.
Below are the currently available workspaces and a brief description of it purpose

Postman Pro Team Workspaces

Workspace Name Purpose

Ariba Workspace Contains Api's specific to providing interacting with Ariba. It


should ideally know nothing about Epicor, Foundation, etc.
Commerce Workspace Predominantly an aggregation platform that tries to provide
generalized Api calls for any fulfillment system. It's "Balance Check"
pulls data from Epicor, Ariba and Foundation-Gardiner. It does the
same thing for some statement/activity data which is also required
for approved orders because they depend upon knowing a students
spending history across all systems.

Epicor Workspace Contains Api's specific to providing interacting with Epicor. It


should ideally know nothing about Ariba, Foundation, Gardiner,
FTC, Reading etc.

NLP Logic Used for the API calls that are being set up for NLP Logix and ESA's

Portal Workspace Contains collections and endpoints tied to the new SSO portal
project.

Processing Workspace API collections built and monitored for processing functionality.

Sandbox Workspace Catch all workspace for practice and older Api's that have not been
associated to a workspace.

**There previously was a developers workspace maintained by Brian Teryek with different login
credentials.
To access collections\requests do the following:
1. Launch Postman application on local machine.
2. Use Login credentials:
a. Postman Pro Team:
i. Username: SUFS_Tester\ SUFS_Tester1\ SUFS_Tester2
ii. Password: sufs1api!
b. Postman standalone[Brian Teryek]:
i. Username: sufsnextgen
ii. Password: sufsnextgen
1.
3. On the lefthand side, open the Workflow folder (Or whichever one that is created for the
testing)

Creating Collections
TBD
Creating Requests
Request Types

Manual Token Authorization


To auto create you will need to complete the following. You will need to set up each environment
with the specific variable. Do update the Postman - environment variables document with the
information.

1. Set up the Environment Variable most of the following are associated with getting an
access token one is specifically associated with the URL that the API will be going to.
1. IdentidtyServer.AccessToken - must have the variable but this is actually
updated when the API is ran that has the pres-request script to get the
token
2. IdentityServer.Access.TokenUrl - get from the developer.
3. IdentityServer.ClientID - have been using Newman
4. IdentityServer.ClientSecret = Secret
5. IdendityServer.Scopes = Api name ie commerceapi, eppicorapi
6. IdentitySeerver.AcessTokenExpires = must have the variable but this is
actually updated when the API is ran that has the pres-request script to
get the token
7. URL that the API will be going to. Get from the developer/
1. ie Epicor.Api.BaseUrl = https://erp10testint.sufs.org/Erp1
0TestIntegration1023/api
2. ie Commerce.Api.BaseUrl
= https://sufscommerceapitest.azurewebsites.net
2. At the collection level set up the Authorization page
1. Select the ellipsis (...) associated with the collection name
2. Select the Edit button
3. Select Authorization tab
1. Type = OAuth 2.0
2. Access token put in {{IdentityServer.AccessToken}}
3. At the collection level set up the Pre-request Script page
1. Select the ellipsis (...) associated with the collection name
2. Select the Edit button
3. Select the Pre-request Scripts tab (you can copy the script from the
Epicor Workspace > Epicor.Api (CI/CD) collection.)
4. At the request level, set up the line that calls the API with the URL ie {{
Commerce.Api.BaseURL}} or {{Epicor.Api.Base.Url}}
1.

Manual Authorization
Different endpoints may require authorization(permission to back-end functionality), This is handled
through token requests. Once your request has been created do the following:

1. Under Authorization, click on “Get New Access Token”

1.
2. For the Token credential
1. Token Name: test
2. Auth ULR: {{IdentityServerBaseUrl}}/connect/authorize
3. Access Token URL: {{identityServerBaseUrl}}/connect/token
4. Client ID: testclient
5. Client Secret: secret
6. Scope: olaapi
7. Grant Type: Authorization Code
8. Missing screen shot – unsure exactly where this was from. If you get to it then add new screen
shot.
1.
2.
3. Click Request Token - Commerce API Authentication
1. Edit Whole collection, folder collection, or individual request(s).
2. Click Authorization[tab]
3. Set TYPE=> 'OAuth 2.0
4. Set Add auth data to => Request Headers
5. Click Get Token Access[button]
1.
2.

Field Value Variable(Optional)


Token Name Variable name for Token request, Example ‘Test Env Token’
or “Request Test’
Callback URL https://localhost/postman
Auth URL https://sufsidentityserver[env].azurewebsites.net/connect/a {{
uthorize, SufsAuthorizeDev}
where [env] => environment } or
{{
SufsAuthorizeTest
}} or
{{
SufsAuthorizeUat}
}
Access Token https://sufsidentityserver[env].azurewebsites.net/connect/t {{SufsTokenDev}}
URL oken or
, where [env] => environment {{SufsTokenTest}}
or
{{SufsTokenUat}}
Client ID PostmanSufs
Client Secret Secret
Scope See the Scope table below
State State
Client Send as Basic Auth header
Authentication

3. Scope

Commerceapi Used for the Commerce API calls


Epicorapi Used for the Epicor API calls
Esaapprovalsapi Used the External Approval API calls

4. Screen shot

4. Click Request Token[button]


5. Clear Access Token[field]
6. Select Available Tokens[dropdown]. Select Token request just created
7. Click Update[button].

Creating a Request - using CURL


If the developer provides a CURL you can create the call using the curl.

1) The curl may look something like


a)
2) Open Postman, open the collection you want it item put into
3) Select Import
4) Select the Raw Text tab
5) Paste in the full CURL info
6) Select Continue.

a)
7) if a collection it will create the collection if just a single call you will need to save it where
you want to save it.

Request Management
Individual Requests

Sending Collections

Response Management
Response Body

Creating Test
Troubleshooting
Test are failing in general: try the following steps

1) Log out of Postman


2) Close the application
3) Reopen Postman and Log in
4) Set the Environment to the one you want to test in
5) Select the Setting (wrench toward upper right) > Setting
a) Confirm that SSL Certification Verification = OFF
6) For diagnosing the issue turn on the Postman Console, located lower left of the page
a) Clear the items currently in the console
7) Try running the collection or individual test again
8) If it fails look at the console
a) Expand out the items in RED to see what the issue is.

Could not get any response

Screenshot:

Fixes (in order of what to try)

1. Selectthe link that is shown.


1. Confirm that you can open the link.
2. If it opens go to step 2
3. If the link does not open and you get a message that the site can't be reached then
check that your VPN (Virtual Private Network) connection is running.
2. Confirm that the SSL certificate Setting is correct
1. Select the settings icon at the top of the page
2. Select "Settings" from the drop down
3. Under General look at "SSL certificate verification" and set it to OFF
3. Check that the Environment Variables are set correctly
1. Open the Postman - environment variables link
2. Open the tab for the correct workspace
3. In Postman select the Environment from the upper right corner, then select the
"environment quicklookup" icon (looks like an eye)

1.
4. Confirm that the Initial Value and the Current Value column match.
5. Confirm that the Values in Postman match the values in the Postman - environment
variables spreadsheet, if necessary update Postman values
6. If the values do match the spreadsheet then put a notice on the appropriate team
channel
1. Epicor API's on the channel - Financial Systems > Technical Implementation
2. Commerce API's on the channel - MyScholarShop > Technical
Implementation
3. Ariba API's on the channel - MyScholarShop > Technical Implementation
4. Put a notice on the appropriate team channel
1. Epicor API's on the channel - Financial Systems > Technical Implementation
2. Commerce API's on the channel - MyScholarShop > Technical Implementation
3. Ariba API's on the channel - MyScholarShop > Technical Implementation

401 Authorization

1. Log out of Postman


2. Log back in and resync
3. Try running the test again.
4. Edit Environmental variable and set the current value for IdentityServer.AccessToken Expires to 0

Link - Postman - Steps for using data file to run a script

You might also like