Testing, testing and testing

In the last post, I explained what software review and inspection was, but now, software testing is the next step. Testing is kind of the in-between of review and improvement. This is because the main objective of software testing is to find the requirements that are being completed in the state of the software.

In other words, when software is being developed, there are requirements that must be completed. So testing software is nothing more than detecting which requirements are already completed and which ones are not. This also means that even if a requirement is completed, if it has bugs or other issues, there must be iteration and a fixing process to get the quality that is needed.

There are two types of software testing, which are the manual and automation testing. The first one being about a real tester which runs the software with his or her perspective to find the objective requirements completed. This is more used in small and some medium companies. But the automation testing is more complete, it involves automation tools which run tests from different perspectives and are way faster than manual ones.

From those types of testing, there are certain levels which a software must pass through to be considered completed. Those are the following:

  1. Unit Testing: Tests in a modular way which helps finding bugs and errors on specific sections of the software. These tests are executed by every developer in their own environment.
  2. Integration Testing: Also a modular test, but this time its modules are a group or other units tests and connectivity between them. Integration means the interaction and connection from one module to another.
  3. System Testing: Also called black box testing, its objective is to test the system from start to finish. By that it means that it takes the input and just evaluates the output, without analyzing the inside of that box, or in this case, the software.
  4. Acceptance Testing: More common with videogames and entertaining apps, the acceptance testing involves a small group of customers to try the product in an alpha or beta stage before release.

After learning about the types and levels in software testing, we can discuss the activities and roles that are involved surrounding everything. First, is important to have developers which can run tests and pass the firsts level of testing. After that, there are some roles in the dev-ops area which help with the integration and connectivity testing.

There are some companies which take care of the last two levels of testing, they are involved in the system checking and also act as final clients by the acceptance tests. So, the roles are cleared from developers to external companies in the software testing area.

Software testing involves having the correct environment for the correct task. This means that from developers to beta testers, there must be a ready-made environment to test the software. Developers have most of the times a local environment which they use to test all kinds of modules from the software. But for other tests like the black box one or even the acceptance tests must be in other environments which are very close to the production one.

There are some terminologies in the development area for environments which are the local, development, and production. These are used in different kinds of tests as explained before.

Last but not least, testing artifacts. What are they? They are deliverables for the stakeholders of a software project. In every testing phase, there must be deliverable to proceed through the levels. And stakeholders use testing artifacts to communicate from technical to conceptual terminologies and data.

Some of those testing artifacts are like the following:

  • Test case
  • Test suite
  • Release note
  • Test plan
  • Test script
  • And more over.

Leave a comment

Website Built with WordPress.com.

Up ↑

Design a site like this with WordPress.com
Get started