AGILE Refresher - Part 2
AGILE Refresher - Part 2
Certification Refresher
Part – 2
Sections Covered (Agile Generic)
Need to be read from the study material in Learning Hub. No content covered.
2
Requirements, Architecture and Design
3
Requirement Categorization: Theme, Epic, User Story
The widely-used technique for classifying the requirement is size-based SMC (Small, Medium and Complex) or based on various factors
like dependency, unknowns, risk and uncertainty
In Agile, requirements are primarily defined based on value to business (ROI-Return on Investment) and how they evolve over the project
execution timespan
Theme: Epic:
• A Theme is very large requirement and sometimes encompass • Very large requirement that can’t be completed in a short
entire product vision iteration (Sprints)
• Set of interrelated requirements which can be considered for • Needs to be broken down into User stories
Release planning • Can be considered as a small theme by virtue of its magnitude
• Large theme can be subdivided in multiple sub-themes
• Development of a theme can span from few months to a year Example of Epic: ‘Xyz Bank wants to allow funds transfer between
own accounts in different branch, other accounts in same bank, and
Example: ‘Xyz Bank wants to allow customers transact online and preferably, accounts in other banks.’
be able to do fund transfer, open fixed deposits, and request
check book online.’
User Story:
• A feature small enough to be delivered in iteration and represents unique business value
• Epic is divided into multiple user stories
• Mostly a vertical slice cutting across all phases of Software development life cycle and has tangible business value.
• Represents technical debt which doesn’t represent business value directly but is required for better and maintainable code
quality
4 Example of Epic: As a customer, I want to schedule automatic fund transfer among my accounts.’
Effective Requirement Definition
Requirement Workshop
• Carried out from a few hours to a few days depending on size of the release
• Outcome of these workshops is Epics and Stories on which stakeholders have enough clarity
• Have stakeholders from even extended teams such as Tech Architect, Solution Designer, IT Managers, Capacity Managers and BAs
• Requirements are prioritized, detailed out, estimated
Requirement Accuracy
• Requirements taken up for development should have enough clarity to help team estimate them to a satisfactory and agreeable
level
• Complex Epic requirement should be broken down to sub-epics till it is possible to define multiple short feature/story for each one
• Becomes accurate when it’s smaller as it will have lesser unknowns, dependencies and associated risks
• Adding testable acceptance criteria in each requirement helps in a to increase requirement clarity
User Story
• written in perspective of user and how it would help business
• always capture AT (Acceptance Test) which should be testable
• Each story should have DONE criterion to consider the story
for acceptance
5
User Story
Three C’s for writing good user stories
•‘Card’ came from XP world where practice of writing requirement on Index
Card cards
•Writing requirements in short
•brings required details
Conversations •conversation summary must be recorded on the backside of the card with
date
•Acceptance tests provide ways to confirm if story card needs are met
Confirmations •Can prove as excellent artifacts to be considered as part of documentation
deliverables
Used with Kanban method to effectively prioritize requirements that have more value over others because of cost of
non-completion
Certainty Certain requirement has more weightage while prioritizing
No matter which technique is used, list of project requirements must be sorted from most to least valuable
7
Architecture and Design
• High-level architecture generally involves Factors for Bad Design
Depicting the system into modules
Representing the interfaces and interactions between these interfaces
• Detail design outlines the design internals for each of the modules
• For OOAD (Object Oriented Analysis and Design) project high-level design
includes system architecture with details about interfaces, components,
and networks, data flows and interactions between component systems
• Detail design further divides high-level design into class diagram with all
the methods and relation between the classes
Agile projects believe in You Aren't Gonna Need It (YAGNI) & No Big Design Up Front (NBDUP):
Rationale:
1. Any code or design which is not required for the current set of features might not be required in the future
2. More time is spent in designing/ developing feature which does not add any value to the current set of features required by the
customer
3. Additional unrequired feature can lead to software becoming larger and complicated which in turn can impose constraints on
adding new features
8
Define System Architecture
• Create visual architecture and infrastructure (AIP) planning diagram defining components, interfaces
and other characteristics of system or components
• Security or other NFRs in the visual AIP
• Decided in workshop or project initiation (Sprint 0) phase
Guidelines:
• Create System architecture diagram for implementation in different layers and the
main components
• Decide on platform level details (programming language, database)
• Identify risk areas that need POC (Proof of Concept)
Techniques:
• Expert Judgment
• Whiteboard, AIP diagram
• Existing Enterprise Guidelines & Constraints
9
Define Architecture Stories Architectural styles describes a
system category that encompasses
• Software Architecture is the structure which comprise the software
components, the externally visible properties of those components, A set of component types that perform a function required by the
and the relationships among the components system
• Represents the structure of the data and program components that are
required to build a computer-based system A set of connectors (subroutine call, remote procedure call, data
• Refined at the initiation of the project stream, socket) that enable communication, coordination, and
cooperation among components
Risk areas are identified as part of the ‘Define System Architecture’ phase (i.e. Constraints that define how components can be integrated to form
Sprint-0 or Discovery Phase). These are defined as architecture stories and taken the system
up as POC (Proof of Concept) during this phase, which is in-line with the idea of
fail fast of Agile principle
Any other POC as required for identified risk areas or new technology A topological layout of the components indicating their runtime
implementation should be covered during this phase and has to be in agreement interrelationships
with all stakeholders
Some of the high priority stories can be identified for implementation, during first
Semantic models that enable a designer to understand the overall
2-3 Sprints (assuming 2 weeks iteration for project duration of more than 6 properties of a system
months) which can set up the technical foundation (e.g. Data Access Framework,
Error Logging Framework, common utilities) for the system being developed
Objectives: Techniques:
• Reduce project risk due to technology by • Expert Judgment
validating assumptions • Whiteboard
10 • Provide foundation for future Sprints • Team Discussions
Just-in-Time Design
Techniques:
• Expert Judgment
• Whiteboard
11
Design Principles
• Single Responsibility Principle: The programmer should maximize cohesion so that each class does only one thing. This in turn
ensures that behavior of a class is not accidently changed
• Open/Closed Principle :The open/closed principle states "software entities (classes, modules, functions, etc.) should be open for
extension, but closed for modification"; that is, such an entity can allow its behavior to be modified without altering its source
code
• Liskov Substitution Principle: If a system is using a base class, the reference to that base class can be replaced with the derived
class without changing the functionality of the system
• Interface Segregation Principle: Each interface should have a single responsibility and should not be overloaded. Interfaces should
be kept small and cohesive and exposed only when required
• Dependency Inversion Principle: Idea is to isolate our class behind a boundary formed by the abstractions it depends upon. If all
the details behind those abstractions change, then our class is still safe. This helps keep coupling low and makes our design easier
to change
Please refer to page 11 to 16
of Requirements, Architecture
13 and Design for code example
Design Principles To be read from study • Experienced Object Oriented (OO) developers build up a
material collection of both general principles and idiomatic solutions
that guide them in the creation of software
• These principles and idioms codified in a structured format
Continuous Test Driven Implement describing the problem and solution are called as patterns
Keep It Apply SOLID • Design Pattern names, abstracts, and identifies the key
Code Development Design
Simple Principles
Refactoring (TDD) Patterns aspects of a common design structure that makes it useful
for creating a reusable object-oriented design
• Describes a design structure that solves a particular design
problem within a specific context and amid forces that may
have an impact on the manner in which the pattern is
applied and used
Design alternatives
14
Agile Testing Techniques
15
Testing: Overview
Tester’s involvement is necessary right from the initiation of the project so that they can actively participate in
defining Definition of Done, exploration of User Stories
Follow up on validation criteria in order to know what's expected of a new feature or a change being made in the
system
Both testing and development are carried out in the same sprint
Tester’s work on how the system would behave after the new changes are incorporated and whether it satisfies the
business needs or acceptance criteria
When the development team works on the design and code changes, testing team works on the testing approach
and comes up with the test scenarios and test scripts
Testing team is expected to work on smaller modules and test them as and when provided rather than the whole
functionality to be developed completely
16
Testing: Concepts
Test Strategy and Planning
• Inadequate test coverage might result in missing of critical tests for some requirements
• Test coverage for a user story is usually discussed and finalized during the backlog grooming sessions and later during the Sprint
Planning meetings
• Creating a traceability matrix between requirements, user stories and test cases avoids missing out a few test scenarios. A link
can also be created between test cases and user stories
• Analyzing the impact, review of source code to identify modules that are to be changed and ensuring that all the changed code
has been properly tested ensures test coverage
• Use of code coverage tools must be leveraged for verifiable thoroughness as part of the automation effort
17
Testing: Concepts
Test Data Management in Agile
• Agile Testing in Sprints gets difficult when the system is dependent on another team for test data. Sprint timelines do not give
enough room for any delays in the data setup
• Setting up the test data is done along the Sprint to make available them at least, ‘just in time’ (JIT) if not earlier, by the time when
the developer checks-in his code for claiming it ‘as done’
• Developers usually practice test automation for unit testing and integration testing, use TDD approach to complete user stories, the
synchronized supply of the test data by testing team is essential
• Analysis of the data needs is done during the backlog grooming sessions and the Sprint planning meetings to ensure the complete
data set up needs
• If data is complex and huge, we may not get the adequate support from the team owning the data. Hence the discussion should
ideally start with the business, at least a Sprint early or as per the applicable SLA to get the data at the appropriate time
• members (from business) who are responsible for the data should be included as part of the Scrum team for the Sprint where their
support is required
• test data created in earlier sprints can either be directly reused or used with minor modifications in order to avoid redundant data
requests/set up and reduced turnaround time for the test data creation and manipulation
Impact Analysis in Agile
• Significant role of testing team in impact analysis and design reviews as they are involved in the design discussions happening for a
story
• Helps the developer in the impact analysis and debugging the issues
• Testing team members go to the code level to analyze or debug the issue along with the developer
18
Importance of Automation for Testing in Agile
Importance of Automation for Testing in Agile
What if a defect comes up late during the sprint or some defect which is
directly not related to any of the stories taken up in the sprint?
• In such cases, a defect is raised and discussed whether it can be fixed in
the same sprint and also how much of effort is required to fix and retest it
• If the effort is too high and if forecasted that it cannot be delivered as a
part of the current Sprint, it is either moved to a story related to the
defect which is then planned in future Sprint, or it is converted to a new
story and gets assigned to a future sprint
23
Testing: Metrics
Defect Removal Effectiveness (DRE)
Defect removal effectiveness is a metric that tells that how many defects testers could identify in their testing and how many of them got slipped to
next stage i.e. UAT or Production or Warranty period etc. DRE is expressed as %.
24
Testing: Metrics
Test Coverage (using code coverage) Unexercised code can mean either
• How much of the source code is actually exercised by my test system?" • Test system is deficient
• Testers can look inside the Black box code and analyze how much of the • Source has "dead code" (code that cannot be reached by any path)
code was actually exercised by the test set • Extra code is in the codebase that is not necessary (perhaps a feature was
• Tools like like ‘Semantic Design’ test coverage tool, ‘Bullseye Coverage’ removed but not all of the associated code was deleted)
can be used
Since code gets changed and compiled wastage of automation scripts in case they are
daily, the likelihood of code breaking the environment availability becomes
difficult for the performance testing not developed properly. With change in project
existing features is much higher course is quite normal in Agile, automations
activities
would need modifications which may impact its
ROI (Return on Investment)
Have a smoke test bed created, to be executed impacts. It is very essential for Agile projects to Automation scripts should have high
after every code build. As resource constraints carry out performance testing. To overcome reusability factor with data sheets
prevails, so it is not practical to have team the challenge, team should always have a driving the automation execution. This
members do this daily thereby having efficient separate environment for performance way team can reduce the code changes
automated test cases built to confirm the testing. The setup should be backfilled with to the automation scripts for any
environment stability after code drops the correct code base and then a round of change in the Business functionality.
smoke testing has to be done on the same. It’s an industry wide best practice, but
There should be separate stories to track the required more in Agile since it’s prone
performance testing progress to more frequent changes.
26
Testing: Challenges
Challenge
Wrong selection of Sprint to start Wrong selection of Automation
Automation of test cases Tool
It’s always a challenge to decide on the correct Sprint for starting with the
Description
automation of manual test cases. If Automation is planned at the early In Agile, User Stories get reprioritized and nothing is
stages of the Release (i.e. from the initial Sprints onwards), it leads to a lot constant if compared on a day to day basis. Hence if the
of wastage of effort as the team is not settled properly and the output is Automation Tools are not selected properly, there is a
meagre to do any automation. This leads to the automation work getting chance of the project team running into higher costs and
redone in subsequent Sprints, leading to wastage of effort. In case of late less ROI for the automation.
start of automation (i.e. during the last one or two Sprints in the Release),
the team would have more manual test cases than automated ones. This
would significantly impact the team’s velocity and delivery capabilities.
28
Automation
29
Automation: Overview
Automating the repetitive procedures can provide real value to the
projects
Continuous integration/builds, unit, functional & integration test Areas where automation can play an important role
execution and continuous/automated deployment are common
examples of applying automation
Build and deployment of the system under design
Benefits:
Automation in software design and testing eliminates risks associated Code deployment
with human error
Spares developers and testers from repetitive activities and allows them Unit test execution
to focus on the more critical aspects of system quality, thus improving
build and testing effectiveness as well as operational efficiency
Ensures reusability and scalability, which in turn translates into
Code coverage report generation
significant cost savings
Functional & Performance test execution
Team needs to
Investigate on how to automate the process and identify the tools that Code quality metrics report generation
could assist with automation
Estimate the level of effort required to implement the automation Coding conventions report generation
against the total cost and risk of manual procedures
30
Automation: Concepts
Test Data Management in Agile
• Agile Testing in Sprints gets difficult when the system is dependent on another team for test data. Sprint timelines do not give enough room for
any delays in the data setup
• Setting up the test data is done along the Sprint to make available them at least, ‘just in time’ (JIT) if not earlier, by the time when the developer
checks-in his code for claiming it ‘as done’
• Developers usually practice test automation for unit testing and integration testing, use TDD approach to complete user stories, the
synchronized supply of the test data by testing team is essential
• Analysis of the data needs is done during the backlog grooming sessions and the Sprint planning meetings to ensure the complete data set up
needs
• If data is complex and huge, we may not get the adequate support from the team owning the data. Hence the discussion should ideally start
with the business, at least a Sprint early or as per the applicable SLA to get the data at the appropriate time
• Members (from business) who are responsible for the data should be included as part of the Scrum team for the Sprint where their support is
required
• Test data created in earlier sprints can either be directly reused or used with minor modifications in order to avoid redundant data requests/set
up and reduced turnaround time for the test data creation and manipulation
31
Automation in Development
•Developers can have series of their testing automated as simple unit tests and make it available along with their versioned codebase
•These tests should be living test suites i.e. it should run to success at any point of time
•Whenever a code module is changed, the corresponding unit tests should also be updated and ensured that the test cases are passed
Unit Test •Automated Unit Tests are the first line of defense and the key step in “Fail Fast” approach
suite •Various unit testing frameworks that are available are – JUnit (for Java), NUnit (for DotNet), utPlSql (for Oracle PL/SQL)
•Static code analysis needs to be performed to identify and quantify the code quality metrics like standards, security risks, and adherence to
best practices
•As part of the development practice, the code quality checks should be run
•Only after attaining satisfactory quality metrics, the code should be checked into the version control tool
Code Quality •Some of the key tools for Static Code Analysis are CAST, SONAR.
Analysis •Developers can make use of the IDE(Integrated Development Environment) integration capabilities of these tools to integrate static code
analysis in their development process
32
Automation in Build
Continuous Integration (CI)
The aim of practicing Continuous Integration is to maintain a build environment which is able to generate “Production Ready” builds.
Following is the process:
• Static code analysis tool – As described in above section, these tools are used to check the code quality. Example – CAST, SONAR
• Build repositories – A robust repository to maintain the builds that can be uploaded/downloaded/searched with ease. Example – Nexus (for
maven builds)
• CI server – Interacts with all the above components and perform the actual build of the application along with execution of tests either
automatically or just by click of a button. Example – Jenkins, Hudson
33
Automation in Deployment
Continuous Deployment (CD)
A mature Agile team extends the Continuous Integration practice so that the application can also be automatically and regularly deployed
into multiple environments (realistically lower environments like DEV and QA). This is needed for maintaining a “Production Deployable”
builds. Any deployment issues will also be validated, as part of this process
34
Automation in Testing
Recommended to create the automated test cases right from the beginning of Sprint execution in parallel with the User story
development. Once the test cases are automated, it can be scheduled as part of the build servers to be triggered automatically
•Few sanity test cases can be handpicked and a suite of tests can be created
Smoke testing •Test suites will be executed from the build server after every deployment tasks
•Ensures that the basic features are validated automatically
•To keep the regression testing effort to a minimum, automation of test cases is mandatory
•Within the automated test cases, required regression test cases can be identified and run whenever required
Regression Testing •For new features, since the test cases are getting automated simultaneously during the System Integration testing, the
regression testing cases are also getting refreshed as part of each release
•With the minimal regression testing effort, more time can be spent on building new features
Chef: A tool that automates deployment and management of infrastructure. Infrastructure is treated as versionable, testable, and repeatable similar to
the application code.
36
• Product Owners would like to get their working product out and may not be willing
Automation: Challenges to let the team spend the time on automation frameworks that might benefit long
term
• Stakeholders must be taken into confidence on the benefits of automation
• Return on Investment (ROI) can be calculated on the adoption of automation and
used for articulation
• Automation scripts have to be well maintained along with the production code
• Enough support to be provided to the team to ensure that the changes to the
Pressure from Product Owners maintenance of the automation scripts are taken up along with business priority
• As the total number of automated tests increase, the time taken for building and
executing the tests tends to increase
Maintenance of automated • Team should decide on the priority of the tests executed along with the build and
scripts ensure that needed refactoring of automation scripts is performed to improve,
wherever possible
Lack of follow through
• Team might lose sight of the vision and may compromise on the
automation activities
Agile Maturity • Delivery lead or any member of the team should constantly remind the
team in case of any deviations
Timing of Automation • Development team might have the mental makeup of giving preference to
the code than the automation scripts or frameworks
• Team should be trained appropriately and instill the practice of creating
automated tests along with development, for sustainable maintenance of
the application
• Automating the build process when the project is nearly over, provides
very little benefit
• It can save dozens, if not hundreds of hours when automated as soon as
37
development/ testing begins
Case Study 1 - Deployment Automation
38
Case Study 2 - Code Generator
39
Continuous Integration and Associated Tools
40
Concepts
Continuous Integration is continuously integrating source code into a central repository wherein each instance of integration is
verified by the Automated Build process to ensure the stability of the project (working software) at all times
• Use of Continuous Integration effectively will deliver software much faster, and with fewer bugs
• helps to identify the integration defects much early in the software development lifecycle
• Reduces risk by providing faster feedback
• Facilitates coordination between team members and encourages collaborative approach for problem solving and process improvement in
the project
Requires that every time somebody commits any change, the entire application is built and a comprehensive set of automated
tests is run against it
If the build or test process fails, the development team stops whatever they are doing and fixes the problem immediately
Goal is to have software in a working state all the time
Continuous Integration was first written in the book ‘Extreme Programming Explained’
41
Continuous Integration Process
Things needed before getting started with CI
•Everything in the project must be checked in to a •Project build, test and deployment process should
single version control repository i.e. code, tests, be run in an automated fashion
database scripts, build and deployment scripts, and •Team must be able to run the build process in an
anything else needed to create, install, run, and test automated way from the continuous integration
the application environment
•There will be projects that don’t use any form of
version control considering that their project is not
big enough to warrant the use of version control,
which is incorrect
Software
Automated
Configuration
Build
Management
42
Continuous Integration Flow Diagram
43
Stages in Continuous Integration
44
Stages in Continuous Integration
Stage for Build, Unit and Integration Testing and Quality Check
Build gets initiated when the developers commit their individual work/code to the version control repository
system. The CI server which is installed as part of project environment, continually polls this repository (e.g.
frequency could be every few hours based on the need of the project) for detecting any changes made by the
development team
The CI server then detects changes, if any, in the version control repository, and initiates the process of
retrieving the latest copy of source code from the repository and executes the build script using build
automation tools to perform integration of the software
Once a successful build is generated, CI server triggers the process of validation of test cases/scenarios and
code quality inspection. The process of validation and inspection is automated using the automation tools for
unit and integration testing and inspection
Though these steps are automated, there would be some manual intervention required in these stages. Post
this activity, feedback is generated by the CI server and is communicated to the team members through
various mechanisms such as email and text message
45
Stages in Continuous Integration
Stage for System/Functional/Non-functional Requirement Testing
• Component Tests: Verify portions of a system such as database, file systems, or network end points
• System Tests: Exercise a complete software system including external interfaces
• Functional Tests: Executed to test the functionality of the application or product from the client perspective
Component tests take a bit more time to run when compared with Unit testing because of multiple dependencies whereas the System
and Functional tests take the longest time to run
CI system would be configured to automate and run all these types of tests
Tests can be categorized into distinct buckets and run the slower running tests (example, Component, System) at different intervals
than the faster running tests (example, Unit)
CI system Configuration would run each of these test categories with different staged builds
Slower running tests (example, System and Functional) can be automated through the tools interfaced with the CI server
46
Practices
Projects must have a repeatable, reliable, and automated build process without any human intervention
Broken builds should be fixed immediately before checking in further changes and triggering new builds else this will
compound to failure with more problems
• The most basic functionality of CI server is to poll the version control system for new commits, running build scripts
for compilation, running the tests and notifying the results to the team
• Teams commonly determine test coverage, code duplication, adherence to coding standards, and other indicators of
health, and have the results displayed in the CI server’s summary page for each build
47
Step-by-step Process of Implementing Continuous Integration
• Developed and implemented (which could be a
single script or a set of scripts)
• After the creation of each build, new
• Automate the software build cycle which includes
version of binaries should be
• Manage all the source code changes and compiling, testing, inspecting, and deployment
automatically deployed to test servers
other software artifacts processes
• Helps in improving integration with
• Uses a controlled access repository • Developers run Unit, Component, System,
customer systems
• “single source point”, all source code is Functional, and Regression tests to speed up the
• After each fix, customer may verify
available from one primary location build process
new versions
Configure CI
Use Version Use Code
Configure the Build Script for with
Control Quality
CI Server Automation Automated
Repository Analysis
Deployment
• Enables teams to schedule the builds to run at regular intervals or based on source control action performed by the developer
• Leverages the plugins such as Custom Tools, Source control management (SCM) plugins, Build tool plugins, Code analysis plugins,
unit testing plugin, Code coverage plugins, and Authentication and notification plugins
• Infosys internal team has developed custom plugins such as createuser plugin, copy-slave plugin, save-job plugin to define the
continuous integration workflow
49
Architecture Diagram of ICIP
50
Infosys Continuos Integration Platform (ICIP): Benefits
A centralized platform
available as-a-Service that
reduces project teams effort
for set up & administration
52
CI Server Tools
Cruise Control: Jenkins:
• This server automates the process of integration by monitoring the • Java-written Open Source CI tool
source code repository of the team directly • Server-based system running in a servlet container such as
• Every time a developer commits a new set of modifications, the Apache
server automatically launches an integration build to incorporate • Supports Software Configuration Management (SCM) tools
the changes that include CVS, Clearcase
Key features: • Can execute Apache Ant and Apache Mavenbased projects
• Allows remote management as well as shell scripting
• Reports using email, exe, RSS
• Builds multiple projects on a single server
• Integrates with other external tools such as Ant, Nant, MS build
•Integrated development testing tool that automates various practices that have proven to improve productivity
and software quality
Parasoft® •Used for static code analysis, data flow static analysis, and metrics analysis
•Facilitates automated peer reviews, Cactus test creation, execution, optimization and maintenance, along with
runtime error detection
•Open source tool for Java that can calculate the percentage of code accessed by various tests
Cobertura •Identifies those parts of the Java program that lack test coverage
•Based on jcoverage tool
54
Build Tools
55
Unit Testing Tools
• Unit testing framework for • Open source unit testing • Automated Java software • Component of the Toad
the Java programming framework for Microsoft testing and static analysis Development Suite for
language .NET product Oracle
• Important in the • Serves the same purpose • Includes technology for • First and only automated
development of test- as JUnit does in the Java Unit test-case generation PL/SQL code-testing tool
driven development world and execution, static available
• One of a family of unit • One of many programs in analysis, regression • Provides an efficient and
testing frameworks which the xUnit family testing, runtime error reliable way to perform
is collectively known as detection, and Design by thorough PL/SQL code
xUnit that originated with contract tests
sUnit
56
Integration and Functional Testing Tools
•Tool for automated testing of software applications from the Rational Software division of IBM
Rational Functional Tester •Allows users to create tests that mimic the actions and assessments of a human tester
•Formerly known as HP QuickTest Professional (QTP)
HP Unified Functional •Provides functional and regression test automation for software applications and environments
Testing
•Can be used for enterprise quality assurance
Parasoft SOA Test •Testing and analysis tool suite for testing and validating APIs and API-driven applications (e.g., cloud, mobile apps, SOA)
(Service-Oriented- •Basic testing functionality include functional unit testing, integration testing, regression testing, system testing, security
Architecture) testing, simulation and mocking, and load testing
•IBM Security AppScan previously known as IBM Rational AppScan is a family of web security testing and monitoring tools
Rational AppScan from the Rational Software division of IBM
•Test Web applications for security vulnerabilities during the development process, when it is least expensive to fix such
problems
Microsoft VSTS Visual •Integrated testing toolset developed by Microsoft to facilitate a plan-testtrack workflow for collaboration between
Studio Test Professional testers and developers
•Set of different software tools each with a different approach to supporting test automation
•Most Selenium QA Engineers focus on the one or two tools that most meet the needs of their project, however learning
all the tools will provide many different options for approaching different test automation problems
Selenium •The entire suite of tools results in a rich set of testing functions specifically geared to the needs of testing of web
applications of all types
•These operations are highly flexible, allowing many options for locating UI elements and comparing expected test results
against actual application behavior
•Support for executing one’s tests on multiple browser platforms
57
Performance Testing Tools
• Apache project that can be used as a load testing tool for analyzing and measuring the
JMeter Apache
performance of a variety of services, with a focus on web applications
• Tool for automated performance testing of web and server based applications from
the Rational Software division of IBM
Rational Performance Tester
• Allows users to create tests that mimic user transactions between an application
client and server
58
Case Study Cont…
59
Case Study
60
THANK YOU
© 2018 Infosys Limited, Bengaluru, India. All Rights Reserved. Infosys believes the information in this document is accurate as of its publication date; such information is subject to change without notice. Infosys
acknowledges the proprietary rights of other companies to the trademarks, product names and such other intellectual property rights mentioned in this document. Except as expressly permitted, neither this
documentation nor any part of it may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, printing, photocopying, recording or otherwise, without the
prior permission of Infosys Limited and/ or any named intellectual property rights holders under this document.