We may earn an affiliate commission when you visit our partners.
Take this course
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.

After completing this course, you will be able to:

- evaluate testability of requirements

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

Traffic lights

Read about what's good
what should give you pause
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

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical software testing with cucumber

According to learners, this course provides a strong practical foundation in black-box and white-box testing techniques, particularly highlighting the use of Cucumber for automated functional tests. Students frequently commend the hands-on labs and practical exercises, finding them invaluable for applying concepts immediately. While many found the instructor's explanations clear and knowledgeable, some experienced a steep learning curve, noting the importance of a strong background in OOP (Java) and prior testing terminology. A notable point of concern for a few was the complexity of the technical setup for Cucumber, which sometimes hindered the learning process. Overall, it's considered highly beneficial for career-focused professionals in QA and development.
Offers a good overview, but some desire more depth.
"Good overview of testing techniques. Some parts felt a bit rushed, especially the theoretical aspects."
"I wish there were more advanced topics or challenges, as some sections felt like a review for me."
"Not for beginners, but also not detailed enough for experienced folks."
The instructor's explanations are clear and easy to follow.
"The instructor was clear and knowledgeable."
"The instructor's explanations were clear and easy to follow."
Emphasizes hands-on learning with relevant tools.
"The hands-on labs using Cucumber were particularly helpful and allowed me to apply concepts immediately."
"The Cucumber integration was a big plus, very relevant for modern development workflows."
"Truly a valuable course for anyone in software quality assurance. The hands-on approach to creating test cases and using Cucumber effectively is invaluable."
"I appreciated the focus on testability and fault-finding, and the practical work with Cucumber made the concepts stick."
Some learners faced difficulties with technical setup.
"Getting Cucumber set up was a hassle."
"Setup for Cucumber was painful, and the assignments didn't always feel aligned with the lecture content."
"The practical setup was too complex for me. I spent more time debugging my environment than learning."
Requires solid OOP and testing terminology knowledge.
"I struggled with the pace and the depth of the theoretical explanations. I felt some prerequisites weren't sufficiently emphasized..."
"Prereqs are important, don't skip the Intro to Software Testing."
"The course assumes you're comfortable with Java and testing concepts. If you're not, prepare for a steep learning curve."
"It definitely needs a strong background in OOP and testing."

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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser