Google News
logo
Agile Testing Interview Questions
Agile testing refers to a software testing practice that follows different principles of agile software development. In other words, agile testing means testing software for defects or any other issues quickly or within the context of agile and give quick feedback for better and faster development of the project.
 
Testing and development run parallel in agile testing. The tester’s role lies not in identifying defects in the application but in behaving as a developer and bringing in improvements, suggestions, and test cases to be included in the application.
 
In agile testing, testers follow the entire lifecycle but due to constant feedback and regular interaction between developers and customers, the application can be delivered in a short time without compromising on the quality.
The principles of agile testing are :
 
* Testing is NOT a phase
 
* Everyone participates in the testing process
 
* It shortens the response time of feedback

* Testing continuously to ensure continuous improvement of the product

*
Continuous feedback to ensure the product satisfies the business requirements

*
Actively involving the business team and user representatives can help obtain quick feedback for each iteration

*
Clean and simplified code ensures it is defect-free during the iteration

*
Involving the user ensures the final product matches their requirements

* Reduces test documentation
 
Agile testing requires continuous interaction between developers, customers, managers, stakeholders, and testers. Testing is an important component of each phase of the developmental process.
Agile test plan includes types of testing done in that iteration like test data requirements, infrastructure, test environments, and test results. Unlike the waterfall model, in an agile model, a test plan is written and updated for every release.

Typical test plans in agile includes :
 
* Testing Scope
* New functionalities which are being tested
* Level or Types of testing based on the features complexity
* Load and Performance Testing
* Infrastructure Consideration
* Mitigation or Risks Plan
* Resourcing
* Deliverables and Milestones
The agile testing is the software testing process which is fully based on the principle of agile software development. It is the iterative approach where the user story becomes the output of the collaboration between the product owner and the development team.
The agile tester is one who implements the principle of agile software development principles for software testing. An excellent agile tester has the following skills :
 
* Must be familiar with the principles and concept of agile.
* Can set the priority of a task according to customer requirements.
* Should able to understand the customer requirement properly.
* Should understand the project risk due to changing demand.
* Must be excellent communication skill to communicate with the team and the clients.
Test driven development or TDD is also known as test-driven design. In this method, developer first writes an automated test case which describes new function or improvement and then creates small codes to pass that test, and later re-factors the new code to meet the acceptable standards.
Across different system platforms and environments a specification defining requirements for portability of applications in binary form is known as Application Binary Interface.
To track the project progress burnup and burn down, charts are used.
 
Burnup Chart : It shows the progress of stories done over time.
 
Burndown Chart : It shows how much work was left to do overtime.
A Test Stub is a small code that replaces an undeveloped or fully developed component within a system being tested. Test stub is designed in such a way that it mimics the actual component by generating specifically known outputs and substitute the actual component.
Due to faster possible delivery of the project, the Scrum development encourages to use automated (automated performance or automated regression) testing. While answering this question, you should explain some tools that you have used for automated testing.
In major methodologies of agile testing cases, the code is divided into smaller parts. At one specific time, each branch of code is tested. Also, continuous communication is done on that part of the code. The agile process is more flexible and focused.
QA provides additional value to the story by thinking differently about distinct scenarios. It gives quick feedback to the developers on whether the new functionality is working fine or not.
Some important tools used in Agile projects are :
 
* Active Collab
* Agile Bench
* Bonfire
* BugDigger
* BugShooting
* JIRA Agile
* LeanKit
* Pivotal Tracker
* Planbox
* qTrace
* Snagit
* Telerik TeamPulse
* Usersnap
* VersionOne
Unlike traditional development methodologies, agile development gives users flexibility through its iterative approach. An agile testing life cycle consists of the following five phases :

Impact Assessment : The impact assessment process is probably the most important phase of an agile testing life cycle, as during this process, the agile testers are expected to gather all the necessary information from all stakeholders involved in the project.

Agile Testing Planning : Stakeholders and testers collaborate at this stage to schedule the testing process and deliverables.

Release Readiness : Agile testers must test the feature in this phase to see if it meets our clients' expectations and is ready to go live.

Daily Scrums : This will probably include a morning meeting to check the progress of testing and set goals for the day ahead.

