Introduction

There are many types of testing that you can use to make sure that changes to your code are working as expected. Not all testing is equal, though, and we will see here how the main testing practices differ from each other.

Each type of testing has its own features, advantages, and disadvantages as well.

Functional Testing

Functional testing is a quality assurance and a type of black-box testing that bases its test cases on the specifications of the software component under test. Functions are tested by feeding them input and examining the output. Functional testing is conducted to evaluate the compliance of a system or component with specified functional requirements.

In software testing, functional testing is a practice that delivers huge benefits to the development process. When done properly, it increases communication between analysts, developers, and testers. The progress of the entire project is objectively visible at any point in time to management by examining the passing (and failing) functional tests. Eventually, the speed of development increases because well-communicated requirements result in less re-work.

Types of Functional Testing

Unit testing

Unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use.

We strongly recommend the use of unit tests in the software we build. If you want to learn how to implement useful unit tests we suggest take a look at this guidelines

Unit Testing (WIP)