Software testers role

It is a common myth that software tester does not require any special skills except knowing English which is not true. Software testers role is one of the key players for successful project implementation. The following are the key skills required for a successful tester

Analyzing skills: These skills are required to design test cases, finding root causes for an issue occurred while in test execution and in decision making to determine if observed abnormal behaviour of a software function is defect or not. It is common in IT industry that majority of the software requirements won’t be clear and keep changing frequently. So, software tester should do thorough analysis to get an understanding of the requirement to convert into test cases and should keep minimum rework as much as possible when there are frequent requirement changes.

Good Reviewer: Finding defects only in software is not a primary responsibility of a tester and should be able to find defects in test documents as well. Examples of test documents are requirements document, test cases etc.

Ability to find defects: Capability of finding defects in application with keen observation. Tester should be well versed with the software functions under test to execute all possible functions of software to examine the behaviour.

Maintaining Clarity in Test documentation:  Test documentation such as Test Cases and defect reports should be written clearly for other stakeholders (Example: Developers, Peer Testers, Project Manager) to understand.

Negotiation Skills:  It is very important to convey the issues and make developers to understand how important to fix if the founded issue is a defect. Also, tight timelines are common in software projects so the tester should convince and make project managers and customers to understand how important to allocate extra time for testing.

Proactiveness: Tester should be very proactive in forecasting the issues and the same have to be conveyed to project stakeholders to take preventive measures that not to occur. Otherwise it could cause to delays, rework and additional cost if issues occurred.

Innovative skills:  Some of the testing tasks are repeatable and tedious. Examples of such tasks are as below:

  • Creating test evidence documents
  • Test case maintenance task such as uploading test cases written excel sheet to HP Quality Centre or Mercury Quality Centre.
  • Creating test data

Tester should identify above tasks and can create automated scripts using excel macro or automation tools. These automated scripts help to save time, cost and prevents human errors to avoid rework. Most   importantly customer would be impressed and more chances of getting the new business.

 

What is Negative testing?

Negative Testing is a software testing technique used to validate application expected behavior with invalid input data. Also, we can consider that this is one of the Software Testing Techniques available in Black Box testing.

This is one of the most effective software testing techniques to find defects.

Negative Testing with Example:  We will see how Negative Testing is used to test below requirement

Requirement: Risk assessment team in a credit card department of a bank requires to monitor payments when each transaction of an amount greater than or equal to Rs 1, 000, 00 is made more than or equal to 2 times in a day

The above requirement is developed technically as below

  • All credit card transactions for a day are captured in a mainframe file called dataset
  • Dataset above as in step 1 is loaded daily into a database table called credit card transactions
  • A COBOL program is developed which picks up the data from database table ‘credit card transactions’ to create a report called ‘Risk Assessment Report’ in showing a transaction of amount greater than or equal to Rs 1, 000, 00 is made more than or equal to 2 times in a day
  • Risk assessment team reviews the ‘Risk Assessment Report’ daily for transactions as specified in the above requirement

QA Test approach will be as below to test this requirement:

We must make sure the report is created with the specific amount and number of transactions as mentioned in the requirement.

Test Approach or Mainframe Test Approach: In QA testing we must simulate the steps 1 to 4 like in real time environment as mentioned above to make sure right transactions are captured in ‘Risk Assessment Report’

First we must create a mainframe file called data set. In this file, we must update the data like below

a) Amount == Rs 2, 000, 00 and Number of Transactions == 2 times (Positive condition since Amount and Number of Transactions are valid data to be in ‘Risk Assessment Report’)

b) Amount == Rs 3, 000, 00 and Number of Transactions == 3 times (Positive condition since Amount and Number of Transactions are valid data to be in ‘Risk Assessment Report’)

c) Amount == Rs 3, 000, 00 and Number of Transactions == 1 time (Negative condition since Number of Transactions is in valid data to be in ‘Risk Assessment Report’)

d) Amount == RS 50,000 and Number of Transactions == 3 times (Negative condition since Amount is in valid data to be in ‘Risk Assessment Report’)

e) Amount == Rs 40,000 and Number of Transactions == 1 times (Negative condition since both Amount and Number of Transactions are in valid data to be in ‘Risk Assessment Report’)

After creating data set with positive and negative data as in step 1, load the dataset into a database table credit card transaction

Run the mainframe job which in turns executes a COBOL program to create ‘Risk Assessment Report’

Now QA team must verify ‘Risk Assessment Report’ to verify below

i)  Positive data in step 1 a) above will be reported in ‘Risk Assessment Report’ since it satisfies the condition of amount greater than or equal to Rs 1, 000, 00 is made more than or equal to 2 times in a day as mentioned in requirement

ii)    Positive data in step 1 b) above will be reported in ‘Risk Assessment Report’ since it satisfies the condition of amount greater than or equal to Rs 1, 000, 00 is made more than or equal to 2 times in a day as mentioned in requirement

iii)   Negative data in step 1 c) above will not be reported in ‘Risk Assessment Report’ since it does not satisfy the condition of more than or equal to 2 times in a day as mentioned in requirement

iv)  Negative data in step 1 d) above will not be reported in ‘Risk Assessment Report’ since it does not satisfy the condition of amount greater than or equal to Rs 1, 000, 00 as mentioned in requirement

v)    Negative data in step 1 e) above will not be reported in ‘Risk Assessment Report’ since it does not satisfy the condition of amount greater than or equal to Rs 1, 000, 00 is made more than or equal to 2 times in a day as mentioned in requirement

 

Software test plan

Why Software test plan is required?

Software test plan is required because the major stakeholders that involved in any project are:

1. Project Manger who manages and allocates budget to the project stakeholders

2. Business System Analysts who creates requirement specification document

3. Development Team who is responsible for coding of any project

4. Quality Assurance Team who is responsible for testing the project

5. Test Environment Specialist who is responsible for creating test environment

6. User Acceptance Team who is responsible for doing User Acceptance Testing

7. Project/Product Implementation Team who is responsible for deploying final product into production environment

It is important to have effective communication between all the stakeholders for the successful implementation of the project. This is achieved by knowing each other responsibilities and respective deliverables that they are responsible for.

Given the effective communication stated above, the onus is also on software quality assurance team as well to let every stakeholder knows on how Quality Assurance team is contributed from their side for the successful implementation of a product. Hence Quality Assurance team uses software test plan to formally document and shares with all the stakeholders to get their acceptance about QA’s responsibilities.

Software Test Plan Definition in Quality Assurance context:

The Master Test Plan (MTP) or Software Test Plan provides planning information for each test phase of the project, including scope of testing, testing approach, data needs, environment needs, and testing resources.  It also provides high-level scheduling input for project management and summarizes the testing processes the project will follow.  

Why software testing is required?

Majority of the organizations are integrating software testing into software development lifecycle to produce high quality software. Below are the most important factors that causing organizations to integrate software testing into software development lifecycle.

  • Most important is business reputation for any business in today’s competitive world. If an intended delivered software to support business does not work then the business reputation will be spoiled which causes to lose the customers
  • Time pressure causes developers to make mistakes and further leads to introduce defects in the developed software
  • High probability of human beings can make mistakes and further leads to introduce defects in the developed software
  • Loss of money if delivered software does not work
  • Loss of time if delivered software does not work
  • Miscommunication within the project stakeholders which leads to produce unintended software
  • Documentation errors which leads to develop unintended software
  • Technology constraints or difficulties leads to produce inaccurate results when delivered software is executed
  • Can cause injury or death when safety critical applications fails to work
  • Multiple integrated software produces inaccurate results