Gorilla Logic Proprietary and Confidential
Generic Test Automation Architecture
September, 2019 © International Software Testing Qualifications Board
Gorilla Logic Proprietary and Confidential
Agenda
Team Up!
Structure of the gTTA
Gear Up!
Layers of the TTA
Listen Up!
Design of a TAS
2
1
2
3
Set Up!
Implementation of a TAS
4
Gorilla Logic Proprietary and ConfidentialGorilla Logic Proprietary and Confidential
Structure of the gTTA
Gorilla Logic Proprietary and Confidential
gTTA
4
Gorilla Logic Proprietary and Confidential
gTTA
5
1
2
3
4
Gorilla Logic Proprietary and ConfidentialGorilla Logic Proprietary and Confidential
Layers of the TTA
Gorilla Logic Proprietary and Confidential 7
Tool Support for:
• Manually developing test cases.
• Automatically generating test cases from models. (Automated model-based testing).
It allows to:
• Document the test design
• Trace generated tests back to models.
Test Generation Layer
Manual Design Test Models
Gorilla Logic Proprietary and Confidential 8
Test Definition Layer
Test
Conditions
Test Cases
Test
Procedures
Test Data Test Library
Tool Support for:
• Identify/Specify suitable test cases. | Define Test Data.
• Specify test procedures. | Provide access to test libraries as needed.
Used to:
• Partition or parameterize or instantiate test data.
• Specify test sequences, group them.
• Document test data, test cases and/or test procedures.
Gorilla Logic Proprietary and Confidential 9
Tool Support for:
• Executing/Logging test cases.
• Reporting test results.
Used to:
• Setup / Teardown of automated test cases.
• Transform test data into executable scripts.
• Analyze SUT responses to steer results, logging and reports.
Test Execution Layer
Test Execution
Test Logging Test Reporting
Gorilla Logic Proprietary and Confidential 10
Tool Support for:
• Interacting and Monitoring the SUT.
• Simulating the SUT.
Used to:
• Mediate between test definition and technology requirements of the SUT and test devices.
• Apply different technology adaptors to interact with the SUT.
• Distribute test execution across multiple test devices.
Test Adaptation Layer
GUI API Services Protocols
Databases Simulators Emulators
Gorilla Logic Proprietary and ConfidentialGorilla Logic Proprietary and Confidential
Design of a TAS
Gorilla Logic Proprietary and Confidential 12
TAA design and tool selection
• Capture requirements needed to define appropriate TAA
• Compare different architecture approaches / tools
• Time and Complexity
• Ease of Use
Approaches for automating test cases
1. Implement test cases directly into automated test scripts
2. Design test procedures and transform them manually into automated test scripts
3. Use a tool to translate test procedures automatically into automated test scripts
4. Use a tool to generate automated test scripts directly from models
Gorilla Logic Proprietary and Confidential 13
Capture/Playback Technique
Principal Concept: Tools capture interactions with the SUT while performing sequences.
Inputs/outputs are captured and scripts are created to check checkpoints.
SUT Feed
Script
Script
Script Script
Script Script
Record
Test
Tool
Playback SUT
Gorilla Logic Proprietary and Confidential 14
Linear Scripting Technique
Feed
Script
Script
Script Script
Script Script
Create
Test
Tool
Interact SUT
Manual
Test
Manual
Test
Manual
Test
Test Tool FeedScript
Script
Script Script
Script Script
Create
Test
Tool
Interact SUT
Manual
Test
Manual
Test
Manual
Test
Script Library
Structured Scripting Technique
Principal Concept: Introduction of scripts and then
script library, re-usable scripts that perform actions that
are commonly the same across the SUT.
Gorilla Logic Proprietary and Confidential
Test Tool
15
Data-Driven Technique
FeedScript Script
Script Script
Create
Test
Tool
Interact SUT
Manual
Test
Manual
Test
Manual
Test
Script Library
Data
File
Data
File
Data
File
Generate
Control
Script
Control
Script
Control
Script
Create
Test Tool FeedScript Script
Script Script
Create
Test
Tool
Interact SUT
Manual
Test
Manual
Test
Manual
Test
Script Library
KW
Def
KW
Def
KW
Def
Generate
Control
Script
Create
Keyword-Driven Technique
Principal Concept: Introduction of data files or test
definitions for multiple and then single control scripts.
Gorilla Logic Proprietary and Confidential
Test Tool
16
Process-Driven Technique
FeedScript Script
Script Script
Derive
Test
Tool
Interact SUT
Manual
Test
Manual
Test
Manual
Test
Script Library
Generate Create
Keyword
Library
Scenario
Library
Test Tool FeedScript Script
Script Script
MBT Tool
Test
Tool
Interact SUT
Test
Model
Test
Model
Test
Model
Script Library
Scenario
Library
Generate Create
Model-Based Technique
Principal Concept: Introduction of single scenario
library from manual tests or test models.
Keyword
Library
Gorilla Logic Proprietary and ConfidentialGorilla Logic Proprietary and Confidential
Implementation of a TAS
Gorilla Logic Proprietary and Confidential 18
Considerations for TAS development
• Developing a TAS follows
same rules of a software
development project
Always consider
1. Types of tests
2. System under test to determine tools that can be used
3. Logs/Report - Metrics
4. Means of execution
5. Input from test cases
6. Input from models
Gorilla Logic Proprietary and Confidential 19
Considerations
1. Multipage Ecommerce application.
2. Angular on the FE.
3. Java Microservices on the BE.
4. SQL / NoSQL database data sources.
5. GIT base approach.
6. Concourse (CI/CD) tool.
7. Slack for notifications.
8. Multi-team, SAFe based (agile)
development approach.
Implementation
1. Nodejs based solution. Mocha as test runner.
2. Protractor to cover the FE.
3. Chai-http and JMeter to cover API.
4. DB plugins for Mongo and Oracle.
5. Independent repository.
6. Triggered via CLI.
7. Execution notification via Slack.
8. Separation of concerns in project structure
and test execution types.
Gorilla Logic Proprietary and Confidential 20
Gorilla Logic Proprietary and Confidential 21
Considerations
1. Local execution.
2. Execution via CI/CD tool.
3. Log errors.
4. Report pass/fail ratio.
5. Report duration of tests.
6. Report time saved when executing via
automated tests.
7. Report state of each test.
Implementation
1. Execution via CLI or jobs in CI/CD tool.
(Manual and automated).
2. Errors (or successes) are notified via Slack
and logged in CI/CD tool with detailed run.
3. Each test execution creates a historical
personalized report in Grafana by inserting
data dynamically into InfluxDB.
4. State of each test is displayed with easy to
read traffic light approach per environment.
Gorilla Logic Proprietary and Confidential 22
Gorilla Logic Proprietary and Confidential 23
Gorilla Logic Proprietary and Confidential 24
Considerations
1. Test case manager used is Zephyr (JIRA).
2. Each test case contains several mandatory
fields:
• Test Case ID
• Component
• Priority
• Level of Effort (Minutes)
• Automatable (Yes | No)
• Automated (Yes | No)
Implementation
1. Implemented JIRA plugin to gather
information from each manual test case.
2. Metrics are updated on a regular basis to
check for:
• Coverage %
• Time saved with execution
Gorilla Logic Proprietary and Confidential 25
Gorilla Logic Proprietary and Confidential 26
NOT IMPLEMENTED BUT NOT NECESSARY
Gorilla Logic Proprietary and ConfidentialGorilla Logic Proprietary and Confidential
Thank You
Rodolfo Conejo
rodolfo.conejo@gorillalogic.com

