Software Testing Reading Note
Software Testing Reading Note
CHAPTER THREE
OVERVIEW OF TEST EXECUTION AND REPORTING
Testing is an important aspect of software development and helps to ensure the
quality of the product. Test Execution and Reporting are crucial parts of the
testing process, as they ensure that the tests are run efficiently and effectively
and that the results are documented properly. The lecture will provide an in-
depth understanding of the test execution process, its importance, and the
ways to report and document the test results. Additionally, defect tracking and
management will also be discussed in this lecture, which is essential to ensure
that the defects are identified, tracked, and fixed in a timely manner.
BENEFITS OF TEST EXECUTION AND REPORTING
Improved Product Quality - Effective testing helps to identify defects early in the development
cycle, resulting in improved product quality. By identifying defects early, developers can fix issues
before they become more complex and costly to resolve, leading to a better overall product.
Faster Time to Market - Effective testing helps to identify defects that could delay the release of a
product. By identifying and addressing these issues promptly, testing can help reduce time-to market,
giving a company a competitive advantage over its competitors.
Cost Savings - Effective testing helps to identify defects early in the development cycle, reducing
the cost of fixing defects. It is cheaper and easier to fix a defect in the early stages of development
than after the product has been released.
Better Customer Satisfaction - Effective testing helps to ensure that the product is meeting the
customer's requirements and expectations. By identifying and fixing defects early, customers will have
a better user experience with the product, leading to increased customer satisfaction.
Compliance - In many industries, software products must meet certain regulatory standards before
they can be released. Effective testing and reporting ensure that the product meets these regulatory
standards and helps the company avoid costly penalties for non-compliance.
Test execution is the process of running test cases and verifying if the software under test works as
expected
Test reporting and documentation involve collecting and documenting test results and other relevant
information during the testing process. Test reports may include test progress reports, test result
reports, test summary reports, and defect reports
Test documentation provides a comprehensive view of the testing process and helps track the
progress of testing activities
Defect tracking and management are important aspects of the software testing process. The defects
found during testing need to be tracked and managed until they are resolved.
The defect tracking and management process includes the following steps: - Defect Logging: All
defects identified during the testing process are logged in the defect tracking tool (JIRA, Bugzilla and
Trello).
Test environment setup must be done carefully to ensure that the testing environment is stable and
consistent throughout the testing process
Test data must be carefully created and managed to ensure that it is relevant, accurate, and complete
Test result verification involves verifying the results of test cases and ensuring that the software under
test works as expected. Test results must be carefully verified to ensure that all possible scenarios
are covered and that defects are identified and reported
JIRA: JIRA is a project management tool that is widely used for issue tracking, bug tracking, and
project management. It is popular among software development teams and has many features like
customizable workflows, issue linking, and reporting.
Bugzilla: Bugzilla is an open-source defect tracking tool that is widely used in software development
projects. It is a web-based tool that allows teams to track defects, issues, and bugs in the software.
DEFECT TRACKING TOOLS
MantisBT: MantisBT is another open-source defect tracking tool that is popular among software
development teams. It has a simple and user-friendly interface and offers features like email
notifications, issue tracking, and reporting.
Trello: Trello is a project management tool that is used for tracking tasks and managing projects. It
has a simple and intuitive interface that allows teams to track defects, issues, and bugs easily.
Asana: Asana is a project management tool that is used for tracking tasks, managing projects, and
collaborating with team members. It has a feature called "Bugs" that allows teams to track defects,
issues, and bugs in the software.
CONCLUSION
In conclusion, effective test execution and reporting are critical components of the software testing
process. It helps to ensure that the product meets customer requirements, is of high quality, and is
released on time. Defect tracking and management is also an essential component of the testing
process, enabling defects to be identified, prioritized, and resolved, resulting in a better-quality
product.
CHAPTER FOUR
TESTING TECHNIQUES OVERVIEW
Testing techniques are methods used to evaluate software quality by assessing the
software's functionality, performance, and other attributes. The main testing
techniques are black-box testing, white-box testing, and grey-box testing.
Automated testing is a testing technique that involves using tools and scripts
to automate the testing process.
BLACK-BOX TESTING
Black-box testing is a testing technique where testers examine the software's
functionality without knowing its internal workings. Testers use input data to
test the software's output and verify that it meets the expected results.
• This technique does not provide information on the software's internal structure.
• It can be time-consuming to generate test cases for complex software systems.
• Testers may not test all possible scenarios, resulting in potential defects.
WHITE-BOX TESTING
White-box testing is a testing technique where testers examine the software's
internal workings to evaluate its quality. Testers use their knowledge of the
software's architecture and design to generate test cases and assess its
functionality.
Advantages of White-Box Testing
• Testers must have technical knowledge of the software's internal workings to use this
technique.
• This technique may not provide a complete evaluation of the software's functionality from an
end-user's perspective.
• It can be time-consuming to generate test cases for complex software systems.
GREY-BOX TESTING
Grey-box testing is a testing technique that combines elements of both black-box
and white-box testing. Testers use limited knowledge of the software's internal
workings to generate test cases and evaluate its functionality.
Advantages of Grey-Box Testing
• Testers can use limited technical knowledge to generate test cases and evaluate the software's
functionality.
• This technique can help to identify defects that may have been missed during the software
development process.
• Testers can evaluate the software's functionality from both an enduser's and technical
perspective.
Disadvantages of Grey-Box Testing
• Testers must have some technical knowledge of the software's internal workings to use this
technique.
• It can be challenging to identify and address defects that arise due to complex interactions
between software components.
• This technique may not provide a complete evaluation of the software's functionality.
AUTOMATED TESTING
Automated testing is a testing technique that involves using tools and scripts to
automate the testing process. Testers use automation tools to generate test
cases, execute tests, and report test results.
Advantages of Automated Testing
Increased Efficiency: Automated testing is much faster than manual testing. It
can run tests in parallel, 24 hours a day, and can execute repetitive tests with
a high level of accuracy, freeing up testers to focus on more complex testing
tasks.
Increased Test Coverage: Automated testing can cover a large number of test
cases that are impossible to execute manually. It can also run tests on multiple
platforms and configurations simultaneously.
Improved Accuracy: Automated tests are less prone to errors and are more
reliable than manual tests. They eliminate the risk of human errors and ensure
consistent results.
Cost-Effective: Although there is an initial investment in developing and
maintaining automated tests, automated testing is more cost-effective in the
long run as it reduces the need for manual testing.
Disadvantages of Automated Testing
High initial investment - setting up an automated testing environment requires
significant initial investment in terms of infrastructure, tools, and skilled personnel.
Maintenance overhead - automated tests require regular maintenance and
updates to ensure they remain effective and relevant.
Limited human insight - automated tests cannot replace the human element of
testing, such as exploratory testing, where testers can use their experience and intuition
to identify issues.
False sense of security - automated tests may provide a false sense of security, leading
to complacency and a reduced focus on manual testing.
CONCLUSION
In conclusion, testing techniques play a crucial role in software testing, with black-box,
white box, and grey-box testing being the most commonly used techniques. Automated
testing provides numerous advantages, such as faster testing, improved accuracy, and
increased test coverage. However, it also has some disadvantages, such as high initial
investment, maintenance overhead, limited human insight, and a false sense of security.
It is important to understand the strengths and weaknesses of each testing technique
and to choose the appropriate technique based on the software system being tested and
the testing goals.
Develop a test plan that outlines the testing approach and objectives for the
calculator application. The test plan should include the following: