There are two main categories of test design techniques: static techniques, which do not execute code, and dynamic techniques, which include specification-based, structure-based, and experience-based categories. Specification-based techniques test software as a black box against requirements. Structure-based techniques test internal software structures. Experience-based techniques leverage the experience of technical and business experts. These technique categories can be applied at different testing levels from component to acceptance testing.
Testing software is important to uncover errors before delivery to customers. There are various techniques for systematically designing test cases, including white box and black box testing. White box testing involves examining the internal logic and paths of a program, while black box testing focuses on inputs and outputs without viewing internal logic. The goal of testing is to find the maximum number of errors with minimum effort.
The document provides answers to various questions related to manual software testing practices. It discusses key concepts like priority and severity levels of defects, examples of high severity low priority defects. It also covers the basis for test case review, contents of requirements documents, differences between web and client-server application testing, defect life cycle, and techniques for test plan preparation. The document is a guide for manual testers that aims to enhance their understanding of software testing concepts and best practices.
Regression testing is testing performed after changes to a system to detect whether new errors were introduced or old bugs have reappeared. It should be done after changes to requirements, new features added, defect fixes, or performance improvements. There are various strategies for regression testing including re-running all tests, test selection, test prioritization, and focusing on areas like frequently failing tests or recently changed code. While regression testing helps ensure system quality, managing large test suites over time poses challenges in minimizing tests while achieving coverage. Automating regression testing can help address these challenges.
This is a presentation I made to make decision on which tools and frameworks should we use in our new dotnet core application to implement test driven development.
The document discusses a test automation framework (TAF) that helps perform automated testing effectively. It has several key features including being keyword-driven, product-independent, tool-independent, and compatible with continuous integration frameworks. The TAF workflow involves initialization, development, usage, and maintenance phases. The TAF architecture consists of test scenarios that run via the TAF core and output results to various formats.
The document discusses the "test pyramid" concept for balancing test suites from unit to end-to-end tests. It provides examples of different types of tests including unit tests, integration tests, UI/end-to-end tests. It also discusses challenges with different types of tests and strategies for addressing those challenges including dependency injection, mocks, and tools like Cucumber, Robolectric, and Pacto. The document seeks feedback on testing approaches and provides additional resources on testing best practices.