Generic Test Automation Architecture

  • 1.
    Gorilla Logic Proprietaryand Confidential Generic Test Automation Architecture September, 2019 © International Software Testing Qualifications Board
  • 2.
    Gorilla Logic Proprietaryand Confidential Agenda Team Up! Structure of the gTTA Gear Up! Layers of the TTA Listen Up! Design of a TAS 2 1 2 3 Set Up! Implementation of a TAS 4
  • 3.
    Gorilla Logic Proprietaryand ConfidentialGorilla Logic Proprietary and Confidential Structure of the gTTA
  • 4.
    Gorilla Logic Proprietaryand Confidential gTTA 4
  • 5.
    Gorilla Logic Proprietaryand Confidential gTTA 5 1 2 3 4
  • 6.
    Gorilla Logic Proprietaryand ConfidentialGorilla Logic Proprietary and Confidential Layers of the TTA
  • 7.
    Gorilla Logic Proprietaryand Confidential 7 Tool Support for: • Manually developing test cases. • Automatically generating test cases from models. (Automated model-based testing). It allows to: • Document the test design • Trace generated tests back to models. Test Generation Layer Manual Design Test Models
  • 8.
    Gorilla Logic Proprietaryand Confidential 8 Test Definition Layer Test Conditions Test Cases Test Procedures Test Data Test Library Tool Support for: • Identify/Specify suitable test cases. | Define Test Data. • Specify test procedures. | Provide access to test libraries as needed. Used to: • Partition or parameterize or instantiate test data. • Specify test sequences, group them. • Document test data, test cases and/or test procedures.
  • 9.
    Gorilla Logic Proprietaryand Confidential 9 Tool Support for: • Executing/Logging test cases. • Reporting test results. Used to: • Setup / Teardown of automated test cases. • Transform test data into executable scripts. • Analyze SUT responses to steer results, logging and reports. Test Execution Layer Test Execution Test Logging Test Reporting
  • 10.
    Gorilla Logic Proprietaryand Confidential 10 Tool Support for: • Interacting and Monitoring the SUT. • Simulating the SUT. Used to: • Mediate between test definition and technology requirements of the SUT and test devices. • Apply different technology adaptors to interact with the SUT. • Distribute test execution across multiple test devices. Test Adaptation Layer GUI API Services Protocols Databases Simulators Emulators
  • 11.
    Gorilla Logic Proprietaryand ConfidentialGorilla Logic Proprietary and Confidential Design of a TAS
  • 12.
    Gorilla Logic Proprietaryand Confidential 12 TAA design and tool selection • Capture requirements needed to define appropriate TAA • Compare different architecture approaches / tools • Time and Complexity • Ease of Use Approaches for automating test cases 1. Implement test cases directly into automated test scripts 2. Design test procedures and transform them manually into automated test scripts 3. Use a tool to translate test procedures automatically into automated test scripts 4. Use a tool to generate automated test scripts directly from models
  • 13.
    Gorilla Logic Proprietaryand Confidential 13 Capture/Playback Technique Principal Concept: Tools capture interactions with the SUT while performing sequences. Inputs/outputs are captured and scripts are created to check checkpoints. SUT Feed Script Script Script Script Script Script Record Test Tool Playback SUT
  • 14.
    Gorilla Logic Proprietaryand Confidential 14 Linear Scripting Technique Feed Script Script Script Script Script Script Create Test Tool Interact SUT Manual Test Manual Test Manual Test Test Tool FeedScript Script Script Script Script Script Create Test Tool Interact SUT Manual Test Manual Test Manual Test Script Library Structured Scripting Technique Principal Concept: Introduction of scripts and then script library, re-usable scripts that perform actions that are commonly the same across the SUT.
  • 15.
    Gorilla Logic Proprietaryand Confidential Test Tool 15 Data-Driven Technique FeedScript Script Script Script Create Test Tool Interact SUT Manual Test Manual Test Manual Test Script Library Data File Data File Data File Generate Control Script Control Script Control Script Create Test Tool FeedScript Script Script Script Create Test Tool Interact SUT Manual Test Manual Test Manual Test Script Library KW Def KW Def KW Def Generate Control Script Create Keyword-Driven Technique Principal Concept: Introduction of data files or test definitions for multiple and then single control scripts.
  • 16.
    Gorilla Logic Proprietaryand Confidential Test Tool 16 Process-Driven Technique FeedScript Script Script Script Derive Test Tool Interact SUT Manual Test Manual Test Manual Test Script Library Generate Create Keyword Library Scenario Library Test Tool FeedScript Script Script Script MBT Tool Test Tool Interact SUT Test Model Test Model Test Model Script Library Scenario Library Generate Create Model-Based Technique Principal Concept: Introduction of single scenario library from manual tests or test models. Keyword Library
  • 17.
    Gorilla Logic Proprietaryand ConfidentialGorilla Logic Proprietary and Confidential Implementation of a TAS
  • 18.
    Gorilla Logic Proprietaryand Confidential 18 Considerations for TAS development • Developing a TAS follows same rules of a software development project Always consider 1. Types of tests 2. System under test to determine tools that can be used 3. Logs/Report - Metrics 4. Means of execution 5. Input from test cases 6. Input from models
  • 19.
    Gorilla Logic Proprietaryand Confidential 19 Considerations 1. Multipage Ecommerce application. 2. Angular on the FE. 3. Java Microservices on the BE. 4. SQL / NoSQL database data sources. 5. GIT base approach. 6. Concourse (CI/CD) tool. 7. Slack for notifications. 8. Multi-team, SAFe based (agile) development approach. Implementation 1. Nodejs based solution. Mocha as test runner. 2. Protractor to cover the FE. 3. Chai-http and JMeter to cover API. 4. DB plugins for Mongo and Oracle. 5. Independent repository. 6. Triggered via CLI. 7. Execution notification via Slack. 8. Separation of concerns in project structure and test execution types.
  • 20.
    Gorilla Logic Proprietaryand Confidential 20
  • 21.
    Gorilla Logic Proprietaryand Confidential 21 Considerations 1. Local execution. 2. Execution via CI/CD tool. 3. Log errors. 4. Report pass/fail ratio. 5. Report duration of tests. 6. Report time saved when executing via automated tests. 7. Report state of each test. Implementation 1. Execution via CLI or jobs in CI/CD tool. (Manual and automated). 2. Errors (or successes) are notified via Slack and logged in CI/CD tool with detailed run. 3. Each test execution creates a historical personalized report in Grafana by inserting data dynamically into InfluxDB. 4. State of each test is displayed with easy to read traffic light approach per environment.
  • 22.
    Gorilla Logic Proprietaryand Confidential 22
  • 23.
    Gorilla Logic Proprietaryand Confidential 23
  • 24.
    Gorilla Logic Proprietaryand Confidential 24 Considerations 1. Test case manager used is Zephyr (JIRA). 2. Each test case contains several mandatory fields: • Test Case ID • Component • Priority • Level of Effort (Minutes) • Automatable (Yes | No) • Automated (Yes | No) Implementation 1. Implemented JIRA plugin to gather information from each manual test case. 2. Metrics are updated on a regular basis to check for: • Coverage % • Time saved with execution
  • 25.
    Gorilla Logic Proprietaryand Confidential 25
  • 26.
    Gorilla Logic Proprietaryand Confidential 26 NOT IMPLEMENTED BUT NOT NECESSARY
  • 27.
    Gorilla Logic Proprietaryand ConfidentialGorilla Logic Proprietary and Confidential Thank You Rodolfo Conejo rodolfo.conejo@gorillalogic.com