CSSLP Tutorial: Module 05,Part 03 – Functional Testing

This section is about the various types of testing.  There are four major types of testing. For example, there are functional, non-functional, other, and security testing.  In overview, functional testing is more about how the product finds its functions.  Non-functional testing is more about how it handles stress.  Then there are more generic types of testing where we can look at the capabilities under a variety of environments.  The security testing is where we test to check against vulnerabilities associated with potential threats and attacks. These different types of testing will be throughout this whole chapter. The first of these main types of testing, functional testing, is the main focus for this section.  It has many different subtypes which are: unit testing, logic testing, integration testing, and regression testing. 

Unit testing is where the developers are checking their own work.  This happens during the implementation phase of the software development life cycle.  Each unit of functionality is broken down from the whole, and each piece is tested as to whether or not the individual parts actually do the function they are supposed to.  Does it function and do the elements work the way they are supposed to?  In a bit, once the individual parts are confirmed to work then we’ll bring them together as a whole which is then involving integration testing. However, that will be discussed in another section. For the completion of this particular part, each of the individual functionalities is being tested under the unit test. 

 

Another type of testing is logic testing.  We all know that code can be poorly written but still run. So, the fact that it does run is not necessarily an indication of having well written code, in terms of how it appears to the end user.  Therefore, another type of testing has been formed to look at the logic of the coding.  This is more about whether or not the code is well written, whether or not if there is structure that is logical as it should be, and whether or not it performs with a predictability in its behaviors as what we’d expect. 

Integration testing goes along with unit testing in that it will take the individual parts and looking at how the coding functions when the individual components are put together.  This is more of as how does the thing, as a whole, function?  It kind of takes the unit testing and pulls everything together so we see the big picture.

Then, there is also regression testing. With this type of testing, we are able to make sure that the software we install doesn’t break any sort of pre-existing elements on the network.  This is so we don’t cause some other mechanism to stop with their functions.

Collectively, then there’s a lot of different kinds of testing of the coding for the software, application, systems and its components.  Functional testing is just one of the main kinds and it has a number of subtypes. Some of the subtypes are tests like unit testing, logic testing, integration testing and regression testing. There are other major kinds of tests such as non-functional and that will be covered in the next part.