Showing posts with label Quality Assurance Services. Show all posts
Showing posts with label Quality Assurance Services. Show all posts

09 September, 2013

A Tester’s perspective on agile Software testing projects

Agile no longer seems to be unfamiliar to the industry. Over the years, the software has progressed rapidly and has developed to a commonly accepted methodology. Conducting tests in Agile projects has necessitated a tester to undertake a paradigm shift from conventional testing roles. It requires a change in the attitude where a tester needs to take up a more involved and upfront role against the traditional relay race oriented approach. This particular software strives towards getting things right and in place in the very first attempt thereby, reducing the need for QA testers to receive something over the finish line.

Certified software testers
Agile is a methodology that aims towards delivering constant value to users /customers frequently and incrementally based on the feedback and communication. These two aspects are important to successful Agile method and testers need to play an important role for generating value in such projects through different iteration phase.

Usually, the QA activities involve three phases in terms of a project type. However, it is to be noted that there is no set or predefined rule that guides the process and it can mould itself according to the project situation. The role of an Agile QA tester is not restricted to a set process as the methodology directs role in accordance to the situation.

Pre-iteration: This particular phase involves a detailed analysis of the requirements by the BAS following a detailing of the acceptance criteria for that specific story. Since the QA testers seem to be an instantaneous consumer of the requirements, it becomes significant to verify the requirements quite often and early.

Verification of the requirement/story: Agile testing involves early feedback, which might not always be offered by testing the requirements, but at times by conducting early requirement testing. The QA testers need to have a clear look at the requirements for maintaining testability and clarity effectively. This helps determining the requirements that are testable and definite.

  • Requirement should always be small for it should match sense with the context.
  • Acceptance criteria should never be duplicate or overlap from different stories.

To ensure doing this successfully, it is important to achieve a strong communication between the Business Analysts/Development/ Quality Assurance.

Testable: The testability aspect necessitates a complete scan of the story to determine what needs to be done for testing the same. The factors include:

  • Test data
  • Environment
  • Dependency on other requirements
  • Finding requirements that are hidden

Getting information about all these details early makes way for prioritizing the story in accordance to the backlog thereby, enabling a smooth execution in the iteration phase. QA testers also take part in meetings related to iteration planning for offering a perspective enabling the team to produce a developer estimate. This participation is deemed as a big role as the professionals do escalate some implicit requirement.

Activities of the QA in the Iteration Phase
Once the QA testers seem to be happy with the acceptance criteria, they help defining the acceptance tests for that particular story. What are acceptance tests? Well, these are actually requirements in aspect of the tests that can be executed to understand the expectations from the requirements. These usually tend to be automated and help driving development. It is important to note that these should not involve too many scenarios of corner case as it would lead to unnecessary delays and might end up producing likewise automated tests.

People often fail understanding the fact that acceptance tests in terms of Agile projects are different from the conventional and traditional projects. Acceptance testing in such projects are conducted prior to delivering the software as against to the traditional projects, which involve performing tests at the software lifecycle end.

Purposeful Use of Automation
Automation in Agile can turn out to be quite controversial. Many people make the mistake of attempting to automate everything and end up being caught in a trap of long cycle feedback. Automation is all about providing feedback early in terms of the latest code alongside being the key to identifying what is worth and what is not.

Each automated test involves a cost associated with the same. The automation cost must always be compared to the cost of operating or running the test. The questions that should be asked in such situations are:

  • What to do in case it is not an automated test?
  • What can get lost and what would exactly be the cost of setting up things around the code that is responsible for the coverage loss?
  • Is manual testing cheaper?

Well, the answers to the questions might not always be straightforward in terms of finding the test value. It often ends up to be a contextual decision depending on the project size and the number of people engaged with the same. Alternatively, a lengthy feedback cycle equals more people contributing time for getting the instant feedback.

You can hire software testing companies from India after due validation of their skillsets, expertise and experience in handling huge agile software testing projects to avoid risks associated with letting an amateur do load testing for you.

We provide software testing services. If you would like to talk to one of our certified software testers, please contact us at Mindfire Solutions.

21 August, 2013

Manual v. Automated Testing: How to Achieve Consistency

software testing services
Software testing refers to the process of verifying as well as validating the successful functioning of a particular software application/program/product. It ensures that the ultimate product/application/program caters to the technical as well as the business requirements, which guide the entire design and development procedure at best. This particular process of testing is implemented in a number of software enterprises to assure that the product that is being launched in the market is safe, standard, and effective.

Presently, two major approaches of software testing exist in the market that can be zeroed down to manual and automatic. The procedure of manual testing refers to the idea of hiring a professional tester to try or execute the product/program/application in different possible approaches of customer use. On the other hand, the automated procedure is all about acquiring a third party or external tool that is designed to execute a pre-set of scenarios along with steps that a customer might use.

Now, when it comes to manual vs. automation testing services, it is safe to say that the key to software testing rests with automation. The first question that an enterprise or tester should ask oneself when conducting manual tests is that ‘is it at all possible to make the process automatic?’ If yes, then it is always wise to think of the ways to automation.

How does Manual Testing Occur?
Let us take this as an instance: you are a member of a Quality Assurance team that is responsible for conducting web application tests and you find out there is no automated process written for the same. The outcome: every time, you think of testing apps, you need to click all the links/buttons manually, enter data into input fields, as well as verify proper handling of input and output fields. After the completion of the method, you document the errors that have been encountered and notify the developers to fix the errors accordingly. Now, all these steps enable the functioning of a single application. You need to repeat the entire process for all the applications/programs.

What’s the problem here?
First of all, this process is not just cumbersome, but also inconsistent. If there is a team conducting software tests, the process completely turns out to be relative in respect to the individual conducting the test of a particular application/program. On the other hand, even if you are single-handedly taking care of the entire process, the approach is most likely to change, every time you take up the same. Well, a probable solution to this situation rests with the idea of creating a set standard that everyone needs to follow while testing application. However, it is hard to determine that the standard is being followed by everyone.

Secondly, even if everybody is keen on following the set standard, the method does not guarantee complete efficiency. The reason is simple; it takes too much time to ensure proper functioning of a web application or a program. Moreover, it also turns out to be boring. After all, all you need to do is follow instructions like ‘press this button’, ‘type this’, ‘click here’, etc and that too repeatedly. Moreover, when you have the choice of implementing alternate ways of software testing, the entire manual procedure seems to be disinteresting.

How to solve the problem? The solution to efficient testing
If you feel like being turned to a machine while conducting manual tests, it is time that the machine takes up the job. It is always wiser to invest the time in something better like implementing an automated test process, which can be run quickly as well as efficiency without any hitch.

The process of automated testing offers an enterprise reliability, consistency, as well as speed alongside making way for better time allocation. If programmed properly, the tasks can be easily performed consistently in an identical approach. Automation definitely enables fast run of the tasks at specific occurrences, which as a result saves maximum effort, time and money.

We provide software testing services. If you would like to talk to one of our certified software testers, please visit Mindfire Solutions.