
We can see it deeply by one by one:
- Introduction
- What is software engineering?
- Who does it?
- Why is it important?
- What are the steps?
- What is the work product?
- How do I ensure that I’ve done it right?
- What are the strategies?
- Conclusion
INTRODUCTION:
software testing is a set of activities that can be planned in advance and conducted systematically. For this reason a template for software testing—a set of steps into which we can place specific test-case design techniques and testing methods—should be defined for the software process.
WHAT IS SOFTWARE TESTING?

Software is tested to uncover errors that were made in advertently as it was designed and constructed.
- But how do you conduct the tests?
- Should you develop a formal plan for your tests?
- Should you test the entire program as a whole or run tests only on a small part of it?
- Should you rerun tests you’ve already conducted as you add new components to a large system?
- When should you involve the customer?
These and many other questions are answered when you develop a software testing strategy.
WHO DOES IT?

A strategy for software testing is developed by the project manager, software engineers, and testing specialists.As a software tester, you’ll be involved in the quality assurance stage of software development and deployment. You’ll conduct automated and manual tests to ensure the software created by developers is fit for purpose and any bugs or issues are removed within a product before it gets deployed to everyday users.
WHY IS IT IMPORTANT?
Testing often accounts for more project effort than any other software engineering action. If it is conducted hap hazardly, time is wasted, unnecessary effort is expended, and even worse, errors sneak through undetected. It would therefore seem reasonable to establish a systematic strategy for testing software.
STEPS INVOLVED IN SOFTWARE TESTING:
Testing begins “in the small” and progresses “to the large.” By this we mean that early testing focuses on a single component or on small group of related components and applies tests to uncover errors in the data and processing logic that have been encapsulated by the component(s). After components are tested they must be integrated until the complete system is constructed. At this point, a series of high-order tests are executed to uncover errors in meeting customer requirements. As errors are uncovered, they must be diagnosed and corrected using a process that is called debugging.
WHAT IS SOFTWARE PRODUCT?

A Test Specification documents the software team’s approach to testing by defining a plan that describes an overall strategy and a procedure that defines specific testing steps and the types of tests that will be conducted.
HOW DO I ENSURE THAT I HAVE DONE IT RIGHT?
By reviewing the Test Specification prior to testing, you can assess the completeness of test cases and testing tasks. An effective test plan and procedure will lead to the orderly construction of the software and the discovery of errors at each stage in the construction process.
WHAT ARE THE STRATEGIES?

A number of software testing strategies have been proposed in the literature. All provide you with a template for testing and all have the following generic characteristics:
• To perform effective testing, you should conduct effective technical reviews. By doing this, many errors will be eliminated before testing commences.
• Testing begins at the component level and works “outward” toward the integration of the entire computer-based system.
• Different testing techniques are appropriate for different software engineering approaches and at different points in time.
• Testing is conducted by the developer of the software and (for large projects) an independent test group.
• Testing and debugging are different activities, but debugging must be accommodated in any testing strategy.
A strategy for software testing must accommodate low-level tests that are necessary to verify that a small source code segment has been correctly implemented as well as high-level tests that validate major system functions against customer requirements. A strategy should provide guidance for the practitioner and a set of milestones for the manager. Because the steps of the test strategy occur at a time when deadline pressure begins to rise, progress must be measurable and problems should surface as early as possible.
CONCLUSION:

In many ways, testing is an individualistic process, and the number of different types of tests varies as much as the different development approaches. For many years, our only defense against programming errors was careful design and the native intelligence of the programmer. We are now in an era in which modern design techniques [and technical reviews] are helping us to reduce the number of initial errors that are inherent in the code. Similarly, different test methods are beginning to cluster themselves into several distinct approaches and philosophies.
REFERENCE:
Software Testing e-Books – https://www.cigniti.com/e-books/