Introduction to Software Testing

External: Coursera Courses ↗ · Coursera

Open Course on External: Coursera

Free to audit · Opens on External: Coursera

Introduction to Software Testing

Coursera · Beginner ·🏗️ Systems Design & Architecture ·3mo ago

Key Takeaways

Introduces software testing principles and processes

Original Description

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
Watch on External: Coursera ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Related Reads

📰
Rust Went Mainstream While You Were Arguing About JavaScript Frameworks
Rust has gained mainstream traction while developers were distracted by JavaScript framework debates, highlighting its growing importance in the programming landscape
Medium · Programming
📰
FULL STACK Developer
Learn the basics of full stack development and its importance in the tech industry
Dev.to · Parthipan M
📰
Workflow Series (10): Enterprise Architecture — Registry, Composition, and Governance
Learn to manage multiple workflows with enterprise architecture principles, including registry, composition, and governance, to scale your workflow systems efficiently
Dev.to · WonderLab
📰
I Said “Just Add More Servers” in a System Design Interview. That Was the Wrong Answer.
Learn why simply adding more servers is not a viable solution to scaling issues and how to identify bottlenecks in system design
Medium · Programming
Up next
How to Forward Device Data Via HTTP/MQTT/Modbus/BACnet in EG71
Milesight IoT
Watch →