Business Services
Technologies
Programming Tools
Database Design
Application Security
Graphic Design
Web Software
Windows Development
Legacy Systems
Mobile Apps
CTI/ VoIP Solutions
Intellectual Property
Why Bespoke?
Development Process
Consultancy
Pre Project Planning
Project Management
Analysis
Software Design
Programming
Quality Assurance
Implementation
Software Support
     
In software development, validation and verification take up a major part of the effort, time and resources.
Testing, as a crucial component of these activities, must ensure quality and cost-effectiveness to provide a good return on investment of the client over the long term.
The quality of testing can be improved by adopting a systematic testing approach, whereas cost-effectiveness can be improved by test automation.
If the programming phase adds ‘quantity’ to a project the Testing & Reworking phase adds Quality.
Testing is a human function but is also assisted by the use of key testing tools such as NUnit and Log4Net.
As with programming tools, testing tools evolve continually and are chosen according to their suitability to a projects content and usefulness in assisting testers in their core functions.
There are three distinct levels of testing.
  • Component Testing
  • Integration Testing
  • User Acceptance Testing
1. Component Testing is driven by the software developer as part of the Programming phase. It is discussed in this section for clarity. A unit of work is tested for functional correctness, against the technical specification document. When the software developer is satisfied that the unit of work has been designed to specification, works in accordance with the functional and technical specification, a ‘code freeze’ will be made. A Code Freeze formally ends any further changes to the source code. The work will then enter a ‘known state’. Any additional work or changes to that body of work must be agreed upon, approved and will impose a mandatory period re-testing.
2. Integration Testing is driven by the internal QA (Quality Assurance) department. Every component and subsystem is tested, as a single, integrated and cohesive unit. The criteria for success are still largely dependent on the technical specification documents. Additional aspects of the product, which are tested at this stage, are:
  • Performance
  • Usability
  • Interoperability
  • Stability and Robustness
  • Deployment
  • Networking/ server issues
Testing is undertaken on hardware which is as closely matched to the target hardware, as possible. This includes networking and operating system version. It is important to conduct testing within the most realistic environment possible as taking a product from the development environment onto a live environment, reveals many, otherwise hidden issues.
The idea is that if the software works as intended and without issues during a simulation of normal use, it will work just the same in production.
Performance is evaluated in accordance with the needs of the client and the nature of the application.
3. User Acceptance Testing (U.A.T) occurs at the clients’ site, preferably on the target deployment platform.
Each aspect of the system should be tested by the client for conformance to the specification.
The idea is that if the software works as intended and without issues during a simulation of normal use, it will work just the same in production.
Following UAT any required amendments and bug fixes which arose, are completed to a post UAT specification.
The output from the Testing and Reworking stage then produces a finished software version ready for final implementation.