Test

Testing for us is not a tick mark, it's a way to build quality product. This means our tester's are people who love to break code. Instead spending their time writing detailed step by step 'test cases' our test engineers are busy finding new ways to break the code in real life situation. We focus a lot on automated testing for all the platforms to make sure our time is spent more effectively.

Following is the kind of testing we do for each of our projects :

  1. Unit testing

    Developers are mandated to write their own unit tests for each of the classes they build. Passing unit tests is mandatory for each weekly drop.

  2. Smoke / Sanity tests

    Each weekly drop is delivered only after automated sanity tests are passed. We do both UI and functionality unit tests.

  3. System / Functionality tests

    For each Milestone, we run a complete round of functionality tests using a mix of manual and automated tests

  4. Stress tests and Boundary tests

    For each milestone we run tests cases to test stress and boundary conditions for each of our applications

  5. Integration tests

    Some of the applications we develop are integrated applications with 2 or 3 systems involved. We run automated integration tests for each milestone for such projects to make sure that our modules work properly even after integration.

  6. Acceptance tests

    Along with our customers we develop and run acceptance tests for each of the product milestone.

Automation tools / technologies

We use following frameworks or technologies often for unit testing

  1. iOS
    OCUnit tests (For Logic and UI)
    GHUnit test (Mainly for UI)

  2. Android
    jUnit tests
    MonkeyRunner

  3. J2ME
    jUnit tests

  4. PHP
    PhpUnit