Software Testing is the investigation carried out on the computer programs to provide information on the quality of the project to the stakeholders. Every testing strategy tries to ensure that the software meets the requirements which it was designed for and responds correctly to all inputs performing its functions correctly in an optimum amount of time thus making it usable.
Software testing strategies depend upon the type of application and the available time and resources for testing the same. Software testing can be carried out as soon as the executable software programs are wholly or partially completed.
At Teknorix we follow the following levels of Testing:
- Unit Tests – This is a component level testing method in which functionality specific to a module is tested by code written by the developers, ideally the same developers who have written the code.These tests are written by developers as they work on the code and can help ensure that the function of the piece of software is working as expected. Unit tests alone cannot verify the complete functionality of the software by is used to ensure that the individual components used to build the software are working correctly, independent of each other.Due to our agile methodology and a Test driven development, Unit tests get written by the developers as they finish a particular functionality in the software.
- Integration Testing – This method of testing is used to verify the interfaces between various components of the software against the original software designs. Depending upon the software development approach, the components may be integrated iteratively or once all the individual components are completed.Integration testing aims at exposing the defects in the interfaces & interactions between the different software components.Being an agile development company, the integration testing is carried out at every iteration when the individual modules are integrated and tested.
- System Testing – This method of testing is an end to end testing of the entire system once all the modules are integrated. This aims at verifying the functionality of the entire system against the original requirements specifications.This form of functional testing is usually carried out by automated tools which are run against a functional running system. In addition to automated tools, this testing is also carried out manually by Test Engineers once the system is integrated and available for use at the end of every iteration.
In addition to these above levels of testing, we also carry out various other types of testing like Regression Testing, Performance Testing, Usability Testing, Security Testing, A/B Testing, Alpha Testing & Beta Testing.