(An Article for beginners and fresher testers)
Every tester wants to know the answer for the above question. There are many other skills which really matters apart from having technical skills. Personal talents surely helps tester to show a good talent in the team itself. There are few lessons which I would like to share with you from my experience in the testing career:
- Read Books – Like Lessons Learnt in Software Testing, Perfect Software and other illusions in Software Testing, Testing computer software, etc.
- Be open with the development team and if they want you test the application before release then make sure you perform the testing cycle and give the proper feedback.
- Make sure you design and send the test cases to the Business Analyst for the review including all the scenarios, positive and negative test cases. They can review the test cases and send you for the approval or they might tell you add the more functionality if you have missed it.
- Testers normally report the bugs openly in the defect tracking tool that can really create the problems with the developers. Tester should personally talk to the developers after logging the bugs and give them the reason why you have logged it. Ask them what is the cause of this issue and what can be the impacted areas?
- Tester should have some programming knowledge and this would really help in the process of testing.
- Testers should have good knowledge on the testing tools and keep updating him with the help of tutorials available online and not to depend on any person or company to give you the trainings. Tester should at least master the functionality tool like in QTP and one in load testing like Load Runner or VSTS.
- Application and domain knowledge is very significant for the testers to know and understand deeply.
- Tester should be good in preparing the reports since this is the most crucial and important part for the testers to perform and send the appropriate reports after the testing. Tester should mention each and every thing clearly.
- Testers should be updated with the all the files/documents/Specs since there are many times when changes gets done in the application. Testers should be aware of the testing environment, tools and with the database to perform well organized testing.
Guest Article by Mandeep Singh
(An Article for beginners and fresher testers)
A software tester tends to play an important role starting from the requirement gathering phase to the delivery of the product. He has to play a vital role in every phase of SDLC to ensure that the testing phase comes out with no flaws as far as quality of the product is concerned. Depending upon the experience and number of years spent in the Testing field, each and every person is given the opportunity to take up the complex tasks of the project.
[Note – Designations depend on company to company]
- Being a fresh College Graduate, one can expect to be on a Testing Engineer profile depending upon the terminology set up by each organization. There are certain things which are expected out of them at this position ranging from good communication skills, strong documentation skill and a good team player. A good team player at this stage helps them to be well versed with all the domain members of Software Industry.
- With the relevant experience on a Testing Engineer profile and based on their proficiency and skills at this level, they can be moved to Senior Software Tester where they can be allotted a more complex projects. It will give them a good option to showcase their ability in complicated assignments as well. Here you can be given the opportunity to train the fresh graduates on the projects you have worked in.
- With the experience to hold complex projects and train the novice, you can be moved to Jr. Test Lead/Test Lead profile and there may be a small group of team allotted under your supervision. You can be asked to lead a project and the expectation will be to come out with a product of superior quality with no mismatch in the deadline allotted to complete the work. Your success depends to a large extent on the team you are handling, so it becomes very essential to show your leadership skills in this profile to keep moving ahead in Software Testing field.
- On passing all the hurdles and getting equipped with all the ins and outs of the Software Test Life Cycle and with the ability to handle a team which can deliver a product of unmatchable quality under your supervision, you may be recommended for the role of a Software QA Manager, Software Test Architect, Testing Principal, Test Manager, Project Manager, etc where you will be asked to manage not just one project but there will be multiple projects under your guidance. Even one can move towards Agile and Scrum Master
Software testing field requires candidates good in soft skills and must have the ability to think beyond the expectations and then there is a lucrative career waiting for you ahead.
Guest article by Varun Arora.
How to be a Good Tester (Some tips for beginners and fresher testers)?
Software testing is one of the highly skilled professions which include sound knowledge for the system and methods to perform the testing. There are many companies where testing is mostly done by the development team and they don’t appoint an independent team for their software. But thorough testing can never be achieved by any developer since QA engineers have the capability to perform the testing in unique ways and they have should have below characteristics which a good tester has:
- The entire testing concepts should be clear to the tester, so that tester should not stuck anywhere between the testing for respective application in different environment.
- Tester must have product knowledge thoroughly. Testing techniques can be implemented if tester has extensive knowledge about the product.
- Tester can add his value to the company and to himself if has gained knowledge on the automation tools. There are many tools which have been implemented by the testers in the companies for the easy and good output for the applications. There are very renowned tools available for functional and load testing like QTP and Load Runner. Tester should have knowledge of these tools and testing can be performed at any time in the organization for any application.
- Major characteristic of tester should be to think out of the box. This strategy will always lead to find the hidden errors from the application.
- Testers should be a team player since testing is one of the major concerns in the SDLC and in the company. Testers should work and act smartly together in the team.
- Strong analytical skills are really important for the tester to perform the extensive testing on different products. Good tester should be able to understand all the process for the software built.
- Communications skills are one of the main characteristic to be a good tester. Tester can be more effective with the good communication skills.
- Tester should be able understand all the business factors which helps in achieving the organization goals.
- Tester should be good judgemental, so that high risk areas can be discovered in the software.
- Tester has the responsibility to find the bugs in the application but it would be good if he comes out with the solutions too.
Hence, above are the major characteristics to be a good tester and experience makes the tester perfect. Testers can easily apply the best methods and approach if they are much experienced.
Guest Article by Mandeep Singh
With the advancement in IT industry and its way to cope up with its competitors, every company desires to have its each and every tool to perform to the peak to hold its position in the market. Defect Bug tracking tools are nowhere an exception in this regard and has emerged out with ample amount of tools nowadays offering numerous salient features.
Some of the Defect Bug Tracking tools that have placed themselves strongly in the market are as follows:
- Bugzero- It is a web based tool and has the ability to run on different platforms and is very easy to install. It is designed to support more than one project at a time and is incorporated with all the up-to-date features such as automatic email notification, generation of the metrics etc.
- Bugzilla- This is one such tool which has emerged out be the best for open source systems and is highly configurable.
- FogBugz- It is another web based tool, easy to use, comes with a free evaluation and offers self-explanatory features.
- IBM Rational ClearQuest- It is one of the best tools offered by IBM to track the progress of the Software lifecycle and all the enhancements or new change requests. It gives you a better insight to trace the defects logged by the respective team to make the software free of any bugs.
- JIRA- Developed by Atlassian, it is a web based tool crafted on J2EE platform and is designed to run on any platform that is equipped with Java 1.3 x.
- QuickBugs- the tool is in high demand by majority of the reputed companies nowadays and can be used for logging of the issues, can be incorporated with the new features requested by the client. It is a very easy to use tool and can be supported by multiple projects at a time. All attributes such as generation of the report, viewing the workflows of the defect or any phase of the software life cycle is included in this tool.
- BugRat-It is a Java based tool and can be used to report the issues via web or email.
- ProblemTracker-It suffice all your needs starting from logging of a defect to tracing back to the requirements or incorporating any new change requests or enhancements.
- Bug Tracking Online-With no complications of set up costs and other issues, the defects can be logged in a short span of time.
With so much Defect Bug Tracking Tools in place, select the most appropriate one as per the need and budget of your Project.
Guest article - written by Varun Arora.
What is Bug Defect Tracking?
An application intended to report any bugs found by the testers during the time of execution and for the developers to keep a track of the logged bugs is done by the means of Bug Defect tracking system. It may be regarded as a software application which provides the developers a deep insight into the errors found in their work on the application under build.
Bug Defect Tracking Workflow
Assuming a tester found a bug in the application under test and he has to report it to the developer to get it rectified, he has to go through the following flow of steps in order to make it happen in a logical documented way.
The bug found is created in the Bug Defect Tracking tool and is assigned a status of “New”. Depending on the tracking tool it can be also referred as “Open”. With this, a notification will be sent to the development team informing them of the newly created bug by the testing team.
On analysing the bug by the development team, it is passed on to a particular member of the team to work on it and the status of the defect changes to “assigned”. The developer will find the workaround for this bug and rectify it as per the desired requirement.
Assuming the bug is fixed and hence the concerned developer working on it can now change the status of the bug to “fixed” which will notify the tester who has created the bug initially.
The tester will retest the bug assigned to him after getting fixed and will verify if the same is working as expected. If the bug is fixed and is working as per the requirements, it can be considered as working fine and the status can be changed to “Closed”.
The status can be changed to “Reopened” in case there still seems to be a deviation in the actual result and the expected outcome even after the fix and can be reassigned to the development team post which Developer will again work on it and it will follow the cycle as Assigned>Fixed>Closed o Reopened depending on the current situation of the fix.
There comes a situation when a defect needs to be analysed more and cannot be resolved in the current release or it lacks certain tools and technologies to get it fixed and can be marked as “deferred”
It is imperative to follow the above discussed workflow in order to attain a professional Bug Defect Tracking process.
Guest article - written by Varun Arora.
Testing is a well-defined and well-organised process to obtain the quality deliverable. With the introduction of the requirements for any new project or existing one, there exist different stages of Testing to carry out the execution in a logical manner.
Starting with the initial phase of Requirements Stage, it is very vital for the testers to take part in this phase to clarify the doubts if any exists pertaining to any of the requirements. A tester always has the ability to visualise as per the end user requirements, so he can be of a great value to this phase. He should document all the requirements discussed for future use.
Now the intent is to put down the requirements as discussed above into a Test Plan since it will be a mere waste if proper planning is not done to achieve the target. A proper test plan document should be created which should list all the attributes such as which all functionalities need to tested, approach to be followed, number of resources, tools and technology required, hours needed to complete the allotted task and much more depending on the intensity of the project.
After the completion of Test planning, the next stage is to implement the planning done i.e. Test Design phase. Depending upon the requirements, Test Assets such as Test Cases and Test Scripts are planned to write either manually or created in an automated tool. All the requirements should be covered in a test design stage depending on which module needs to be tested first.
With the end of Test Design phase, one should move to Test Case Preparation Stage which should include writing the test cases covering all the possible requirements, breaking down into positive as well as negative scenarios. All the scenarios must be included in the test scripts covering valid as well as invalid conditions with different data inputs. This stage is very important considering the fact that it will be referred for all the future phases of Software Lifecycle.
The time is to put the test cases prepared above into the Test Execution phase where each test script created above will be executed on the application under test. The outcome will be judged as pass or fail depending on whether it is meeting the expected result or not else it will be defined as a bug and will be passed on to the developer for rectification.
Each stage holds its importance in its own term and is vital for the end product free of any bugs or errors.
Basics of Software Testing and its Principles
Software testing is incomplete without the basic foundation of its principles that must be laid down in order to deliver high quality product free of any bugs. Following lists down some of the basic principles of Software testing that must be met in order to attain maximum out of testing phase.
- The primary thing to make sure for a tester is that he should be aware of the expected outcome of a particular test case else there can be instances where the desired outcome can be missed and could result in carry forward of the bug to the next phase.
- Any issue or bug found in the application must be clarified very thoroughly with the developers and should not be overlooked in any circumstances however minor it is.
- You should not be executing your own created test scripts for the reason that you may tend to miss some scenarios which can be caught by the other tester.
- Never miss out to add the test scenarios for the already stable functionality of previous releases as they might get affected by the newly introduced functionalities. So a tester needs to make sure that he does a round of regression testing very thoroughly on the functionalities already in place.
- Apart from the requirements given by the client for the current release, a tester should try to figure out all possible scenarios with valid and invalid inputs. In short, he must include all the negative test scenarios as well in the test scripts and execute it accordingly on the application under test to figure out the flaws if any exist.
- The tester must not only concentrate on the things which are supposed to function as designed but should also focus on the areas which are not designed to function the way they are behaving i.e. in case some functionality is appearing to work correctly but is supposed to work in some other fashion, it should be analysed very thoroughly.
- Test Assets should always be created with the intention to find more and more bugs in spite of how simple and easy the application is to navigate around.
- Based on the experience of the tester, he must focus on the areas where there is a high probability of finding bugs and has resulted in major issues in the previous releases.
Looking at the principles discussed above, it is clear that testing without its basic principles is like designing a home without any design plan. Hence, it should be followed very rigorously.
Guest article - written by Varun Arora.
What is Software Testing?
An inspection or study carried out to determine the status of the client requirements with the approach to identify the bugs for the application under test is referred to as Software Testing. The term can be taken in a very light manner as it reflects but involves a real complexity for the team of member’s part of this domain.
Goals of Software Testing
Before going for testing the Application, it is important to determine the goals or aim for which testing is intended to perform.
- The foremost and basic intention behind Software testing is to make sure that the application under test is free of bugs and errors and in case it is not, it should be identified and sent for rectification.
- Software testing plays a vital role to improve the quality of the deliverable by reporting bugs at different phases of development depending on the methodology followed for the project.
- Software testing brings with it a source of reliability that is important for any business to get hold of the market.
- System’s Stability is one another checkpoint that Software Testing aims at since a stable application always gives rise to more customers and hence increases the revenue of the organization.
- Software testing ensures whether the application is ready to deliver to the client or not, so it aims to find the critical bugs early in the testing phase.
- The goal of software testing should primarily be an extension to have traceable tests with coverage of the priority requirements.
- Team performing the Software testing should not be just limited to black box irrespective of whatever the requirements say but should be aimed to have well-defined plan in order to determine the flaws in code coverage as well.
- The goal aims to ensure the flaws in application; methodologies used and are put forward in front of management in order to get it resolved.
Software testing on the whole is largely aimed at testing the application with the intent to keep the end user in mind. The goal is narrowed to the frameset where software delivery (free of bugs) within the scheduled timeline turns out to be the major element of the testing. The customer can access the application without any issue and support organizational effort should be reduced to a large extent.
Guest article - written by Varun Arora.
It is indeed a very important criterion to determine what to automate and the time when we should automate the test scripts. There are few situations where the automation becomes a necessity and the scenarios which must be considered to automate are as follows:
What to Automate?
- Any such scenario that is intended to perform on every new version of your application is beneficial to automate in order to save time.
- Another important aspect will be to automate the scenario using multiple input data for the same functionality.
- One which is intended to craft the data for extra business requirements is advisable to automate for the reason that it will save huge amount of time involved manually in creating data for such additional business scenarios.
- Situations where there is less involvement of end-user in decision making can be automated.
- Scenarios that are intended to run multiple times in a day due to its criticality or other business justification can be automated to save time and money.
- Basic Workflows and procedures that are consistent over the Application and do not require much intervention of any sort can be automated as part of the Regression assets.
All the above mentioned play a vital role when automated but it is important to determine the exact time when it should be automated. This article will help you in understating the concept - Which test cases to be Automated?
When to Automate?
- Wait for the build to get stable so that it does not require a frequent updating to the test scripts which are intended to get automate.
- Another important factor that should be kept in mind considering the benefit of Automation testing will provide is in the times of Regression Testing which will significantly lower down the testing time involved manually.
- Automate the scripts that the reusable with each version of the release so as to lower down the testing time and focus on more complex functionalities newly implemented in the current release.
- With so much to automate, it is vital to incorporate the changes and therefore the ultimate goal should be to develop a robust workflow in order to avail maximum benefit of Automation Testing.
There is no point in automating everything and anything that will not make you ahead of your schedule, hence it is very imperative to determine the above listed factors to determine “What and When to Automate.”
Guest article - written by Varun Arora.
GUI Testing Checklist
Ideally, motive of the GUI testing is to recognize your application which is according to the specific standards for graphical user interface. These checklists would be beneficial for the QA and development team. Checklist must be comprises of all the GUI components that will be tested systematically. Below is the checklist which is really beneficial for every tester to perform under GUI testing for specific application:
Colors used in the web application:
- Check the colors for the hyperlinks.
- Background color for all the pages should be tested.
- Color for the warning message should be checked.
Content used in the web application:
- Font on the whole website should be same according the requirements.
- Check that content is properly aligned or not.
- All the labels should be proper aligned
- Check all the content for respective words to be in lower and upper case.
- Check all the error message on the screen and should not have any spelling mistake.
Images used in the web application:
- Check all the graphics should be proper aligned.
- Check for the broken images all over.
- Check the size for the graphics used or uploaded.
- Check all the banners and their size.
- Check the buttons for the respective command like size, font and font size.
Navigation in the application:
- All the tabs should be loaded on time.
- Tabs should be displayed in sequence.
- All the tabs from the left to right should be correct according to the requirements.
- Check scrollbar is getting displayed if required.
- Check all the links given in the sitemap and see for broken links.
Usability in the application:
- Check the font size and it should be readable.
- Check the spelling for all the fields that they are prompting properly or not.
- Check whole website’s look and feel.
- Test the website in all resolutions like 640x480 etc.
Hence, if the entire checklist followed then there is no chance of missing any requirement from the hands of tester and developer. It is suggested to draft all the points in the excel sheet and add the columns pass and fail against each checklist. And send the development team after performing testing cycle. There are other tools which are also available and it is apart from the manual testing like web link validator to check broken link and online w3c validator tool for checking usability standards.
A must read - How to Perform GUI Testing? Points to take care
- Article by Mandeep Singh
How to Perform GUI Testing?
Basically GUI testing is performed to check the user interface and test the functionality working properly or not. GUI testing involves several tasks like to test all object events, mouse events, menus, fonts, images, content, control lists, etc. GUI testing improves the overall look and feel of the application according to the requirements. User interface for the website should be designed to attract the audiences globally. There are both options available to the testers one is manual and second is to automate with the use of an automation tool like QTP. There is planning required for all the stages in testing.
Below discussed points will let to know how to perform GUI Testing:
- First of all tester should be aware and understand design documents for the testing application. All the mentioned requirements need to be checked properly with exact figures for font size, images, navigations, controls listed in the application.
- Create the environment and test the application in different browsers like Mozilla, IE, Opera, and Safari. Sometimes design for the application does not work or behave properly in other browsers. So, make sure you are testing in all the browsers.
- Testers can check manually and if you are finding it difficult to test if application has N number of pages then chooses the option to automate the application. You can easily record the application with all respective controls to test with. And at the end iterations can be checked that they are passed or failed.
- Prepare a checklist for the GUI testing since there are many things which is related to the user interface. Make out in one sheet and execute them for the application.
- Prepare all the test cases for the user interface to perform the GUI testing effectively.
- Tester should divide all the modules which are available in the application and start performing testing module wise. This process can be easily tested and there are high chances of getting defects.
Above mentioned points are very beneficial in performing GUI testing. Tester should be more focussed on how to test the application. Planning to test the system or application is very necessary to achieve the respective goals with the help of GUI testing. Testing should be performed in keeping mind the perspective of the users who will come and use the application. Remember first impression is last impression.
Guest article - written by Varun Arora.
What is Automation Testing?
The word Automation itself describes the fact it is intended to present. With minimal or no human intervention, it is merely a process to initiate a tool to execute the procedure on the application under test.
Purpose of Automation Testing
During the start of the IT industry, everything was intended to be developed and tested under one roof only with same member of team which brought with it number of concerns regarding quality of the product. With that, a separate team was decided to form which will do only Testing. Automation Testing came into existence with the following purposes:
- Manual testing with no intervention of tools of any form came into existence which was very time consuming though offered benefits in terms of quality of the product. Testing was further divided into two parts-Manual and Automation with several tools began to emerge and start functioning as per the instruction of the individual.
- Automation Testing requires a small staff as compared to Manual Testing and turns out to be inexpensive than Manual.
- The primary purpose to divert to Automation testing is the improved efficiency that it offers as compared to Manual Testing where there can be situations when a critical bug might not get caught and could lead to downside of company reputation.
- Running the test across various platforms manually is a very difficult and time consuming task and can be effectively carried out automatically with minimal human instruction involved.
- Automation Testing tools are believed to provide more consistent and accurate results with their ability to run over different platforms and technologies over again and again.
- Assuming a project following Agile Methodology and there is big time constraint to run the Regression cycle, in such cases Automation Testing proves to be a very effective source to accomplish the same and come out with desired results.
- It tends to give your more reliable results than manual testing thereby eliminating the mistake that must have been made by the manual tester. – [This is true in Some cases]
- To perform your test speedily with tight deadlines, Automation Testing proves to be an effective solution.
Automation Testing though preferred over Manual Testing needs to be correctly determined for the time it is intended to perform. With accurate results offered, less expensive and less time consuming, the purpose of Automation Testing is solved to a large extent.
This is a guest article - written by Varun Arora. This article gives an overview of Agile Testing challenges. In Practical life, there might be some differences. This will be helpful for those who are new to Agile methodology.
Agile Testing Myth
One thing that must bind it tight to your minds is that Agile Testing is not an easy task to undertake. The other important thing is to nullify the statement that Agile Testing can be done without the need of the testers. Get in touch with your developers to obtain each and every minute detail on the Application workflow in order to come out with successful Black box as well as White Box Testing in short span of time.
Challenges in Agile Testing
- Agile Testing offers an open door policy for the requirements to creep in any time during any phase of the project and it will be greeted vey graciously and tested as per it is intended to function. Though not an easy task, but becomes a challenge for the team working on Agile methodology to accommodate the same in the already allotted functionalities to be validated.
- Because Agile methodologies move faster, it becomes a challenge for the team to navigate through whole application. Proper approach needs to be followed in order to accomplish the same such as Testing the application as per Risk-based Strategy can do wonders and also prioritizing the Test scenarios as per their priority will enhance the quality of the deliverable.
- In case of incomplete or inadequate unit testing performed by the developers, it is the testers who are at target to showcase their abilities in finding out the 90% of the hidden bugs missed by developers. It is indeed a challenging task considering the time frame of the testing phase that Agile methodology offers.
- It is not only new functionalities that need to be working as designed but Agile Testers also need to make sure that the already placed functionalities do not get affected and hence regression testing plays a vital role in Agile Methodology.
- Projects following Agile approach always lack with the appropriate documents and hence it becomes a challenging job for the testers to validate the requirements with the developers and confirm if the same is expected to work the way it is reflecting in the application else an another resource of communication will be required which will involve the customers of this Application to get the queries clarified and test accordingly.
Looking at the Challenges that Agile Testing is equipped with; it indeed becomes a very difficult task though not impossible to meet the expected commitment and deadlines.
More on Agile Testing - What is Agile Testing? Advantages of Agile Methodology
Readers Comments - Karthikeyan Murugaiah - the author of this article has got some of the concepts wrong.. for ex. he says agile allows requirements to creep in at the last minute but that's not the case, it can happen in any methodology. Also Agile does not mean that documentation is not required the agile manifesto clearly states that documentation is important but a working software is preferred more than documentation .. it doesn't say anywhere that document should not be performed..Again he says that regression testing is an issue in Agile but is it not the case in any other methodology where a QA finds bugs during the testing phase which might lead to a huge code change and which means there is a risk of adding more bugs.. I would say this article is just his perception of what Agile is and those mentioned by the author are not challenges per se.
What is Cookie?
Cookie is to be known as text a file that gets saved in the hard disk of the user’s system. Browsers are required to use the cookies which have been saved in the desired location. Informative data is recorded in the cookie and that can be retrieved for the web pages.
How to do Cookie Testing?
Being a tester, testing for the cookies is very essential since there are many web applications which include informative content and payment transactions. Below are the steps which should be considered while doing testing:
- Major cookie testing involves disabling the cookie from the option available in every browser. You need to make sure that cookies are disabled and access the respective website and check the functionality of the pages that are working properly or not. Browse the whole website and see for crashes. Basically, message should be displayed as “Cookies are disabled. Please enable the cookies to browse the website easily”.
- Another testing should be performed after corrupting the cookies. For corrupting the cookies you make sure the location of the cookies and manually edit respective cookie with fake figures or with any invalid data and save them. In some cases, internal information of the domain can be easily accessed/ hacked with the help of corrupted cookies. If you are testing banking or finance domain then this point should come first in your checklist.
- Remove all the cookies for the website you are testing and check all the website pages that are working properly.
- Cookie testing can be performed on different browsers to check whether the website is writing the cookies or not. You can check cookies manually for the existence for each and every page.
- If you are testing an application which authenticate login then get logged in with valid details. You will see the Username parameter in the address bar and can change it to see the behavior of the application. You should not get logged into different user’s account. Proper message is getting displayed or not for the action you have performed.
Therefore, above discussed is the most important cookie testing concepts that tell how to do cookie testing. Cookie testing is really necessary and it should not be missed from the hands of testers while testing any web application. Cookie testing really make the application more stable if any issues found.
- Article by Mandeep Singh
What is Agile Testing?
Agile as the name refers implies something to do very quickly. Hence Agile Testing refers to validate the client requirements as soon as possible and make it customer friendly. As soon as the build is out, testing is expected to get started and report the bugs quickly if any found. As a Tester, you need to provide your thoughts on the client requirements rather than just being the audience at the other end. Emphasis has to be laid down on the quality of the deliverable in spite of short timeframe which will further help in reducing the cost of development and your feedbacks will be implemented in the code which will avoid the defects coming from the end user.
Advantages offered by Agile Methodology:
The very first advantage that the company got to see with the Agile Methodology is the saving of time and money. There is less documentation required though documents help to a great deal in verifying and validating the requirements but considering the time frame of the project, this approach leads to focus more on the application rather than documenting the things. Since it is iterative in its form, it tends to have a regular feedback from the end user so that the same can be implemented as soon as possible. And because all phases of SDLC need to be completed very quickly, there is a transparency to each individual working on the project with the status of each phase.
Another advantage that Agile Methodology offers to other approaches available is that in case there is any Change request or enhancements come in between any phase, it can be implemented without any budget constraint though there needs to be some adjustment in the already allotted time frame which will not be a difficult task for the projects following Agile tactics. Though it is useful for any Programming language or Technology around, it is advisable to make it employ for Web 2.0 or the projects which are new in media.
Daily meetings and discussions for the project following Agile approach can help to determine the issues well in advance and work on it accordingly. Quick coding and Testing makes the management aware of the gaps existing in either requirements or technology used and can try to find the workaround for the same.
Hence, with the quicker development, testing and constant feedbacks from the user, the Agile methodology becomes the appropriate approach for the projects to be delivered in a short span of time.
- Article by Mandeep Singh
When is Agile Testing Approach followed?
In case there is a situation in the project where there is a frequent change in the requirements from the client and it is difficult to accommodate them each time in your documentation as well as Test Assets, it is always advisable to follow the Agile Testing Approach which is often used when there is a dynamic change in the requirements from the client.
Comparison of Agile over Other methods:
Here is a limelight on the Agile advantages over other methods which are known to be traditional now considering the advantages that Agile methodology offers.
-> Development of an application in Agile is incremental rather than progressive or sequential as compared to other methods such as waterfall model which tends to have a phase wise development. This feature of Agile helps to have quick testing and results in small incremental releases and each of them is tested to the depth in order to meet the requirements and in case any requirement is to be introduced further, it is not a difficult task to do so in case of Agile as compared to waterfall where it will have to be traced down to the beginning of the phase to make the appropriate changes.
-> Rather than tools and technologies talking with each other, it is the individuals who communicate with each other more often in Agile Testing approach. In case of waterfall, Extreme Programming or V-model, it is the tools, processes and technologies that often meet with each other and decide the relevant outcome. So Human communication lacks in other methods as compared to Agile method.
-> Working or rather testing the Application is always on the top priority for the projects following Agile Methodology as compared to other methods where documentation is given a more edge over other critical tasks.
-> The best part of the Agile over other methods is that it directly communicates with the user of the Application rather than having any intermediary party like client. This enables them to quickly get the feedback from the customer and appropriately implement the change in the Application.
-> When any enhancement or change request comes in, it is directly taken into account to be implemented in the Application rather than deciding to go for a further planning and revisiting the budget and time constraints as use to happen in other methods.
Agile methodology if compared to other methods offers advantages which are helpful to save time and money for Testing Phase which are important elements of any project.
- Article by Varun Arora