Test Agility Review : Test Agility Review is the final phase of the project in which a meeting is held with the stakeholders to assess the progress of the project and to determine whether the milestones have been reached or not.
Agile Waterfall
Testing is done in parallel with the development activity which means that as the development progresses so does the testing Testing is generally done at the end of the development
Agile is an iterative and incremental approach It is a sequential design process where design, development, testing and other phases happens one after another in a sequential way
Testing is performed concurrently with software development "Testing" phase comes after the "Build" phase
Requirements are collected even late in development. Requirements are collected before starting the development in Waterfall model.
Agile teams participate in changing requirements. Waterfall teams were not involved in changing requirements.
Agile methodology is known for its flexibility Waterfall is a structured software development methodology, and often times can be quite rigid
It believes in constant feedback and accepts changes to requirements Customer feedback is usually not collected until the very end of the project, and changes are discouraged
Agile focuses on collaboration, small releases and customer feedback Team coordination is very limited
Agile divides the project into sprints. The waterfall divides the project into stages.
Self-motivated and self-organizing teams drive the project Project manager drives the project as a central controlling authority
It allows us to complete multiple small active projects. It allows us to complete a single project.
Testing phase starts in parallel with development in Agile. Testing phase starts only after the development in Waterfall model.
Continuous testing (CT) is a methodology used in software development, where applications are continuously tested during the entire software development life cycle (SDLC) to determine whether a new release entails risks. CT is designed to provide critical feedback earlier on in the software development life cycle and to enable high-quality and faster deliveries. It extends and develops test automation strategies to address the increasing complexity and pace of development and delivery of modern applications.
Agile Testing Traditional Software Testing
Agile testing involves performing tests alongside software development in order to ensure greater transparency of the development process. Traditional testing takes place after the entire phase of software development has been completed. The testing process comes after the development cycle is complete, and it could take a long time.
In contrast, agile testing enables the team to "move forward (release) with working components while addressing defects in subsequent iterations". It emphasizes on "Fix Defect Then Release".
It requires regular interaction with customers. Customer interaction is not mandatory on a daily or weekly basis.
This process, however, is based on continuous improvement; changes are made in the next iteration of the testing cycle. The traditional approach allows for any necessary modifications to be made only during the next release. 
It is more suitable for projects where the requirements fluctuate frequently. Specifically, it is best suited for situations where the requirements are little or never likely to change.
The business team is involved in each iteration of Agile testing. Continual feedback reduces the amount of time required to provide feedback for software development work. User feedback is not obtained until the testing has been completed.
Agility follows a risk-prevention approach that is timely and efficient. In comparison, the traditional method is a risk-averse methodology.
By using an incremental and iterative approach, agile  testing reduces the overall time taken to define test requirements and validate the results. This leads to more rapid release of products without delays. As with traditional testing, it is a time-consuming process that is expensive both financially and in terms of effort.
Continuous interaction between team members is of utmost importance. Testing is done in phases, thus limiting interaction among team members.
Sashimi is used in Scrum to check if all the functions are completed after a product is displayed. It involves different methodologies like analysis, designing, coding, testing and documentation.
19 .
RC is the abbreviation of Release Candidate. It is an internally released build to check for any undetected critical issues left during the previous development period. RC is only for testing purposes.
The methodology followed by Agile testing requires the code to be broken down into small units and only one unit is worked upon or tested at a time. This is not the case with other testing methodologies. This agile process practiced by the team focuses on one particular unit of the code through continuous communication. This method is more flexible.
An acceptance test is a formal description of the behavior of a software product which is done by users, customers, or other authorized entities to determine application/software needs and business processes. It is generally used to decides the client's approval regarding any application.
Exploratory Testing Scripted Testing
An exploratory testing approach allows testers to rely on their instincts, skills, and experience to perform individual tests in-depth. The scripted testing process requires testers to follow a set of guidelines specifically designed to make sure that the actual results are as intended.
In-depth domain knowledge is required for this type of testing. Without proper domain expertise, tests cannot be conducted. It is possible to overcome the lack of domain knowledge during the test design phase. They can analyze the document along with learning from the subject matter experts.
Often, documentation is lacking in exploratory environments. Documentation is essential in Scripted Testing.
No preparation is required, and no overhead is associated with reading the documentation. Prior to executing tests, it is very important to prepare test scripts and create documentation.
Testing involves comparing the application to the tester's expectations and understanding how the application should behave. An application is verified against the specifications of the document.
Learning and adaptability are key components of this approach. Prediction and decision-making are important aspects of this approach.
It is challenging to manage test coverage. It is easier to manage test coverage.
Automation is not possible. Automation is possible.
As testers examine an application without any proper test documentation, it is very difficult to identify any missing requirements. It helps identify any missing requirements from the requirements specification document.
There may be some learning curve for new testers, especially when complex applications are being developed. A new tester can readily begin testing the system since he/she has a series of steps to follow.
QA (Quality Assurance) analysts have myriad responsibilities in agile development, as follows :
 
* Since QA works closely with the software development team from the beginning, QA is capable of identifying potential risks. As QA analysts participate in daily scrums, they can update the team with known and critical issues, so they can stay focused on the bug and speed up their planning.

* QA estimates the testing effort required for each user story in the sprint planning session.

* QA acts as a proxy product owner in the absence of a Product Owner. Additionally, they can discuss the business requirements with the Product Owner.

* For the ongoing enhancement of user stories, QA analysts provide the product owner with feedback from their past testing experiences and the experiences of their team members during each sprint.

* Developers and QA analysts engage in quick handoff demonstrations for every new feature. QA will be able to see how the newly developed feature works, allowing them to raise questions to the development team.
Here are some advantages of keeping iteration lengths consistent throughout the project :
 
* It can serve as a consistent way of measuring the velocity of the team.

* Establishing a consistent delivery pattern becomes more straightforward using it.

* It is inefficient to decide the iteration length at the beginning of each iteration. Test a few lengths, come to a decision, then stick with it until there is a reason to change.

* Having a consistent iteration length, be it one week, three weeks, or somewhere in between, helps teams settle into the pace that works best for them.