Software testing is critical to successfully building a software or web application. Historically, in a typical Waterfall Methodology, Quality Assurance or Testing was conducted as the final phase of a software project, leaving the validation of its success until the budget has already been burnt. The industry realised the risk this presented and Software QA Testing is now a key part of a software development project from a much earlier stage, employing iterative processes, automated build techniques and automated software testing throughout the development lifecycle.
Types of Software Testing Processes
Typical testing techniques and processes that now form part of an Agile Software Development Methodology include:
- Unit Testing – Testing a new or modified portion of code to see whether or not it is fit for use. In procedural programming a unit may be an individual function or procedure while in object-oriented programming, the smallest unit is usually a class. Unit Testing is usually conducted by a colleague of the original developer following a documented unit test schedule.
- Integration Testing – Integration testing is typically performed after Unit Testing to ensure that the sections of code that have been modified, once integrated into the main application, do not introduce bugs or issues. Typically this would be an application build. Automating the build process is advantageous, and having regular, daily, builds is good practice to eliminate the “big bang” when preparing a software release.
- Smoke Testing – Referred to by some industry professionals as a “sanity check”, this is a cut down System Test that should test as many different areas of a system with the least amount of time and effort. Subject to a successful Smoke Test, a more thorough System Test can then be conducted.
- System Testing – System Testing covers a number of testing disciplines and can be broken down into smaller components, but, ultimately they all serve the same objective. System Testing aims to verify that new and/or changed functionality functions as it should. Normally system tests would be run against functional requirements.
- Regression Testing – Equally as important as System testing, this is checking that existing functionality has not been altered by your changes. Typically System Tests in release A will be your Regression Tests in release B. Where an old System Test will no longer work due to a change in functionality in that area, it is always good to run that System Test as a Regression Test to make sure that it does actually fail. This is referred to as Negative Testing.
- User Acceptance Testing – This involves ensuring that the software system delivers the specified requirements used to define the system. In many cases this is performed by a Software House’s Clients but in the case of a Product House, may be outsourced to a 3rd party to ensure independent verification.
- Load Testing – Determines the performance of your system when put under strain. Often non-functional requirements drive the performance targets that the system must meet during Load Testing.
Software Testing Consulting
Surya Solutions can provide you with skills, knowledge & processes to introduce and apply a cohesive testing strategy involving automated build processes and automated testing throughout the lifecycle of a project. We provide consulting to assist with the necessary change management required to adopt efficient testing processes in your business. Using these techniques will reduce cost as quality control is imposed throughout the project.
Outsource your Testing
Surya Solutions provides an outsourcing service for software testing with a team of experienced Test Consultants. The service covers fully automated system testing, regression testing as well as user acceptance testing and is delivered remotely or run on hardware environments at our offices.
We works with clients to establish an understanding of the software applications requiring testing which ensures that any issues identified are filtered and only relevant feedback is provided to the application development team. A Software Test Strategy and Plan is established to ensure that both parties are aware of milestones during the project and results are formalised in regular test reports for all stages in the testing process.
Contact us or ring 023 9282 2254 to discuss how we can help you with your testing.