ITDev has built an excellent reputation for delivering high quality services at all times. This is achieved with quality-oriented staff, a great set of tools, and the ITDev Quality Management System.
Development Process
In a typical fixed term contract we will follow our standard development life cycle, which has the following stages:
- Requirements Capture
- Quality Planning
- Project Planning
- Quoting
- Detailed Design (including Test Plan)
- Implementation (including Unit Tests)
- System Testing
- Delivery
- Support
Every project will have a dedicated project manager who is responsible for the day-to-day running and supervision of the project team. They provide the main contact point for the client. The project manager is responsible for preparing key documentation at each stage, using ITDev procedures, templates, guidelines and checklists. We work hard to produce top-class documentation and key documents are all verified and approved by an ITDev director.
We often use special tools to help us document the system implementation and test results. For example, when we program in C++ and VHDL, we insert information into tags within the source code. We can then use a tool called Doxygen to extract that information and to prepare detailed documentation of the software's implementation and structure.
Comprehensive Unit Testing
Our aim is for zero defects. During the design phase, we will design the software and hardware components so that they can be easily tested. Our test strategy will be documented in a test plan. We always try to detect errors as early as possible during the development process.
Software Unit Tests
All software functions are thoroughly tested as they are written using unit tests. These tests are repeated every time a change is made. We often incorporate these tests into the software build process, so that each time the software is compiled all the unit tests are run.
Hardware Unit Tests
We also approach our electronics design in the same way. Sub systems will be designed to be easily tested. We have extensive experience of ASIC, FPGA, PCB and board level test and evaluation.
System Testing
Before a product is released, a detailed test procedure that has been approved by the client will be run to demonstrate conformance to the system specification. We will test as many scenarios as is practical including boundary conditions. Where possible these tests will be automated using dedicated test equipment, software test tools, and test scripts. The tests will be repeated before every new release to the customer.
We have experience of a number of software test tools. For example, we use SeleniumHQ to test our web-based user interfaces. SeleniumHQ allows us to script a thorough test of all the user workflows and to verify that for all actions the user interface behaves as required.
Often software testing will be dependent on the availability of hardware. To facilitate testing we will sometimes implement an emulator to simulate the hardware in software.
Our staff have solid skills in hardware test and evaluation. Bug fixing after delivery is expensive. Consequently, ITDev takes quality and testing very seriously and all our systems are designed with verification in mind from the outset.