define testable units within a program specification The learner will have examined requirements for testability, created an oracle for automated testing, assessed fault-finding effectiveness of test suites, and generated inputs using a variety of techniques.Īfter completing this course, you will be able to:
The learner will have put this understanding into practice, creating effective sets of test cases (called a test suite) to properly exercise software for defect finding. We expect that you should have an understanding of the Java programming language (or any similar object-oriented language and the ability to pick up Java syntax quickly) and some knowledge of the Software Development Lifecycle.Īfter completing this course, learners will have an understanding of a variety of black-box and white-box testing techniques. This course is primarily aimed at those learners interested in any of the following roles: Software Engineer, Software Engineer in Test, Test Automation Engineer, DevOps Engineer, Software Developer, Programmer, Computer Enthusiast. To achieve this, students will employ test doubles to support their tests, including stubs (for state verification) and mocks (for behavioral verification) ().
Craft unit and integration test cases to detect defects within code and automate these tests using JUnit. Distinguish among the expected-value (true), heuristic, consistency (as used in A/B regression), and probability test oracles and select the one best-suited to the testing objective. Critique black-box and white-box testing, describing the benefits and use of each within the greater development effort. Assess the fault-finding effectiveness of a functional test suite using mutation testing. Reason about the causes and acceptability of and poor coverage Measure test adequacy using statement and branch coverage. Compare and contrast test-first and test-last development techniques. Describe the motivations for white and black box testing. Use appropriate test terminology in communication specifically: test fixture, logical test case, concrete test case, test script, test oracle, and fault.
Describe the difference between verification and validation. You will being writing and recognizing good test cases, including input data and expected outcomes.Īfter completing this course, you will be able to… You will have actively created test cases and run them using an automated testing tool. After completing this course, you will have an understanding of the fundamental principles and processes of software testing.