We may earn an affiliate commission when you visit our partners.
Course image
Mike and Kevin Wendt

After completing this course, learners will have an understanding of a variety of black-box and white-box testing techniques. 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. 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.

Read more

After completing this course, learners will have an understanding of a variety of black-box and white-box testing techniques. 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. 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.

After completing this course, you will be able to:

- evaluate testability of requirements

- define testable units within a program specification

- apply black-box test input selection methods - specifically boundary-value analysis, fuzzing, and random selection - and select the method most-suited to achieve the given testing objective

- assess the fault-finding effectiveness of a functional test suite using mutation testing

- use category partitioning to develop automated functional tests (with Cucumber) based on a given software specification

- create an expected-value oracle from a program description to use within the generated tests

In order to do well in this course, you should have experience with an OOP language (like Java), have an IDE installed (e.g., Eclipse), and be familiar with testing terminology (see Intro to Software Testing course within this specialization). we also expect a familiarity with the Software Development Lifecycle and the context in which the testing stage sits.

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.

Enroll now

What's inside

Syllabus

Module 1: Introduction
In this module, we will learn about the basics of testing adequacy, as well as the factors that influence testing effectiveness and how we quantify these metrics.
Read more
Module 2: Black and White-box Techniques
In this module, we will learn a variety of testing techniques that can be used in both white-box and black-box testing strategies.
Module 3: Requirements-Based Testing
In this module, we focus on requirements-based testing. We review a set of requirements from a testing perspective and then move on to a more sophisticated way of writing requirements: structured requirements using the tool Cucumber.
Performing Black and White Box Testing with Cucumber
In this module, we go further in using the Cucumber toolset in order to implement a variety of testing strategies against two example projects.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops skills and knowledge useful for personal growth and development
Covers a range of topics in software testing, including black-box and white-box techniques
Taught by recognized experts in the field of software testing
Uses a variety of instructional methods, including videos, readings, and discussions
Assessments are in the form of multiple-choice quizzes and short answer questions, which are based on the course materials and real-world scenarios
Course certificate is not included in the cost of the course

Save this course

Save Black-box and White-box Testing to your list so you can find it easily later:
Save

Reviews summary

Black-box and white-box testing proficiency

Learners say that according to students, "Black-Box and White-Box Testing" is a fairly well-received course concerning the subjects of testing, unit testing, and black-box testing. Students note the engaging assignments including programming tasks and a desire for more real-life examples and more clear guidance. The automated assignment validation is described as difficult to understand. However, students largely agree that this course provides a profound understanding of the subject matter.
Course offers engaging assignments, including programming tasks.
"In this course you really learn what testing is..."
"programming tasks are very simple..."
"very, very well you could be at the basic intermediate level of Junit and cucumber tests."
Provides a thorough understanding of testing concepts.
"Learners say that according to students, "Black-Box and White-Box Testing" is a fairly well-received course concerning the subjects of testing, unit testing, and black-box testing."
"in this course you really learn what testing is"
"you could be at the basic intermediate level of Junit and cucumber tests."
Some course content and materials are outdated.
"uses a bit outdated technologies"
"Very few people complete the course."
"Link to external resources for the course has been hijacked for months..."
Instructions for assignments and tests are unclear.
"Week 4's test instructions is not clear..."
"some pogramming tasks are very simple (more thinking than writing) and others are really a monster if you want to get 10"
"The techniques provided are highly restrictive in nature..."
Automatic assignment validation is inconsistent and provides insufficient feedback.
"Same file i submitted repeatedly but got different comments."
"The final task is very difficult because It has uninformative feedback."
"you are walking blind!"
Limited support from instructors and teaching assistants.
"No one is checking the feedback from the learners."
"The course is buggy and thanks to bugs impossible to complete..."
"The staff are unresponsive and they dont answer questions on the discussion forum"
Some assignments are difficult to complete, with unclear guidance.
"The assignments are difficult to complete as there are no clear guidance."
"difficult to get right, the grading could be better"
"It was a good and fruitful course...but the assignments... proved a bit more difficult for the given material."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Black-box and White-box Testing with these activities:
Test Case Generation Exercises
Engage in hands-on practice to improve your ability to generate effective test cases.
Browse courses on Test Case Design
Show steps
  • Identify different types of test cases (e.g., functional, performance, usability).
  • Practice applying test case design techniques such as boundary value analysis and equivalence partitioning.
  • Develop test cases for a sample software application.
Test Case Review Sessions
Collaborate with peers to enhance the quality of your test cases and gain diverse perspectives.
Browse courses on Peer Feedback
Show steps
  • Form study groups or discussion forums with other students.
  • Share and review test cases for feedback.
  • Discuss different testing strategies and approaches.
  • Incorporate feedback to refine and improve test cases.
