Introduction to Software Testing

Reading Time: 5 minutes

What is Software Testing?Software testing is defined as an activity to check whether the actual results match the expected results and to ensure that the software system is Defect free. It involves execution of a software component or system component to evaluate one or more properties of interest. Software testing also helps to identify errors, gaps or missing requirements in contrary to the actual requirements. It can be either done manually or using automated tools. Some prefer saying Software testing as a White Box and Black Box Testing. In simple terms, Software Testing means Verification of Application Under Test (AUT). This tutorial introduces testing software to the audience and justifies it’s importance. Click here if the video is not accessible Why is Software Testing Important?Testing is important because software bugs could be expensive or even dangerous. Software bugs can potentially cause monetary and human loss, and history is full of such examples. In April 2015, Bloomberg terminal in London crashed due to software glitch affected more than 300,000 traders on financial markets. It forced the government to postpone a 3bn pound debt sale. Nissan cars have to recall over 1 million cars from the market due to software failure in the airbag sensory detectors. There has been reported two accident due to this software failure. Starbucks was forced to close about 60 percent of stores in the U.S and Canada due to software failure in its POS system. At one point store served coffee for free as they unable to process the transaction. Some of the Amazon’s third party retailers saw their product price is reduced to 1p due to a software glitch. They were left with heavy losses. Vulnerability in Window 10. This bug enables users to escape from security sandboxes through a flaw in the win32k system. In 2015 fighter plane F-35 fell victim to a software bug, making it unable to detect targets correctly. China Airlines Airbus A300 crashed due to a software bug on April 26, 1994, killing 264 innocent live In 1985, Canada’s Therac-25 radiation therapy machine malfunctioned due to software bug and delivered lethal radiation doses to patients, leaving 3 people dead and critically injuring 3 others. In April of 1999, a software bug caused the failure of a $1.2 billion military satellite launch, the costliest accident in history In may of 1996, a software bug caused the bank accounts of 823 customers of a major U.S. bank to be credited with 920 million US dollars. Types of Software TestingTypically Testing is classified into three categories. Functional Testing Non-Functional Testing or Performance Testing Maintenance (Regression and Maintenance) Testing Category Types of Testing Functional Testing Unit Testing Integration Testing Smoke UAT ( User Acceptance Testing) Localization Globalization Interoperability So on Non-Functional Testing Performance Endurance Load Volume Scalability Usability So on Maintenance Regression Maintenance This is not the complete list as there are more than 150 types of testing types and still adding. Also, note that not all testing types are applicable to all projects but depend on the nature & scope of the project.  

Verification vs Validation

Reading Time: 2 minutes

What is Verification?The verifying process includes checking documents, design, code, and program. What is Validation?Validation is a dynamic mechanism of Software testing and validates the actual product. Verification vs Validation: Key Difference  Verification Validation The verifying process includes checking documents, design, code, and program It is a dynamic mechanism of testing and validating the actual product It does not involve executing the code It always involves executing the code Verification uses methods like reviews, walkthroughs, inspections, and desk- checking etc. It uses methods like Black Box Testing, White Box Testing, and non-functional testing  Whether the software conforms to specification is checked It checks whether the software meets the requirements and expectations of a customer It finds bugs early in the development cycle It can find bugs that the verification process can not catch Target is application and software architecture, specification, complete design, high level, and database design etc. Target is an actual product QA team does verification and make sure that the software is as per the requirement in the SRS document. With the involvement of testing team validation is executed on software code. It comes before validation It comes after verification Example of verification and validation In Software Engineering, consider the following specification A clickable button with name Submet Verification would check the design doc and correcting the spelling mistake. Otherwise, the development team will create a button like So new specification is A clickable button with name Submit Once the code is ready, Validation is done. A Validation test found – Owing to Validation testing, the development team will make the submit button clickable  

Requirements Traceability and Traceability Matrix

Reading Time: 3 minutes

