Software Testing is a process of evaluating the functionality of a software application to find any software bugs. It is basically executing a system in order to identify any gaps, errors, or missing requirements contrary to the actual requirements.
Why Software Testing
⦁ To check the reliability of the software.
⦁ To be ensured that the software does not contain any bug which can become a reason for failure.
⦁ To check the software was made according to its specification.
⦁ To check that the software meets its requirements.
⦁ To check that users are capable of using the software.
⦁ To check software works with other software and hardware it needs to work with this testing, it is implemented in two ways:
a) Manual Testing:
It is a type of Software Testing where Testers manually execute test cases without using any automation tools. Manual Testing is the most primitive of all testing types and helps find bugs in the software system.
b) Automation Testing:
It means using an automation tool to execute your test cases.
Types of Software Testing
Types of Functional Testing Software Testing
Some of the tools used for Functional Testing are:
2-Non Functional Testing:
Automated testing allows you to execute a repetitive task and regression test without the intervention of manual tester. Even though all processes are performed automatically, automation requires some manual effort to create initial testing scripts.
Some of the tools used for Automation Testing are:
⦁ Testing Whiz
⦁ Wait in
Who Does Software Testing
⦁ Software Tester
⦁ Software Developer
⦁ Project Lead/Manager
⦁ Information service management
⦁ Senior organization management
Primary Goal of Software Testing
⦁ Finding Errors
⦁ Ensure all the functionalities are implemented
⦁ Ensure the software meets the customer requirements
⦁ Ensure the quality of the product
Some Key Challenges in Software Testing
⦁ Testing the Complete Application
⦁ Relationship with developers
⦁ Regression testing
⦁ Testing always under a time constraint
⦁ Understanding the requirements
⦁ One test team under multiple projects
⦁ Testers focusing on finding easy bugs
⦁ Which tests to execute first?
⦁ Lack of skilled testers
⦁ Miscommunication or No Communication
⦁ Requirements are not freeze
⦁ Application is not testable
⦁ Lack of resources
Role of QA in Software Testing
Run Tests on New Software and Applications
In their main role, QA testers run various tests on new software products to ensure that programs satisfy all specifications and requirements. They identify any problems and run debugging programs to fix issues. Once issues have been resolved, QA testers run additional tests before products are issued for sale to consumers.
Record Defects and Issue Reports
QA testers record all defect details, creating and distributing reports outlining the types of defects found and the steps taken to resolve these issues. Maintaining documentation, such as change logs, regarding software and application defects helps QA testers recognize similar problems in the future and to provide quick resolution.
Assist Software Developers with Design Processes
QA testers apply their knowledge early in the software development process. They work closely with developers to recognize the potential for any operational issues, assess risks, and resolve issues before the new software is complete.
Software Testing Life Cycle (STLC)
Software Testing Life Cycle is a sequence of different activities performed by the testing team to ensure the quality of the software or the product.
STLC is best to introduce software testing in every phase of software development life cycle. Actually a majority of software development time is now spent on testing.
In STLC process, each activity is carried out in a planned and systematic way and each phase has different goals and deliverable.
The different phases of Software testing life cycle are
Requirement Analysis is the first step involved in Software testing life cycle. In this step, Quality Assurance (QA) team understands the requirement in terms of what we will testing & figure out the testable requirements.
Test Planning is most important phase of Software testing life cycle where all testing strategy is defined. This phase is also called as Test Strategy phase. In this phase, Test Manager is involved to determine the effort and cost estimates for entire project. It defines the objective & scope of the project.
Test Case Development:
The Test case development begins once the test planning phase is completed. This is the phase of STLC where testing team notes the detailed test cases. Along with test cases, testing team also prepares the test data for testing. Once the test cases are ready then these test cases are reviewed by peer members or QA lead.
Test Environment Setup:
Setting up the test environment is vital part of the Software Testing Life Cycle. A testing environment is a setup of software and hardware for the testing teams to execute test cases. It supports test execution with hardware, software and network configured.
The next phase in Software Testing Life Cycle is Test Execution. Test execution is the process of executing the code and comparing the expected and actual results. When test execution begins, the test analysts start executing the test scripts based on test strategy allowed in the project.
Test Cycle Closure:
The final phase of the Software Testing Life Cycle is Test Cycle Closure. It involves calling out the testing team member meeting & evaluating cycle completion criteria based on Test coverage, Quality, Cost, Time, Critical Business Objectives, and Software.