Quality Assurance is the process of ensuring that the software applications developed adhere to and meet the defined standards and requirements. Quality Assurance activities begin with establishing a development methodology and the coding conventions and practices to be followed. After the standards and conventions are in place, QA activities such as testing and audits are carried out to ensure that the applications are being developed on the basis of the guidelines that have been laid down. In case of any deviations or defects, timely preventive action can be taken thereby ensuring the delivery of quality products.
Our team of Quality Professionals ensures the delivery of quality products by tailoring the Quality Assurance processes to meet the requirements of individual projects. The QA processes are modified as per the nature of the project, its complexity and duration.
The QA team conducts a review of the code written by the developers at regular intervals to verify that the code conforms to the standards and practices defined. This helps in rectifying any deviations at an early stage. In case of web based applications issues such as adherence of the website design and coding (CSS, HTML, XHTML etc) practices, use of semantically correct markup etc are reviewed to ensure conformance with W3C standards.
Testing is one of the most important aspects of Quality Assurance. Apart from the identification of errors and defects, testing helps in judging the reliability, portability, and the usability of the application.
As per the test plan defined, out team of testers perform a variety of tests to check the software application for bugs and errors. Some of the tests performed by our team include the following:
- Unit Testing: In Unit testing the functionality of the smallest unit of code such as a class, function etc is tested to ensure proper functioning. Unit testing helps in early detection of errors in programming methods and logic used.
- Integration testing: At Open Source Development, out QA team carries out Integration tests to ensure that all the code units, when integrated, function in a correct manner.
- Functional Testing: We perform functional tests to ensure that the application is developed as per the functional specifications defined for the project. This involves the testing of each feature of the application to check its behavior against expected and unexpected inputs. Apart from the testing of the features, functional testing also includes testing of the layout against the design provided. In case of web based applications our QA team verifies the application against issues such as meaningful page titles, use of CSS for defining web page layout, use of alt tags for images, form validations, use of search engine friendly URL etc.
- Compatibility Testing: By conducting compatibility tests, ourt QA team ensures that the application is compatible across platforms on which it operates. E.g. in cases of web applications compatibility tests are conducted to ensure that the website is compatible across browsers. In addition, we also conduct tests to ensure that the display of the applications is compatible with computer screens of varying dimensions and resolutions.
- Performance Testing: Performance tests to determine how the application will perform under user load is also undertaken by Icreon. Such tests help in identifying the performance problems that may occur due to high use. Performance tests are usually conducted through testing tools that make it possible to simulate high load.
Our QA team is responsible for documenting and recording the errors and issues identified during the testing process. At Open Source Development, we use various bug/issue tracking tools (such as Bugzilla and Eventum) to report the errors and their resolution details. The development team accesses the issue tracker to view the errors and issues posted. The developers resolve the issue as per the priority set for the bug/issue. After the successful resolution of the bug/issue, the QA team verifies the success of the same.
We also provide our clients with access to issue tracker enabling them to directly track and post bugs and raise issues. Alternately, we also offer to enter and record the errors and issues on any bug tracking application that is being used by the client.
On successfully fixing and verifying the bugs and defects, a version of the software is released to the client for acceptance testing. Any bugs/issues detected by the client are duly recorded and worked upon. Once the cycle of testing and verifying has been successfully completed, the final version of the software application is released to the client.