Pentesting
I am a Kali Linux based pentester who is in favor of an organized and systematic approach to quality assurance. This is true throughout the software creation life cycle as well as post project validation. The diagram below shows how my involvement begins at the integration testing level if there is no QA team.
Integration testing is extremely necessary because although individual software components may work by themselves, data can be skewed when moving from one screen to another. Below we see the second phase of testing for Functional Requirements before the software is turned over to the users to experience. During this step, heavy cross-referencing between the test results and the project specifications is necessary as I document each test.
The next phase of testing user experience is taken lightly even in Fortune 500 companies. This is one reason why lost revenue can quietly continue under the radar for years, even if the software functions flawlessly. One thing to remember during this phase is that the testing should be completed by the user and not the business analyst. However, the business analyst may guide the testing using the User Stories from the project specifications document.
Regression testing is the last step before the software is officially released. It’s necessary because subtle fixes done on the part of the developers can cause errors. Typically, this phase is long and tedious but is absolutely necessary because it can be extremely costly to involve developers after a release.