Software Testing
Blog on software testing and quality

Understanding the Testing Concepts

(An Article for beginners and fresher testers)

It is very important for any Software Tester to understand the motive behind testing of any product before carrying out the actual process. The first objective should be to look out for the behaviour of the application that it performs and requirement specification document doesn’t demand it. The other would be look out for the behaviour that it does not perform and requirement specification document demands. To obtain this, it is necessary to be thorough in the Software Testing Concepts.

The main purpose of software testing is Verification, Validation and Identification of Bugs. Verification is basically inspecting on the process and verifies if we are building the product right whereas validation is a process carried out after verification and determines if the product meets the user’s requirements. Bugs identification is vital to figure out discrepancy in Actual and Expected result.

There are several SDLC Models used to carry out effective development of software which includes V-Model, Waterfall Model, Spiral Model, Iterative Model and many more. Depending on the project requirements, the appropriate one is selected and deployed to meet the needs of the project.

To carry out effective testing, the most important thing is to create a test plan which is a mandatory requirement for any organization carrying out software testing. The things covered in this document includes the people assigned to the assignments, testing scope, schedule of testing, its priority, major items that needs to be tested, process to report or log the defects, technical environment used in testing and things such as who will be doing what, when and how. Activities such as Entry and Exit criteria are also a part of Test plan document.

There is another document known by the name of Test Case that defines the input data, high level conditions and expected results. Based on the test case, we design Test Script which incorporates a step-by-step detail of a particular functionality or requirement.

System Testing is the activity carried out to test all elements, modules that are new, modified or affected with the modification. The main focus is always on validating the functional requirements and verifying how all the modules behave together.

Integration Testing is the verification of interfaces with other applications and can also include the ones owned by outside vendors as well.

User Acceptance Testing (UAT) testing is carried out by the business users to ensure the quality of the product.

So it is very important to clear the Software Testing concepts in order to achieve heights of success in Software Testing field.


Guest article by Varun Arora.

Read On 0 comments

Understanding Testing Concepts- A Foundation for Successful Testing Phase

(An Article for beginners and fresher testers)

To be proficient in any domain, industry, it is necessary to go through its foundations that will lead you to the path of success. Same holds valid for Software Testing as well. In order to carry out efficient testing and meet the expectation of the business, it is necessary to have a strong foundation of Testing Concepts. You should be able to figure out the difference between the commonly used testing terminologies such as Verification, Validation, Entry-Exit Criteria, Test plan, Test Case, Test Script and many more such as what importance does each and every term holds, what is the objective behind carrying out Software testing etc.

The factors discussed above not only help the business grow in a manner that is expected by the company but turns out to be useful for individual’s career growth as well. With the clarity on the testing concepts, one can expect to figure out more scenarios and conditions required for the application to perform better. A tester strong in basics of software testing has the ability to think out of the box and can successfully come up with the ideas to improve the current software or application.

A strong hold on the Testing concepts can help a tester to identify the importance of testing in various phases of SDLC and apart from merely carrying out testing in testing phase, he will get himself involved right from the beginning of the project. This will help him to identify the gaps if any exists in the requirements specification document and accordingly will recommend the same to the leadership. This can help the business to make the gaps rectified and stop it from carrying it to the further phases where it would have been difficult or rather costly to get it resolved.

The accurate test plan, test case and test scripts are the outcomes of strong testing concepts. It helps to reduce the rework which can arise out of lack of testing skills. To decide on the entry and exit criteria, one needs to possess the entire product knowledge and a strong hold on the requirements so that a proper decision could be made on factors such as when to stop testing or when to move onto the next phase.

As discussed, thorough understanding of the testing concepts proves to be fruitful for business as well individual’s growth and each tester must work on it to deliver a bug free product to the client.

Guest article by Varun Arora.

Read On 0 comments

Role of Tester in Testing Life Cycle

(An Article for beginners and fresher testers)

