Software Testing Tutorial

What you learn in Software Testing Tutorial ?

Software testing basics

SDLC

Documentation testing

Testing models

About this Free Certificate Course

The Software Testing course is a 1-hour program that begins by giving you insights into the different phases of the software development life cycle (SDLC) and different models in SDLC. The testing course also includes answers to questions like what testing is and why it is essential. In the later part of the course, you will understand the strategic approach to testing, its different levels, and how to document the development process. Take up the assessment at the end of the course to test your skills and evaluate your gains to avail of the course completion certificate. 

After this free, self-paced, beginner’s guide to Software Testing, you can embark on your Software Engineering Career with the top-rated Postgraduate and Master’s Degree Programs and learn various concepts in depth with millions of aspirants across the globe!

SDLC

This module defines the Software Development Life Cycle and briefly discusses the various processes, from collecting requirements to maintaining the software. It later continues with helping you understand planning, designing, constructing, testing and maintenance. 

What is Testing?

Testing is a significant phase in software development. This module gives you a brief overview of the testing phase and its types.

Why do We Need Testing?

The necessity to test the software before it is deployed goes beyond just cost margins. In this module, you will understand why software testing is performed and be able to verify all the reasons while developing software. 

Models

This section will tell you about the famous waterfall, spiral, and V-models. At the end of this module, you can decide what model to use for your project depending on the requirements and the design. 

Strategic Approach

This section briefly explains different strategies used in different phases of SDLC. You will understand where and why system testing, validation, integration, and unit testing methods are used.

Strategic Approach

This section briefly explains different strategies used in different phases of SDLC. You will understand where and why system testing, validation, integration, and unit testing methods are used.

Automated Software Testing: Unit Testing, Coverage Criteria and Design for Testability

About this course

Software testinggets a bad rap for being difficult, time-consuming, redundant, and above all – boring. But in fact, it is a proven way to ensure that your software will work flawlessly andcan meet release schedules.

In a two-course series, we will teach you automated software testing in an inspiring way. We will show you that testing is not as daunting a task as you might think, and how automated testing will make you a better developer who programs excellent software.

This first course will teach you specification-based testing, boundary testing, test adequacy and code coverage, unit vs system testing, mock objects, design for testability, and test code quality.

This is a highly practical course. Throughout the lessons, you will test various programs by means of different techniques. By the end, you will be able to choose the best testing strategies for different projects.

If you are or want to become a five-star software developer, QA engineer, or software tester, join this course. Testing will never be the same again!

At a glance

  • Institution: DelftX
  • Subject: Computer Science
  • Level: Intermediate
  • Prerequisites:Introductory knowledge of programming, specifically with Java.
  • Language: English
  • Video Transcript: English
  • Associated programs:
    • Professional Certificate in Automated Software Testing
  • Associated skills: Software Quality (SQA/SQC), Software Testing, Unit Testing, Automation, Testability, System Testing, Test Automation, Code Coverage, Boundary Testing, Safety Assurance

What you’ll learn

  • How to test any software system using current state-of-the-arttechniques
  • How to derive test cases that deal with exceptional, corner, and bad-weather cases by means of several different techniques
  • The limitations of current testing techniques and how to decide on the best testing strategies for a given context
  • How to develop testable architectures and to write maintainable test code

Syllabus

Topic 1: Automated software testing

  • Understand some basic principles of testing and whyit requires creativity.
  • Get familiar withsome testing vocabulary, which improves our communication.
  • Devise our first set of tests for a Java program and automatethese testsusing JUnit.
  • Understand the differences between unit, integration, and system testing, as well as the testing pyramid.

Topic 2: Functional testing

  • Learn how to read a requirement and derive the partitions, which are the actual concrete tests we will perform to make sure our system works (we call it “partitioning” and “equivalent partitioning”).
  • Learn how to think about and test possible corner cases, as developersoften forget to deal with such cases (we call itboundary testing).
  • Get a few tips, based on experience, on common corner cases.

Topic 3: Structural testing and code coverage

  • Learn how to analyze the structure of your source code and derive meaningful tests.
  • Be able to use the most popular structural testing adequacy criteria, such as line coverage, branch coverage, and path coverage as well as to understand their differences.
  • Derive a minimal set of tests when your branches (e.g., ifs) are too complex.
  • Use a standard industry code coverage tool and interpret its results.

Topic 4: Testability and mock objects

  • Understand the differences between different test levels (e.g., unit, integration, and system tests)
  • Understand what makes a system more or less testable.
  • Propose refactoring opportunities for increasing testability.
  • Be able to apply mock objects in order to unit test a class.
  • Understand when not to apply mock objects and go for integration tests.

Topic 5 : Test code smells

  • Judge the internal code quality of your test suite and advice possible improvements.
  • Understand and avoid flaky tests.
  • Refactor and clean smelly test code.

More about this course

LICENSE

The course materials of this course are Copyright Delft University of Technology and are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike (CC-BY-NC-SA) 4.0 International License.