In a series of software testing related post, i am going to first give an introduction into what functional (QA) testing is.
In the software development context, as name suggests, it is the testing of the functional aspects of a software application. Simple words, it is to test the software does functionally what it is intended to functionally do. Some people refer to this as Manual Testing — because you manually follow a series of steps to ‘test’ the functionality of the software that is in test.
Functional Testing can be done in a non-manual way too. This is known as Automated Testing — which as the name suggests, is an automated way of executing a series of steps to ‘test’ the functionality of the software that is in test. The opposite of Manual Testing.
Which of these methods should i use?
Personally i would advise you to utilise both Manual Testing & Automated Testing together. To bring the best of both worlds. It is good to have both in my opinion. Manual Testing is a proven method and it has been used in great effect in the past. It still in use today. More and more starting to use Automated Testing. However, not at the point where it replaces Manual Testing entirely. You still need that.
QA (Quality Assurance)
Above all that, Functional Testing is commonly categorised as QA Testing. QA stands for Quality Assurance. A fancy term, woo.
Quality Assurance is simply to assure the quality of a piece of software that is developed. In other words, you can see it as functionally testing the software to ensure it meets the so call quality standard which often than not is referring to the fact of whether it performs the desired functionality or not. In essence, it is just Functional Testing after all. Of course, this is not just that, there are other types of testing which fall under the umbrella of QA as Quality Assurance is widely accepted as the notion of software testing in general.
Regardless of the terminologies, the most important thing is that testing happens in a software development context. And that, it occurs in a SDLC (Software Development Lifecycle). There is nothing much worse than shipping your software without testing it first. In a professional context, this is absolutely unprofessional to say the least.