The driving force behind any successful software is the process followed to attain the same and it is the key responsibility of each and every individual working on the project to give their best in obtaining the same. Likewise, the testing phase of SDLC holds its importance with the help of its testers as they play a major role in carrying out an efficient testing. Their role in testing life Cycle cannot be ignored to bring out a product of superior quality product. Some of the key roles that a tester must play to ensure a smooth product delivery are as follows.

  • The days are gone when a tester kept on waiting for the development phase to get completed so that the testing can be carried out on the developed application. Now the tester plays a key role in each of the phases of SDLC.
  • Tester should play a key role in reviewing and validating the Requirement Specification document if it is line with the needs of the client.
  • The same holds valid for Design phase as well since all these validations will help him to create test plan and test cases to the highest standards.
  • Defects, if any exists in any phase of SDLC need to be reported instantly to avoid it carrying further to the next phases else it will be a huge loss to the company in terms of revenue as well as reputation.
  • His role extends in carrying out the core activities of the testing ranging from execution of the Test Assets to identifying the bugs in the application and reporting it to the developer either through an email or get it logged in a particular bug tracking tool.
  • The job of a tester does not end merely by logging a bug in the bug tracking tool, he needs to make sure that it is resolved by the developer as per the requirements of the client. For this, he needs to effectively communicate with the developer to get it rectified timely.
  • Being a senior tester, your role also extends to review the Test Assets created by the Junior Testers so that no requirements are missed however minor or major.

The tester plays a vital role in carrying out SDLC activities accurately for the reason described above. His contribution in bringing out a high quality product is worth a value to appreciate.

Guest article by Varun Arora.

Read On 0 comments

Importance of following a Systematic Testing Process OR Testing Life Cycle Model

(An Article for beginners and fresher testers)

Importance of following a Systematic Testing Process OR Testing Life Cycle Model

Software Development Life Cycle which is a process of developing software with proper investigation, design, implementation, testing, operations & maintenance is a very tedious task for any IT industry. One of the major phases associated with SDLC is Testing Life Cycle. This phase holds its own importance to any organization for the following reasons.

  • Verification & Validation is one of the key goals of testing life cycle and can primarily use to calculate metrics. The outcome can give you a brief comparison on the performance of different modules.
  • Identifying & Reporting Bugs is the main aim of any testing life cycle. These bugs can exist at any phase of SDLC and has to be figured out to get it rectified as soon as possible to avoid it carry forwarding to next phase.
  • Company’s Pride is one another factor taken into consideration since the reputation of any company is defined by the quality of the products/projects it delivers to the clients.
  • High Quality Product delivery is the ultimate aim of any organization. Hence it is necessary to carry out rigorous testing in order to obtain the same.
  • Efficient testing and identifying of bugs in the early stages of SDLC can Reduce Fixation Costs as compared to if it is found in later stages or SDLC or if get caught in UAT.
  • Testing if carried out properly with the focus on the application keeping in view the customer vision of the product can help the organization to Win More Project Deals in the future.
  • To be Ahead of Competitors is the challenge for any organization that largely depends on the quality of its product. This can be achieved through proper development and more from an efficient testing so that when it is delivered to the client and ultimately to the users of the application, it is free of defects.
  • Testing Improves the Quality of the software under test. There may be bugs which if not caught in testing phase can bring a huge loss to the organization which can range from increase of fixation cost to the loss of a project deal.

As seen above, testing if carried out proactively can make the company’s business to grow to highest peak. It is an art which should be performed by the individuals of highest ability and must possess excellent analytical skills to come out with different scenarios.

Guest article by Varun Arora.

Read On 0 comments

Skill set of SOFTWARE TESTING Engineer

(An Article for beginners and fresher testers)

To be recognized as one of the efficient SOFTWARE TESTING’s, you need to incorporate in you a level of proficiency required to meet the business expectations and for your career growth as well. As a part of the regular job, a SOFTWARE TESTING Engineer has to write the test plans, participates in all the important discussions related to the project, includes all the test conditions in the Test Scripts so that it becomes easy during the time of Execution. The issues found by the SOFTWARE TESTING Engineer are reported either by mail or logged in a specific bug tracking tool.

To make sure that the SOFTWARE TESTING Engineer must be able to perform his above discussed responsibilities to the highest level, it is good to obtain a certain degree of skills. It is a must to obtain in depth knowledge on the product under test. The workflow of the application should be clearly understood so that he should be able to include the negative scenarios as well apart from merely meeting the client requirements. He should be able to recommend any changes or improvement required to make the product better to the client.

