Testing is a critical step of software creation and validation, this way we can validate the correct functionality and behavior of our projects. Imagine buying a calculator that doesn’t work how its suppose to for example, when you press the number one the calculator ads a two instead.
Testing process is divided into different steps, types and levels. First we are going to talk about the stages and parts of testing process.
This is the stage where we select the scope of the test and we manage the risks involved in these tests. We also select team leaders people in charge of different areas and all the material an assets available
2.Creation of scenarios
It is the stage where “expected” and “realized” outputs are prepared according to the content of the project to be tested. In this step is where the scenarios are written, for example what we expect to happen when certain input is used, or what should be the behavior of the project.
3.Preparation of test environment
This is the stage where prepare all de assets we need in order to run the tests, for example in most of the cases we will need a specific environment with specific characteristics in order to control or manipulate the behavior of the project according to our needs.
The project can be connected to this testing environment and when all tests are approved the project can go back to development or deployment environment
4.Run the scenarios
This is the stage where the tests are run. Test scenarios that have been written are applied in this step.
5.Reporting of result
It is the stage in which the situation that occurs after all specified scenarios are applied is communicated to the person concerned. The report should use as simple a language as possible.
Those are all the steps involved in the testing process, now we will talk about the different types of software testing and a little description of each one.
Unit Testing refers to test individual and small portions of the code, for example testing a simple function, single module or single process, the rest of the code is isolated from this test. The objective is to check the correct functionality or behavior of that specific section. This way we can test small parts of the code and be sure that everything is working as it should. Also this way we can know which specific part of the project is not working or have a problem. Good unit testing should follow the next affirmations
The integration test is testing the operation of two or more slave modules as a group, for example a group of inputs in a screen or a couple of buttons that need to work in specific way when one of the is presses. This way we can test the integration of different units or small parts of the code in order to verify the correct behavior of these group of elements
System testing is verifying the correct functionality of a whole system, for example a group of different modules or screens. This is done from the user perspective, and shouldn’t be automated with data mocks or fake requests. This type of testing is the most involved and time-consuming.
Acceptance Tests refers to the testing of end-user scenarios. In other words is the final thought or decision of the end-user wether he approves the project or not.
At last we will talk about the different roles in the testing process, basically we only have 2 different roles and each role is divided into smaller roles, depending on the project testing is done by small groups of people.
- Defining the testing activities for subordinates – testers or test engineers.
- All responsibilities of test planning.
- To check if the team has all the necessary resources to execute the testing activities.
- Prepare the status report of testing activities.
- Required Interactions with customers.
Tes engineers/QA testers/QC testers
- To read all the documents and understand what needs to be tested.
- Based on the information procured in the above step decide how it is to be tested.
- Inform the test lead about what all resources will be required for software testing.
- Develop test cases and prioritize testing activities.
- Execute all the test case and report defects