What is Traceability Matrix? (TM)A Traceability Matrix is a document that co-relates any two-baseline documents that require a many-to-many relationship to check the completeness of the relationship. It is used to track the requirements and to check the current project requirements are met. What is RTM (Requirement Traceability Matrix)?Requirement Traceability Matrix or RTM captures all requirements proposed by the client or software development team and their traceability in a single document delivered at the conclusion of the life-cycle. In other words, it is a document that maps and traces user requirement with test cases. The main purpose of Requirement Traceability Matrix is to see that all test cases are covered so that no functionality should miss while doing Software testing. In this tutorial, you will learn- What is Traceability Matrix? (TM) What is RTM (Requirement Traceability Matrix)? Why RTM is Important? Which Parameters to include in Requirement Traceability Matrix? Types of Traceability Test Matrix How to create Requirement Traceability Matrix Advantage of Requirement Traceability Matrix Requirements Traceability Matrix (RTM) Template Why RTM is Important?The main agenda of every tester should be to understand the client’s requirement and make sure that the output product should be defect-free. To achieve this goal, every QA should understand the requirement thoroughly and create positive and negative test cases. This would mean that the software requirements provided by the client have to be further split into different scenarios and further to test cases. Each of this case has to be executed individually. A question arises here on how to make sure that the requirement is tested considering all possible scenarios/cases? How to ensure that any requirement is not left out of the testing cycle? A simple way is to trace the requirement with its corresponding test scenarios and test cases. This merely is termed as ‘Requirement Traceability Matrix.’ The traceability matrix is typically a worksheet that contains the requirements with its all possible test scenarios and cases and their current state, i.e. if they have been passed or failed. This would help the testing team to understand the level of testing activities done for the specific product. Which Parameters to include in Requirement Traceability Matrix? Requirement ID Requirement Type and Description Test Cases with Status Above is a sample requirement traceability matrix. But in a typical software testing project, the traceability matrix would have more than these parameters. As illustrated above, a requirement traceability matrix can: Show the requirement coverage in the number of test cases Design status as well as execution status for the specific test case If there is any User Acceptance test to be done by the users, then UAT status can also be captured in the same matrix. The related defects and the current state can also be mentioned in the same matrix. This kind of matrix would be providing One Stop Shop for all the testing activities. Apart from maintaining an excel separately. A testing team can also opt for requirements tracing available Test Management Tools. Types of Traceability Test Matrix In Software Engineering, traceability matrix can be divided into three major component as mentioned below: Forward traceability: This matrix is used to check whether the project progresses in the desired direction and for the right product. It makes sure that each requirement is applied to the product and that each requirement is tested thoroughly. It maps requirements to test cases. Backward or reverse traceability: It is used to ensure whether the current product remains on the right track. The purpose behind this type of traceability is to verify that we are not expanding the scope of the project by adding code, design elements, test or other work that is not specified in the requirements. It maps test cases to requirements. Bi-directional traceability ( Forward+Backward): This traceability matrix ensures that all requirements are covered by test cases. It analyzes the impact of a change in requirements affected by the Defect in a work product and vice versa.   How to create Requirement Traceability MatrixLet’s understand the concept of Requirement Traceability Matrix through a Guru99 banking project. On the basis of the Business Requirement Document (BRD) and Technical Requirement Document (TRD), testers start writing test cases. Let suppose, the following table is our Business Requirement Document or BRD for Guru99 banking project. Here the scenario is that the customer should be able to login to Guru99 banking website with the correct password and user#id while manager should be able to login to the website through customer login page. While the below table is our Technical Requirement Document (TRD). Note: QA teams do not document the BRD and TRD. Also, some companies use Function Requirement Documents (FRD) which are similar to Technical Requirement Document but the process of creating Traceability Matrix remains the same. Let’s Go Ahead and create RTM in Testing Step 1: Our sample Test Case is “Verify Login, when correct ID and Password is entered, it should log in successfully” Step 2: Identify the Technical Requirement that this test case is verifying. For our test case, the technical requirement is T94 is being verified.   Step 3: Note this Technical Requirement (T94) in the Test Case. Step 4: Identify the Business Requirement for which this TR (Technical Requirement-T94) is defined Step 5: Note the BR (Business Requirement) in Test Case Step 6: Do above for all Test Cases. Later Extract the First 3 Columns from your Test Suite. RTM in testing is Ready! Advantage of Requirement Traceability Matrix It confirms 100% test coverage It highlights any requirements missing or document inconsistencies It shows the overall defects or execution status with a focus on business requirements It helps in analyzing or estimating the impact on the QA team’s work with respect to revisiting or re-working on the test cases Let’s learn RTM with an example in the Video Click here if the video is not accessible Requirements Traceability Matrix (RTM) Template Click below to download RTM Template Excel File Download the RTM Template Excel(.xlsx)