As every job demands, Software Testing Engineer should also possess excellent communication skills so that he should be able to communicate the issues effectively to the developers and above all the Client should be able to track the progress of his project. He should be able to make the development team understand the flow of steps which has led to the bug in the application so that it may be easy for the developer to work on it. Ability to find the hidden bugs from the application is one of the most required skills out of any SOFTWARE TESTING Engineer.

If one is working in an Automation testing, it is good to have basic understanding of programming skills required to code the automated tests. But the ultimate goal should be to find the bugs with the Automation tool you are using since it will be of no use to develop an Automation framework if it is not able to find any bug.

Looking at the above discussed, it is clear that a SOFTWARE TESTING Engineer must have the ability to not only find the bugs but to get them resolved as per the need of the Client. The only thing that would make it possible is his in-depth knowledge of product and effective communication skills.

Guest article by Varun Arora.

Read On 0 comments

Breakdown of Tester’s Skills – From Testing Engineer to Testing/QA Manager

(An Article for beginners and fresher testers)

The perquisite to take up any job irrespective of the Industry, domain and any other factor, it is imperative to have the required skills to give your best in the task assigned to you. We need to develop a level of proficiency for the Industry we are hired for whether it is IT, Banking or any other Industry. Quality Assurance & Software Testing  is nowhere an exception to this owing to its importance in the IT Industry. Depending on your experience, it is expected to form a certain level of expertise as far as QA activity is concerned and this can be breakdown into profile specific skills- QA/Testing Engineer & QA/Testing Manager.

As far as QA Engineer skills are concerned, the primary thing expected out of them is to have good communication skills and strong analytical approach which will help them to write the Test Assets in a more rigorous manner. They must be able to capture each and every condition from the Requirement document and incorporate them into the Test Assets. Issues however minor or major must be reported as per the process such as logging them in a particular bug tracking tool. These skills are imperative not only for the individual working on the application but for the business as a whole as well. Testing the Application keeping in view the demand of the Client and the users of the product helps the tester to understand the product better. There may be situations when it is expected out of a QA Engineer to program the Automated tests, so it good to have a basic programming skill as well.

QA Managers on the other hand have a more rigorous task to handle other than validating the application. Identifying the right candidates for the required position is the challenging job for any QA Manager. You need to place your best people to the project you are supposed to manage. From reviewing the test plans to selecting the appropriate tool required for testing, the QA Manager has to be proficient in making the correct judgement on these. He must be able to develop a work environment full of energy, motivation and that drives the people to reach business goals as well their own personal goals. Besides a good decision maker, he must have the skills to build the team with expertise in different domains.

It is imperative to have the required skills based on your experience as discussed above which is beneficial not only for the business but for your professional growth as well.

Guest article by Varun Arora.


You can also read this article, which states the responsibilities of a Software Test Engineer:

The responsibilities of a Software Test Engineer can be:
1. Go through the software requirements and get clarifications on one’s doubts
2. Become familiar with the software under test and any other software related to it
3. Understand the master test plan and/ or the project plan
4. Create or assist in creating own test plan
5. Generate test cases based on the requirements and other documents
6. Procure or create test data required for testing
7. Set up the required test beds (hardware, software and network)
8. Create or assist in creating assigned test automation
9. Test software releases by executing assigned tests (manual and/ or automated)
10. Report defects (usually in a defect database) to the stakeholders
11. Create test logs
12. Report test results to the stakeholders
13. Reply to returned bug reports (for example, when a bug report is returned as not reproducible)
14. Re-test resolved defects
15. Update test cases based on the discovered defects
16. Update test automation based on the updated test cases
17. Provide inputs to the team in order to improve the test process
18. Log own time in the project management software or time tracking system
19. Report work progress and any problems faced to the Test Lead or Project Manager as required
20. (If applicable) Support the team with testing tasks as required
21. Keep himself/ herself up-to-date on the overview of the development technology, the popular testing tools (e.g. automated testing tools and test management systems) and the overview of the business domain


You can also read this article, which states the responsibilities of a Software Test Lead:

Common responsibilities of a Software Test Lead include the ones given below.

1. Be updated on the latest testing techniques, strategies, testing tools/ test frameworks and so on

2. Be aware of the current and upcoming projects in the organization

3. Review and analyze the project requirements

4. Plan and organize the knowledge transfer to the Software Test Engineers and self

