Software testing is a validation process which confirms that a system works as per the business requirements. It qualifies a system on various aspects such as usability, accuracy, completeness, efficiency, etc. ANSI/IEEE 1059 is the global standard that defines the basic principles of testing.
The testing activity ends when the testing team completes the following milestones.
Test case execution
The successful completion of a full test cycle after the final bug fix marks the end of the testing phase.
The end date of the validation stage also declares the closure of the validation if no critical or high-priority defects remain in the system.
Code Coverage(CC) ratio
It is the amount of code concealed via automated tests. If the team achieves the intended level of code coverage (CC) ratio, then it can choose to end the validation.
Mean Time Between Failure (MTBF) rate
In software testing, verification is a process to confirm that product development is taking place as per the specifications and using the standard development procedures. The process comprises the following activities:
Static testing is a white-box testing technique that directs developers to verify their code with the help of a checklist to find errors in it. Developers can start the static testing without actually finalizing the application or program. Static testing is more cost-effective than dynamic testing as it conceals more areas than dynamic testing in a shorter time.
It is a standard software testing approach that requires testers to assess the functionality of the software as per the business requirements. The software is treated as a black box and validated as per the end user’s point of view.
A test plan stores all possible testing activities to ensure a quality product. It gathers data from the product description, requirement, and use case documents.
The test plan document includes the following:
Test coverage is a quality metric to represent the amount (in percentage) of testing completed for a product. It is relevant for both functional and non-functional testing activities. This metric is used to add missing test cases.
It’s considered not possible to perform 100% testing of any product. But you can follow the below steps to come closer.
Unit testing has many names such as module testing or component testing.
Many times, it is the developers who test individual units or modules to check if they are working correctly.
Whereas, integration testing validates how well two or more units of software interact with each other.
There are three ways to validate integration:
No. System testing should start only if all modules are in place and they work correctly. However, it should be performed before UAT (user acceptance testing).
Various testing types used by manual testers are as follows:
The test driver is a section of code that calls a software component under test. It is useful in testing that follows the bottom-up approach.
The test stub is a dummy program that integrates with an application to complete its functionality. It is relevant for testing that uses the top-down approach.
Agile testing is a software testing process that evaluates software from the customers’ point of view. It is favorable as it does not require the development team to complete coding for starting QA. Instead, both coding and testing go hand in hand. However, it may require continuous customer interaction.
It is one of the white-box testing techniques.
Data flow testing emphasizes for designing test cases that cover control flow paths around variable definitions and their uses in the modules. It expects test cases to have the following attributes:
End-to-end testing is a testing strategy to execute tests that cover every possible flow of an application from its start to finish. The objective of performing end-to-end tests is to discover software dependencies and to assert that the correct input is getting passed between various software modules and sub-systems.
When a bug occurs, we can follow the below steps.
Here are the two principal reasons that make it impossible to test a program entirely.
If the required specifications are not available for a product, then a test plan can be created based on the assumptions made about the product. But we should get all assumptions well-documented in the test plan.
It is suggested to perform a regression testing and run tests for all the other modules as well. Finally, the QA should also carry out a system testing.
If the standard documents like System Requirement Specification or Feature Description Document are not available, then QAs may have to rely on the following references, if available.
Another reliable way is to have discussions with the developer and the business analyst. It helps in solving the doubts, and it opens a channel for bringing clarity on the requirements. Also, the emails exchanged could be useful as a testing reference.
Smoke testing is yet another option that would help verify the main functionality of the application. It would reveal some very basic bugs in the application. If none of these work, then we can just test the application from our previous experiences.
Possible differences between retesting and regression testing are as follows:
Following are some of the key challenges of software testing:
Functional testing covers the following types of validation techniques:
Software testing life cycle (STLC) proposes the test execution in a planned and systematic manner. In the STLC model, many activities occur to improve the quality of the product.
The STLC model lays down the following steps:
Fault is a condition that makes the software fail to execute while performing the considered function.
A slip in coding is indicated as an error. The error spotted by a manual tester becomes a defect. The defect which the development team admits is known as a bug. If a built code misses on the requirements, then it is a functional failure.
Severity: It represents the gravity/depth of a bug. It describes the application point of view.
Priority: It specifies which bug should get fixed first. It defines the user’s point of view.
The criticality of a bug can be low, medium, or high depending on the context.
Defect detection percentage (DDP) is a type of testing metric. It indicates the effectiveness of a testing process by measuring the ratio of defects discovered before the release and reported after the release by customers.
For example, let’s say, the QA has detected 70 defects during the testing cycle and the customer reported 20 more after the release. Then, DDP would be: 70/(70 + 20) = 72.1%
Defect removal efficiency (DRE) is one of the testing metrics. It is an indicator of the efficiency of the development team to fix issues before the release.
It gets measured as the ratio of defects fixed to total the number of issues discovered.
For example, let’s say, there were 75 defects discovered during the test cycle while 62 of them got fixed by the development team at the time of measurement. The DRE would be 62/75 = 82.6%
Go through the Manual Testing Training to get clear understanding of Weak AI and Strong AI.
Defect age is the time elapsed between the day the tester discovered a defect and the day the developer got it fixed.
While estimating the age of a defect, consider the following points:
Automation testing is a process of executing tests automatically. It reduces the human intervention to a great extent. We use different test automation tools like QTP, Selenium, and WinRunner. Testing tools help in speeding up the testing tasks. These tools allow you to create test scripts to verify the application automatically and also to generate the test reports.
Quality Assurance (QA) refers to the planned and systematic way of monitoring the quality of the process which is followed to produce a quality product. QA tracks the test reports and modifies the process to meet the expectation.
Quality Control (QC) is relevant to the quality of the product. QC not only finds the defects but suggests improvements too. Thus, a process that is set by QA is implemented by QC. QC is the responsibility of the testing team.
Software testing is the process of ensuring that the product which is developed by developers meets the users’ requirements. The aim of performing testing is to find bugs and make sure that they get fixed. Thus, it helps to maintain the quality of the product to be delivered to the customer.
A QA or Test Lead should have the following qualities:
Here are some facts about the Silk Test tool:
Choosing automated testing over manual testing depends on the following factors:
An ideal bug report should consist of the following key points:
Bug leakage: Bug leakage is something, when the bug is discovered by the end user/customer and missed by the testing team to detect while testing the software. It is a defect that exists in the application and not detected by the tester, which is eventually found by the customer/end user.
Bug release: A bug release is when a particular version of the software is released with a set of known bug(s). These bugs are usually of low severity/priority. It is done when a software company can afford the existence of bugs in the released software but not the time/cost for fixing it in that particular version.
Performance testing checks the speed, scalability, and/or stability characteristics of a system. Performance is identified with achieving response time, throughput, and resource-utilization levels that meet the performance objectives for a project or a product.
Monkey testing is a technique in software testing where the user tests the application by providing random inputs, checking the behavior of the application (or trying to crash the application).
Exploratory testing is an approach to software testing, wherein testers learn simultaneously about the test design and test execution. In other words, it is a hands-on approach where testers are involved more in the test execution part than in planning.
System testing is a black-box testing technique, used on a complete integrated system, where it will test the system compliance as per the requirement.
Test reports will help us find the current status of a project and its quality. This can help stakeholders and customers take necessary actions. The complete documentation of test reports will help analyze different phases of the project.
A latent defect is a hidden defect in an application/software, which cannot be identified by a user. However, this will not cause any failure to the application because the conditions will never be met.
Very Good Material and am happy with this material.. Thank you Very much!
Your email address will not be published. Required fields are marked *