A key area to focus on when considering a software testing company is its software testers. Today there exists two popular certifications, ISEB and ISTQB. Try and ensure that the software testers at least hold these certifications at foundation level. Another factor with regards to software testers is the amount of experience they have. Many software testing companies state that there testers have five years I.T. experience. But reading between the lines, this simply means that they have five years experience anywhere in the field of Information Technology. You should really ask the software testing company, how many years professional software testing experience they actually have.

Many software testing companies offer a wide range of software testing services. Caution should be used though, as many of these companies will advertise these services but may not necessarily have the expertise to perform them. The types of software testing services that any professional company should offer is:

Test Case Creation

This very popular service typically involves creating detailed test cases that not only can be used on the project under test, but also due to their high quality can be re-used on future projects and form a high quality test documentation asset. Good testers will accumulate all required information necessary to produce the test cases, typically from design documentation, requirements and developer interview. Once the information has been analyzed a software tester will create a sophisticated excel spreadsheet which includes test cases, results sheets, environment setup and version details etc. Clients are involved in every stage of test case development in the form of a test case review process.

Functional Testing

Typical software products today include large amounts of critical functionality and complex features, added to this significant time pressures to get the product released make functional testing one of the most important stage of any software development. A software tester’s manual functional testing techniques have been proven to be highly effective at essentially determining whether or not the functionality actually works, or not. Versatile software testers can work from their own created test cases or use any pre-existing test cases you may already have. Good software testers readily use ad-hoc techniques when executing any tests to expand the test coverage. The aim during functional testing is to highlight any issues as early as possible so the developers can resolve it. This can obviously effectively reduce the development costs to your company.

Usability Testing

In order to ensure your software meets the needs of the end user; Usability Testing can be used. Not only will usability testing detect errors, but it will also detect navigational issues, language issues, workflow experience etc. Good software testers put themselves into the mindset of the end user and will report on the ‘look & feel’ of the software under test. Good software testers often build a set of test cases based upon real end user scenarios or business cases to ensure the software is tested in a similar way to how the real end users will actually use the software. This type of software testing has been proven to increase the ROI of software developments by enhancing the end user experience and therefore potentially increasing product sales. As usability testing is trying to ensure that the end user experience is appreciated, we perform this type of testing manually.

Regression Testing

Regression testing is surprisingly often overlooked area of software testing. This is often due to the assumption that when new functionality is working correctly then the software is ready for release. However, more often than not, additional issues have been introduced that affect existing functionality. Software testers have the knowledge and experience to identify existing test cases that are suitable for regression. Regression test cases are commonly functional test cases that are reused at regular intervals throughout the software development to ensure that the expected results remain consistent, thus providing confidence that nothing has been adversely affected by change.

Acceptance Testing

Acceptance testing is typically driven by the end user or customer. Acceptance test cases are normally executed by the customer prior to accepting the product. But commonly, these test cases are also given to the software developers to ensure their product meets the level of acceptance before the end of development. Software testers can perform execution of these test cases to highlight any issues to the development team as early as possible. Software testers can also derive expected acceptance test cases from customer requirements for you. On a smaller scale our software testers can also derive smoke tests to act as a form of acceptance tests during stages of the software development life cycle.

System Testing

System testing of software is testing conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements. Good software testers treat System testing as an investigatory testing phase, where the focus is to have almost a destructive attitude and will aim to test not only the design, but also the behavior and even the believed expectations of the customer. Software testers will It is also test up to and beyond the bounds defined in the software requirements specification. This is test that if a failure occurs, that it is handled correctly by the software with as little impact on the customer as possible.