Exercise 2
Exercise 2
Exercise 2:
Reference course name: Development & Testing with Agile: Extreme Programming
Solve the questions in the “Take test” module given in the reference course name to gauge
wer understanding of the topic
In agile testing, the word "Agile" primarily signifies something that can be performed
quickly and immediately, but also in the area of software development.
The core-functional agile team implements it in order to test the software product and its
several modules. The implementation of agile testing makes sure to deliver a high quality
product as bugs or defects get deleted in the initial stage of the project itself.
Unlike the Waterfall model, Agile Testing can create at the beginning of the project with
endless incorporation between development and testing. It is not a sequential but the
continuous process.
The agile testing process is a smart way of testing complicated software, which accepts
more effective results as compared to the traditional testing procedures.
lOMoAR cPSD| 27968978
In the modern days of software testing, agile testing has gained a lot of acceptance and
significance. The execution of agile testing will help us identify the initial error and
elimination, giving better results in less development time and costs.
Agile Testing includes various different principles that help us to increase the
productivity of our software.
1. Constant response
2. Less documentation
3. Continuous Testing
4. Customer Satisfaction
5. Easy and clean code
6. Involvement of the entire team
7. Test-Driven
8. Quick feedback
For our better understanding, let's see them one by one in detail:
lOMoAR cPSD| 27968978
1. Constant Response
In other words, we can say that the Product and business requirements are understood
throughout the constant response.
2. Less Documentation
The execution of agile testing requires less documentation as the Agile teams or all the
test engineers use a reusable specification or a checklist. And the team emphases the test
rather than the secondary information.
3. Continuous Testing
The agile test engineers execute the testing endlessly as this is the only technique to make
sure that the constant improvement of the product.
4. Customer Satisfaction
lOMoAR cPSD| 27968978
In any project delivery, customer satisfaction is important as the customers are exposed
to their product throughout the development process.
As the development phase progresses, the customer can easily modify and update
requirements. And the tests can also be changed as per the updated requirements.
When the bugs or defects occurred by the agile team or the testing team are fixed in a
similar iteration, which leads us to get the easy and clean code.
As we know that, the testing team is the only team who is responsible for a testing process
in the Software Development Life Cycle. But on the other hand, in agile testing, the
business analysts (BA) and the developers can also test the application or the software.
7. Test-Driven
While doing the agile testing, we need to execute the testing process during the
implementation that helps us to decrease the development time. However, the testing is
implemented after implementation or when the software is developed in the traditional
process.
8. Quick response
In each iteration of agile testing, the business team is involved. Therefore, we can get
continuous feedback that helps us to reduces the time of feedback response on
development work.
Agile Testing is a fast and informal testing process. In simple terms, we can say that it is
specified as an advanced and dynamic type of Testing that is performed regularly
throughout every iteration of the SDLC (Software Development Life Cycle) by the agile
test engineers.
If we deliver the software quickly with the best of the attributes, and the customer
satisfaction is the primary concern at some stage in the agile testing process.
lOMoAR cPSD| 27968978
When we are executing the agile testing, the team takes help from several agile
methodologies, which support them in accomplishing the precise results.
The test-driven development method begins with the test itself. As the name proposes,
the TDD varies upon the repetition of the development cycle.
We already knew that the first step in of development cycle is to create a unit test case.
And in the next step, we will be designing the code that fits the test case in order to execute
the test cases.
Hence, the whole code is designed until the unit test passes. Generally, the test-driven
development is executed by using the automated testing tools and implement on units
and components of the code.
lOMoAR cPSD| 27968978
It is constructed on the same rules as TDD and ATDD. Therefore, the code is developed
as per the test case designed in this testing methodology too.
Exploratory Testing
In Software testing, exploratory testing is one particular type where the test engineers
have the fundamental freedom to explore the code and create the most effective software.
In simple words, we can say that if we don't have the requirement, then we do one round
of exploratory testing.
Exploratory testing is a very significant part of the agile test as it helps discover the
unknown risks from the software that a simple testing approach could not have noticed.
To explore each aspect of the software functionality, the test engineer creates various test
cases, executes different tests, and records the process to learn it and understand its
particular flow.
While performing the exploratory testing, we need to follow the below steps:
For more information related to the exploratory testing, refers to the following link:
https://www.javatpoint.com/exploratory-testing.
The team's members of development, testing, and the customers come together in order
to develop the acceptance test from the customer's perspective.
In Acceptance Test Driven Development, the code is acquired along with the developed
acceptance test case.
The next significant agile methodology is Extreme Programming which is denoted as XP.
When there is a continuous modification in the user requirements, we will go for the
extreme programming methodology.
The XP will help us deliver a quality product, which meets the customer's requirements
that are made clear throughout the process of development and testing.
Session-Based Testing
In the row of various agile testing methodologies, the next methodology is Sessionbased
testing. It is mainly is created on the values of exploratory testing.
Though session-based testing contains some structure and on the other hand, exploratory
testing is performed unexpectedly without any planning. It is used to help us identify the
hidden bugs and defects in the particular software.
In other words, we can say that the Dynamic Systems Development technique (DSDM) is
a correlate degree agile code development approach, which gives a framework for
developing and maintaining systems.
The Dynamic Software Development Method can be used by users, development, and
testing teams.
Crystal Methodologies
It has different quadrants to easily understand agile testing, which divides the whole
testing process into four parts.
In addition to the four quadrants, the left two specify the test engineer that code to write,
and the right two quadrants help them understand the code improved with the support
of response to the left quadrants.
Let us discuss them one by one to understand the process of agile testing:
1. Quadrant 1 (Automated)
2. Quadrant 2 (Automated and manual)
3. Quadrant 3 (Manual)
4. Quadrant 4 (Tools)
Quadrant 1 (Automated)
In the first quadrant of Agile testing, we will see mainly emphasis on the quality of the
code. We can say internal code quality, which contains the test cases and test components
that is executed by the test engineers.
And these test cases are technology-driven and used for automation testing in order to
enhance the code and support the testing team to perform their tasks.
All through the first quadrant of agile testing, we can execute the following testing:
lOMoAR cPSD| 27968978
Unit Testing o
Component
Testing
In the second quadrant of Agile testing, we will see mainly emphasis on the customer
requirements given to the team before and throughout the testing procedures, which
expands the business results of the newly created software.
The test case involved in this second quadrant is business-driven, usually manual and
automated functional tests, prototypes, and examples of test scenarios performed by
the testing team.
Quadrant 3 (Manual)
The third quadrant of agile testing primarily emphasizes the response for the previous
two phases (Quadrant 1 and Quadrant 2).
The execution of agile testing involves many iterations. And in this quadrant, these
reviews and responses of the particular iterations are sustained that helps to
strengthen the code.
To test the user experience and determine business results allows the testing team to
learn as the test develops.
The team, business owners, and even customers realistically use the product. In the
third quadrant, the test cases have been designed to implement automation testing,
which helps us develop certainty in the particular product.
o Usability testing
o Collaborative
testing o
Exploratory
testing User
acceptance testing o
lOMoAR cPSD| 27968978
Quadrant 4 (Tools)
The last and fourth Quadrant of agile testing primarily emphasizes the product's
nonfunctional requirements, including compatibility, performance, security, and
constancy.
In other words, we can say that the fourth Quadrant ensures that the code fulfils all
the non-functional requirements.
Like other Quadrants, various types of testing are performed in quadrant 4 to deliver
the non-functional qualities and the expected value. o Non-functional testing such as
Stress testing, performance testing, and load testing, etc. o Scalability testing o
Security Testing o Data Migration Testing o Infrastructure testing
As compared to the waterfall model, the agile test plan is created and updated for
every release. Furthermore, the agile test plan contains those types of testing executed
in a specific iteration, such as test environments, test data requirements, test results,
and infrastructure.
The agile test plans emphasize the following: o Testing Scope: The testing scope
specifies the sprint goals, test scope, and test coverage in which the test will be
implemented. o Performance and Load Testing: Here, it specifies the different
testing methods and procedures. o Types of testing or levels as per the feature's
complexity: It defines those types of testing or levels of testing which are going to
be used. And also specifies the data and configurations for the test and the
environment in which the test will be executed.
Mitigation or Risks Plan: It defines the backup plan prepared to overcome the
risks or issues. And it also identifies the challenges which might face at the time of
testing of the application in the current release. o Deliverables and Milestones: It
sets the deliverables and milestones of the tests as per the customer's perspective.
o Infrastructure Consideration: It governs the infrastructure which is required to
perform the tests. o Resourcing: It lists out the test tasks and the occurrence of tests,
which defines how many times the tests will be executed.
o Establish the New functionalities which are being tested.