A combination of following tests are conducted, depending on the kind of tests being carried out
(e.g. white box testing, black box testing).
Tests to be conducted Details
Functional Testing Functional testing is done using test cases that are developed based on client's documentations(black box perspective). These test cases are based upon the functional specification document. They are developed in parallel with the time of code development itself and they ensure that the component/module/sub-system/system put in test functions according to specifications document. Compatibility Testing Compatibility testing services is performed using various different kinds of platforms, browsers, databases, servers etc. Our consulting services help us in identifying the compatibility issues that can have an impact on the product. Test plans are developed specifying what tests will be executed. These tests are then conducted and all problem areas are identified. Stress and Performance Testing Stress and performance testing checks the behavior of the application under load. Load testing is performed by creating virtual users to simultaneously put load on the application. This test enables us in understanding the potential of the system like number of concurrent users it can support before system failure, the impact of more number of users have on performance of the application like response time etc. We use variety of tools like Mercury Interactive LoadRunner®, Apache JMeter for carrying out performance tests. Automated Testing The area where automated testing is identified in discussion with the client and then automated test scripts are developed. To make this testing cost-effective, we usually automate those tests that are fairly straightforward and are going to be repeated. However, the final decision on what all features needs to be automated is taken after discussions with the client. Security Testing Security testing checks for vulnerable points in the system, identifies security threats. The system is tested for areas like authentication mechanism, firewall access issues, data encryption compatibility with industry standards etc. Network Testing This is done to test for dependencies on network performance and issues like the impact of changing bandwidths on parameters like timeouts and breakdown of operations. This test helps us in identifying the bottleneck areas that can be improved upon so that we can decrease the dependencies of the system on network performance. Capacity Testing To test the resource utilization like CPU usage, memory space etc. for various parts of the system. Scalability Testing This is to test the potential of the system from architecture, design and development perspective to understand if the application can scale up linearly with the workload growth if the application grows in complexity. It is carried out by studying impact of addition of computing resources in a balanced way at the same performance level. Reliability Testing This test is conducted to expose any node failure that may impact the performance of the system and make it inconsistent. This test enables us in determining what is the probability of failure-free operation of the system. This is done by obtaining failure data and therefore estimating present and predicting future reliability. Migration Testing This testing is done when we are migrating data from old system to new system. The new system is tested by first running a small migration test and once the test is found successful after verification with the expected behavior, the entire data is imported into the new system. A final testing is conducted on the entire data that has been imported in the new system. Application Usability Testing This testing gives us a visibility of how the real user will interact with the application and identifying problem areas that an user can face with the application. This testing is done by involving testers who have not gone through any sort of documentation of the system. They are allowed to test the application independently and autonomously and are asked to make note of all problems they come across, irrespective of their feeling that the problem might have occurred because of lack of their knowledge of the system. Database Testing This test is conducted to test for putting a transaction check on the backend database. Test cases are developed using SQL features and constructs. These test cases help in discovering bugs in database systems causing data corruption. GUI Testing GUI check list is created based on guidelines and understanding with client while evaluating the system; application is tested for checklist test cases to maintain the consistency and to maintain expected behavior.