- Extreme Programming (XP)
- Lean Software Development
- Feature-Driven Development
- Agile Unified Process
- Dynamic Systems Development Model (DSDM)
Agile Testing is relatively a new approach of Software Testing, which involves the testing of the software from the customer point of view.
Advantages of Agile Testing:
- Agile Testing Saves Time and Money
- Less Documentation
- Regular feedback from the end user
- Daily meetings can help to determine the issues well in advance
The importance of this testing is that, unlike normal testing processes, this testing does not wait for development team to complete the coding first and then do testing. The coding and testing both goes simultaneously. It requires continuous customer interaction.
It works on SDLC ( Systems Development Life Cycle) methodologies, it means that the task is divided into different segments and compiled at the end of the task..
Before going to discuss the differences of these two u observe the fact that the client requirements may be changed on some time. Depend on the requirements we do our work .In water fall model the SDLC Phases are depend on previous Phases i.e, The output of one Phase is input to the next phase.so Whenever u do some mistake in any phase that will effects all the phases.so , whenever any modification will occur in we cant add that new requirement in the middle of the process. This is the drawback. in this model we are going in a sequential way .but the v model concept is entirely different from water fall model. Here for each and every phase there is a review . by conducting this review we can conclude that what are the new requirements , what is the effect B adding that requirement on other phases. And in this model we map the development process(verification) with testing process(validation). so for each verification there is a validation part. this is the advantage in this.
: There exists only one Test design for whole project.
: No changes can be made if customer requires it in future.
: In Waterfall Model the tester role will take place only in the test phase
but in V-Model role will take place in the requirement phase itself
: Waterfall model is a fixed process u can’t make any changes in the requirement or in any phase but in V-Model u can make any changes in the requirements
: After each is each module is tested and next module is created.
: After next module is created this module and previous module is integrated, after integrating all the modules the whole the application is tested and implemented on real time and tested for acceptance i.e testing as real time user.
: V-model is the simultaneous process but it is not in case of water fall model
: The whole application is divided into modules.
: Each module is developed and tested, each module is implemented separately on real time and gain feedback from customers and once attaining customer satisfaction we move on next module development..
When the customer does not have a clear understanding of the details of the new system. The developers interact continuously with the customer, delivering small pieces of the application to the customer for feedback, and taking corrective action as necessary.
When the technology used to develop the system is new compared to other technologies. Frequent test cycles in Extreme Programming mitigate the risk of incompatibility with other existing systems.
When you can afford to create automated unit and functional tests. In some situations, you may need to change the system design so that each module can be tested in isolation using automated unit tests.
When the team size is not very large (usually 2 to 12 people). Extreme Programming is successful in part because it requires close team interaction and working in pairs. A large team would have difficulty in communicating efficiently at a fast pace. However, large teams have used Extreme Programming successfully.
A user story is a short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system.
For Example: User story for login describes
A user needs to login to pay their bills online so that it makes easy mode of payment.
- § Login appears in the right corner of the page.
Login page looks something like this
Example of Agile:
ABC Bank is the client who needs customer to login and view their account summary. It is giving this project to H2k Infosys Company.
The requirements of this project are as follows:
- Customer should login with valid username and password.
- After logging in he has links called account summary, funds transfer, receive funds, pay credit card bills, etc
- He can transfer $ 10000 per day.
- He can receive $5000 per day.
User story for Login:
- User Name: It should be alpha numeric containing one alphabet and numbers
- Password :
- It should be case sensitive
- It should contain one higher case, one special character, one or more lower case, one more number.
- It should be minimum of 6 values and max of 10
After categorizing, since each performs different functionality each will be considered as modules. In this ABC Bank the modules will be
- View summary
- Pay Bills
v In this first login, login is created and tested in project environment i.e dummy environment and after testing is done and making sure login is working fine, meeting all the requirements, all the scenarios mentioned in User story passes, then it is implemented on real time environment.
v After this process H2k will deliver this particular module to ABC Bank and gains feedback and make it sure whether they are satisfied.
v Once the customer is satisfied the LOGIN module is finalized and move on next module accounts summary.
Dummy / QA / TEST BED or Project environment which will be virtual application for example if it is a WWW.ATT.COM website, we have the virtual website of ATT like www.alpha1.att.com which has the exact functionality and features that real ATT.com is having..
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
: In this type the whole product or the application is divided or categorized into various modules, and each module is developed and tested and delivered in increments hence it is also termed to be incremental model.
: After each module is developed and tested it gains feedback from the client and only when the client is satisfied it moves on to next module.
: It has different approaches extreme programming, SCRUM, etc always extreme programming is used (Below is all about extreme programming).
- Each module separate user story, the requirements in Agile is termed to User story.
- Each module is considered to be separate project.
- Developer and tester work in pairs for e.g. one developer writes codes and other verifies it, in similar way one tester writes test case and other reviews it and execute it.
How Agile is processed:
: It starts up initially with the requirements phase, in this phase all the requirements are gathered from the client.
: After gathering the requirements team starts discussing about the Scope of the project which means what we are going to do, how we are going to start etc.
: After discussing they categorize the functionality and breaks the whole application into several modules.
: Once the module is decided, the Development team starts writing the codes and develops the particular application, in the project environment (Please scroll down to know the definition)
After the module is been developed, QA team starts testing the module, if they find any issues they report it to Dev team and fix the issues before releasing it to client
: Once testing part is successful it is implemented on real time environment and delivered to the client.
: After it is been delivered to client, Client has their exclusive QA team who does their testing, and let the company knows if they have any issues, or if they need any modifications.
Once the customer is satisfied with that particular module that particular module is signed-off(Client is satisfied hence closing that module work) and we will move on to next module.
If client is not satisfied we will work on same module until he says OK..