5. Collect the queries related to the requirements and get them resolved by the business person (e.g. the client, business analyst, product manager or project manager) assigned to the project

6. Plan, organize and lead the testing kick-off meeting

7. Scope the required tests

8. Design the required test strategy in line with the scope and organization standards

9. Create the software test plan, get it reviewed and approved/ signed-off by the relevant stakeholders

10. Evaluate and identify the required test automation and test management tools

11. Estimate the test effort and team (size, skills, attitude and schedule)

12. Create the test schedule (tasks, dependencies and assigned team members)

13. Identify the training requirements of the Software Test Engineers

14. Identify any test metrics to be gathered

15. Communicate with the client or on site/ offshore team members, as required

16. Review the test cases and test data generated by the Software Test Engineers and get them to address the review comments

17. Track the new/ updated requirements in the project and modify testing artifacts accordingly

18. Determine, procure, control, maintain and optimize the test environment (hardware, software and network)

19. Get information on the latest releases/ builds from the development team/ the client

20. Create and maintain the required test automation framework(s)

21. Administer the project in the test management system

22. Administer the Application under test (e.g. add users for the tests), as required

23. Assign tasks to the Software Test Engineers based on the software test plan

24. Check the status of each assigned task daily and resolve any issues faced by the team members with their tasks

25. Ensure that each team member is optimally occupied with work (i.e. each Software Test Engineer should not be too overloaded or too idle)

26. Re-assign the testing tasks, as required

27. Track the assigned tasks with respect to the software test plan and the project schedule

28. Review the test automation created by the Software Test Engineers and get them to address the review comments

29. Own and maintain the test automation suite of the project

30. Schedule and execute the test automation on the project

31. Review defect reports  and assign valid defects to the relevant developer/ development manager

32. Assign returned defect reports and assist the concerned Software Test Engineer, as required

33. Ensure the resolved defects are re-tested

34. Consolidate and report test results to the concerned stakeholders

35. Be approachable and available to the Software Test Engineers, as required by them

36. Update the software test plan, as required

37. Ensure that the test cases are updated by the Software Test Engineers, as required

38. Ensure that the test automation is updated based on the updated test cases

39. Gather the decided test metrics

40. Escalate and obtain resolution of the issues related to the test environment and team

41. Plan, organize and lead team meetings and ensure action is taken based on the team discussions

42. Plan and organize training for the Software Test Engineers

43. Review the status reports of the Software Test Engineers

44. Review the time logged by the Software Test Engineers for various activities

45. Report the status to the stakeholders (e.g. the client, project manager/ test manager and the management)

46. Keep the Software Test Engineers motivated

47. Improve the test process based on the suggestions by others and own judgment

48. Manage own energy level and time

Read On 0 comments

Benefits of Automation Testing with QTP

(An Article for beginners and fresher testers)

There are many reasons to choose the option as automation testing since there are many drawbacks which can be noticed while testing the applications. Testers need to put lots of efforts in testing manually the whole website and manual testing is time consuming and dreary task. Sometimes it’s get difficult to test each and every feature in the application in the time given. Therefore, there are high chances of leaving crucial bugs untested from the application.

Software Testing process can take can be done with fast process with the help of Quick Test Professional. Testing can be performed with the created scripts in the QTP and testers can easily run the scripts whenever testing is required. Changes can also be done in the tests if change in the functionality done. There are many benefits of automating your testing application with QTP like it detects all the objects, input data, mouse moments, GUI objects. This process is really effective and fast as compare to the manual testing.

Major benefits of automation testing with QTP are discussed below:

  • Automating your application can save huge amount of time which gets spent by doing manual testing. And this is best and fast process to perform the testing.
  • QTP is reliable tool and there is no chance of human error.
  • One of the best benefits is repeatable; tester can easily test the application for repeated executions.
  • Hidden information can be easily come out with the help of programming done in the QTP.
  • Every feature in the application can be tested with the help of QTP and extensive testing can be performed with by automating all the features.
  • Another benefit of the automation with QTP is that tests are reusable and changes can also be done.

Automation testing can be performed if the application is huge and time is less. QTP is one of the renowned functional automation tools and there are companies who are really relying on this tool.

Guest Article by Mandeep Singh

Read On 0 comments