Cucumber Tutorial for Automated Testing
Enhance your understanding of automated testing using Cucumber to improve the efficiency of your testing process.
Browse courses on Automated Testing
Show steps
  • Explore the basics of Cucumber and BDD.
  • Follow online tutorials or workshops on writing Cucumber test cases.
  • Practice implementing Cucumber tests for a sample project.
  • Review documentation or resources on advanced Cucumber features.
Two other activities
Expand to see all activities and additional details
Show all five activities
Automated Testing Framework Project
Develop a comprehensive automated testing framework to gain hands-on experience in designing and implementing testing solutions.
Browse courses on Software Development
Show steps
  • Identify the scope and requirements for the framework.
  • Design the architecture and components of the framework.
  • Implement the framework using appropriate programming languages and tools.
  • Write user documentation for the framework.
  • Test and refine the framework.
Contribute to Open Source Testing Projects
Participate in open source projects to gain practical experience in testing and contribute to the wider software development community.
Browse courses on Open Source Software
Show steps
  • Identify open source testing projects that align with your interests.
  • Review the documentation and issue tracker for the project.
  • Contribute bug reports, feature requests, or code patches.
  • Engage with the project community through forums or discussions.

Career center

Learners who complete Black-box and White-box Testing will develop knowledge and skills that may be useful to these careers:
Software Engineer in Test
Software Engineers in Test are responsible for ensuring that software applications meet the required quality standards. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Test Automation Engineer
Test Automation Engineers are responsible for automating the testing process. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to use a variety of automated testing tools and techniques.
Software Engineer
As a Software Engineer, you will be responsible for designing, developing, and testing software applications. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to use a variety of testing tools and techniques to ensure that software applications are deployed and maintained smoothly.
Programmer
Programmers are responsible for writing code that implements software applications. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Software Developer
Software Developers are responsible for designing, developing, and testing software applications. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for ensuring that software applications meet the required quality standards. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Test Manager
Test Managers are responsible for planning and managing the testing process. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Software Tester
Software Testers are responsible for testing software applications to find bugs and defects. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Computer Enthusiast
Computer Enthusiasts are passionate about computers and technology. This course will provide you with the skills and knowledge you need to succeed in a variety of roles in the computer industry. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Systems Analyst
Systems Analysts are responsible for analyzing and designing software applications. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Technical Support Engineer
Technical Support Engineers are responsible for providing technical support to users of software applications. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to test software applications, troubleshoot problems, and resolve defects.
Business Analyst
Business Analysts are responsible for gathering and analyzing business requirements. This course will provide you with the skills and knowledge you need to succeed in this role. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Project Manager
Project Managers are responsible for planning and managing software development projects. This course may be useful to you in this role, as it will provide you with a better understanding of the testing process. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.
Data Analyst
Data Analysts are responsible for collecting, analyzing, and interpreting data. This course may be useful to you in this role, as it will provide you with a better understanding of how to test data-driven applications. You will learn how to write test cases, evaluate the effectiveness of your tests, and use a variety of testing tools and techniques.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Black-box and White-box Testing.
Provides a comprehensive overview of software testing principles and practices. It covers topics such as test planning, test execution, and test reporting.
Provides a comprehensive overview of software testing techniques, with a focus on black-box and white-box testing. It also covers topics such as test case management and automation.
Provides a comprehensive overview of software testing for students and professionals. It covers topics such as test planning, test execution, and test reporting.
Provides a comprehensive overview of software testing fundamentals, techniques, and best practices. It covers topics such as test case design, test automation, and performance testing.
Covers white-box testing techniques in detail. It provides guidance on how to write effective test cases, and how to use white-box testing to improve software quality.
Classic work on black-box testing. It provides a detailed overview of black-box testing techniques, tools, and case studies.
Provides practical guidance on how to perform black-box software testing. It covers topics such as test case design, test execution, and test reporting.
Provides guidance on how to write clear and concise use cases. It covers topics such as use case modeling, use case relationships, and use case testing.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Black-box and White-box Testing.
Introduction to Software Testing
Most relevant
Introduction to Automated Analysis
Most relevant
Automated Software Testing: Unit Testing, Coverage...
Most relevant
ISTQB® Foundation: Test Techniques
Most relevant
Fundamentals of Java Testing
Most relevant
Architecting an ASP.NET Core MVC Application for Unit...
Most relevant
Software Testing/ QA: Learn Basic Testing with live...
Maximizing Quality with Visual Studio Team Services Test...
The Complete 2024 Software Testing Bootcamp
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser