Introduction to Software Testing
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Introduction to Software Testing
This course is part of Software Testing and Automation Specialization
132,985 already enrolled
Included with
Learn more
Ask Coursera
832 reviews
Recommended experience
832 reviews
Recommended experience
What you'll learn
You will gain an understanding of the theory of testing.
You will practice writing tests for a variety of quality intent, including code coverage, defect finding, and statistical testing.
You will develop test plans to guide the testing stage of the software development lifecycle.
You will create defect reports to provide transparency and understanding to supervisors, colleagues, and users.
Skills you'll gain
Tools you'll learn
Details to know
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 4 modules in this course
After completing this course, you will have an understanding of the fundamental principles and processes of software testing. You will have actively created test cases and run them using an automated testing tool. You will being writing and recognizing good test cases, including input data and expected outcomes.
After completing this course, you will be able to⦠- Describe the difference between verification and validation. - Explain the goal of testing. - Use appropriate test terminology in communication; specifically: test fixture, logical test case, concrete test case, test script, test oracle, and fault. - Describe the motivations for white and black box testing. - Compare and contrast test-first and test-last development techniques. - Measure test adequacy using statement and branch coverage. - Reason about the causes and acceptability of and poor coverage - Assess the fault-finding effectiveness of a functional test suite using mutation testing. - Critique black-box and white-box testing, describing the benefits and use of each within the greater development effort. - 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. - Craft unit and integration test cases to detect defects within code and automate these tests using JUnit. To achieve this, students will employ test doubles to support their tests, including stubs (for state verification) and mocks (for behavioral verification) (https://martinfowler.com/articles/mocksArentStubs.html). 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. 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.
In this module, you will be introduced to the basics of testing, especially the variety of terminology to be used through the rest of the course.
What's included
6 videos1 reading5 assignments1 programming assignment2 discussion prompts
6 videosβ’Total 66 minutes
- Welcome to the Software Testing and Automation! β’3 minutes
- Introductionβ’12 minutes
- Why is software testing challenging?β’12 minutes
- What is a Test?β’6 minutes
- Automation: Using a test frameworkβ’11 minutes
- Automation: Writing JUnit testsβ’22 minutes
1 readingβ’Total 5 minutes
- Welcome to the course!β’5 minutes
5 assignmentsβ’Total 150 minutes
- Overviewβ’30 minutes
- On the difficulty of software testingβ’30 minutes
- What is a Test?β’30 minutes
- Automation: Using a Test Frameworkβ’30 minutes
- Automation: Writing JUnit Testsβ’30 minutes
1 programming assignmentβ’Total 180 minutes
- Building Unit Testsβ’180 minutes
2 discussion promptsβ’Total 20 minutes
- On coverage testingβ’10 minutes
- On Test-Driven Developmentβ’10 minutes
In this module, you will investigate a variety of testing principles, models of testing, and types of systematic testing strategies.
What's included
8 videos8 assignments2 discussion prompts
8 videosβ’Total 57 minutes
- Dependability Definitionsβ’15 minutes
- Testing Principlesβ’6 minutes
- Testing Principles: Whereβ’13 minutes
- Testing Principles: Howβ’9 minutes
- The "V Model" of Software Developmentβ’4 minutes
- Validation and Verification in the "V Model"β’4 minutes
- Structural Testingβ’4 minutes
- Mutation Testingβ’3 minutes
8 assignmentsβ’Total 218 minutes
- On Basic Testing Terminology, Dependability, and Testing Principlesβ’30 minutes
- Dependability Quizβ’30 minutes
- Testing Principles: Whereβ’30 minutes
- Testing Principles: Howβ’30 minutes
- The V-Model Quizβ’8 minutes
- Validation and Verification in the "V-Model" Quizβ’30 minutes
- Structural Testingβ’30 minutes
- Mutation Testingβ’30 minutes
2 discussion promptsβ’Total 20 minutes
- Testing Principles: Why?β’10 minutes
- Testing: Commonality vs. Specificityβ’10 minutes
In this module, you will learn about the social aspects of testing. We will learn about test plans, testing status reports, and defect reporting.
What's included
10 videos10 assignments1 peer review
10 videosβ’Total 49 minutes
- What is a test plan?β’5 minutes
- Importance of a Good Test Planβ’5 minutes
- Stages of Software Testing Processβ’2 minutes
- Test (Status) Reportsβ’3 minutes
- Risk-based Test Planningβ’6 minutes
- Software Defect Reportsβ’2 minutes
- Software Defect Reports: Analysisβ’4 minutes
- Software Defect Reports: Reportingβ’4 minutes
- Software Defect Reports: Report Contentβ’15 minutes
- Software Defect Reports: Track, Retest, and Closeβ’3 minutes
10 assignmentsβ’Total 240 minutes
- What is a Test Plan?β’30 minutes
- Importance of a Good Test Planβ’30 minutes
- Stages of Software Testing Processβ’30 minutes
- Test (Status) Reportsβ’0 minutes
- Risk Based Test Planningβ’0 minutes
- Software Defect Reportsβ’30 minutes
- Software Defect Reports: Analysisβ’30 minutes
- Software Defect Reports: Reportingβ’30 minutes
- Software Defect Reports: Report Contentβ’30 minutes
- Software Defect Reports: Track, Retest, and Closeβ’30 minutes
1 peer reviewβ’Total 180 minutes
- Building a test planβ’180 minutes
In this module, you will learn about writing unit tests and gain practice in writing these tests through three coding assignments, each with additional testing sophistication.
What's included
5 videos3 assignments3 programming assignments
5 videosβ’Total 77 minutes
- Test Doubles: Introductionβ’11 minutes
- Test Doubles: Inputβ’19 minutes
- Test Doubles: Outputβ’15 minutes
- Assessing Adequacy and Code Coverage Analysis with JaCoCoβ’10 minutes
- Flakey Tests and How to Avoid Themβ’23 minutes
3 assignments
- Test Doubles: Introductionβ’0 minutes
- Test Doubles: Inputβ’0 minutes
- Test Doubles: Outputβ’0 minutes
3 programming assignmentsβ’Total 540 minutes
- Writing Unit Tests for the Coffee Makerβ’180 minutes
- Checking Coverage with JaCoCoβ’180 minutes
- Adding Mocks and Stubsβ’180 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Offered by
Explore more from Software Development
- U
University of Minnesota
Course
- U
University of Minnesota
Course
- U
University of Minnesota
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
62.62%
- 4 stars
21.87%
- 3 stars
7.21%
- 2 stars
2.64%
- 1 star
5.64%
Showing 3 of 832
Reviewed on Sep 7, 2021
Quite challenging yet very educating course. The practice assignments are very good hands-on example and provides insight into testing
Reviewed on Jan 2, 2021
Expected knowledge of programming and use of Eclipse is more than I expect for this course. I cannot find where I can donwload the sources mentioned in the week 4 videos.
Reviewed on Jan 19, 2022
Course itself is very good. Minus one star for assignments where without forum help you are not capable to gain 10/10, even though tests are successful on your Pc
Frequently asked questions
You'll learn how to think about software quality and test software in a systematic way, not just how to run a few checks. It starts with core ideas like verification and validation, then builds into test design, white-box and black-box testing, and where testing fits in the development process. You'll apply that by writing test cases for small Java programs, automating some of them, and judging whether those tests are actually strong enough.
Yes, some Java experience is expected, or at least a similar object-oriented language plus the ability to pick up Java syntax quickly. The course moves into writing and automating tests rather than teaching programming basics, and it also assumes some familiarity with the software development lifecycle. If you're comfortable reading small classes and methods, you'll be in good shape.
It can be beginner-friendly if you're new to software testing but not new to programming. The ideas are introduced clearly, but the course is intermediate and expects you to work with Java code and development process concepts fairly early. If you're completely new to coding, this will probably feel like too big a jump.
More questions
Financial aid available,
ΒΉ Some assignments in this course are AI-graded. For these assignments, your data will be used in accordance with Coursera's Privacy Notice.
