Software development simplified – Testing, bugs they are everywhere
Did you ever stop and ask yourself with car manufacturers to use crash dummies to test their new to be released car? Very simple it is cheaper and safer than risking human injuries or even lives to assess the safety ratings.
Same with software development, having the ability to test the application while in development before it reaches the end-user is much easier and cheaper to fix defects. It is known that finding a defect before an application is released is 50 to 200 times cheaper.
What’s a bug?
A bug is, in fact, a defect in the software, where the application is not behaving in the way it was intended or an error is caused by a faulty process.
Bugs could be of low impact to an application and even a business operation.
What are the impacts of unfound bugs?
An unfound or unreported bug could lead to:
Loss of money
Financial penalties for non-compliance
Damage to business reputation
Longer staff and processing time
Injury or death
How is testing done?
Testing is done following a predefined set of steps and using specialized tools. Depending on the type of testing being performed, different procedures will be used.
The most important inputs to testing are both the requirements documentation and design artifacts. From these artifacts, the test engineer will start building the test plan. This may involve just one procedure depending on the needs and complexity of the application.
Pulling from the available documentation the test engineer will develop test cases. In order to have valid test cases, the inputs and expected outputs of the system must be understood. If the requirements and designs are not accurate, it will lead to misleading information for the tester.
This is why it is important to have the tester work closely with the project team and not in silos. This helps remove ambiguity and enables better discussions between all members of the teams.
To know if an application is performing well and under the right conditions, techniques below and combinations of them, will most often be used.
Unit Testing – mostly done at the developer level. It tests one individual unit of the software at a time with very simple inputs and one expected outputs. This so to confirm the feature is working as expected.
Manual Testing – Performed by a test engineer and is based on manually written test cases, with pre and postconditions. This requires a tester to manually go through the application and validate all steps, inputs, and outputs.
Automated Testing – Performed with specialized tools such as Selenium, Cucumber, or Katalon Studio. These tools will record actions on the screen and create a baseline. When a change is applied in the system, these applications can be launched and if anything has changed and impacted the on-screen behavior, these tools will let the tester know.
Performance Testing – Contains its own list of sub-categories. This is about putting stress on the system to understand how much the system can handle before it crashes. This is necessary for large enterprise applications, applications opened to the public or any other applications which cause catastrophic consequences when it fails.
Penetration Testing – Required when security is of the utmost importance to an application. This will determine how easy the application is to hack and where the points of failure are.
Determining the quality of software goes beyond how many defects or bugs have been found and resolved. The following points must all be taken into consideration when determining quality:
A function often overlooked
Still to this day, the software testing function on a team may be easy to overlook, especially when it is down to crunch time to delivery or even under tight budget constraints.
It is, however, one of the most critical pieces and as Project Manager, we must ensure this does not happen to ensure high-quality delivery. Imagine if lives would be lost as a result of occurring corners and it could’ve been avoided by a simple check. This is nothing none of us want.
Let’s give kudos to all the testing engineers!
Business Unit Manager - Software Development
Missing Link Technologies Ltd.
Click HERE to like and share this article on LinkedIn: