Over the years of embedded systems and real-time control software contracting, MicroTools has learned the value of testing.
When we deliver the final system, we have confidence that it has been thoroughly vetted from many difference angles. At MicroToosl, we have learned how to do testing very well. We have encountered and corrected a lot of bad development and test practices: those of our own and those of our customers. MicroTools includes many phases of testing all along the development cycle of the project.
- Black-box – Does it function according to the requirements?
- White-Box – Does the design hold-up under stress or unexpected situations?
- Clear-Box – Does the implementation cover all possible conditions?
While some bugs are interesting,
there is no place for bugs in our software!
MicroTools makes testing part of the development process from specification to maintenance. With what we deliver: “if it’s not tested, it doesn’t work”
One mark of a good product or software specification is that every requirement is testable and every test is listed as a requirement. We write the first draft of the test plan alongside the specification.
To deliver to your requirements, MicroTools helps you make sure your specifications are test-ready by translating the specification and user documentation into a test plan. We help you to recognize the difference between requirements specifications and design documentation which keeps the project moving without scheduling delays.
MicroTools creates a design plan which is the solution to meet the requirements. If the Specification Phase describes “What” the product needs to do, the Design Phase answers the question “How?”.
This is the time to reduce the risks:
- Can your specification be met with today’s technologies?
- Will it be fast enough?
- Can it handle the capacity needed?
- Will the components work together?
- Will the solution be within budget?
It is far less expensive and embarrassing
to identify limitations early on in the project
As areas of risk are identified, we modify the test plan to put more pressure on those areas. In a consulting position, MicroTools will help you build prototypes, utilities, and benchmarking tools to test the assumptions of the design. We will help you plan coding strategy and suggest areas of risk that should be the initial focus to stay on schedule and deliver on time.
MicroTools provides testing throughout coding process. This includes module and iterative testing, and code reviews at major milestones.
We modify the test plan as we identify areas of risk in the code and put more focus on those areas.
We employ strategies such as module testing as part of the planned project schedule. Our experience in real-time embedded systems will be of particular benefit to your project to provide code risk analysis and optimize these tasks.
Final Test Phase:
For our projects, our test technicians perform final testing (not the developers) to encourage a level of independence. The tester’s task is to find a way to ‘break it’ before it is delivered to the customer.
In a consulting capacity, MicroTools will bring together the best of industry standards; your company’s quality assurance process and documentation; and our creativity and tools. MicroTools will work with companies with all different quality assurance philosophies, from Six Sigma to completely in-house standards. We will deliver your product fully tested: Unit Testing, Integration Testing, Installation and Configuration Testing, System Testing, Performance Testing, Acceptance Testing, Documentation Testing.
At MicroTools, we use the test plans we developed in the specification phase as well as the creative in-house testers to find failures and weaknesses. We employ both black box and white box methods to shake the problems loose. The use of testing tools (developed by MicroTools) like Poc-it and Key Commander make automated testing more efficient. We can work with your company’s issue tracking system or connect you to our own so you always know what is outstanding and what is corrected.
Troubleshooting and corrective updates impose unique challenges for a deployed system. It can be difficult to reproduce and isolate a problem in the field. Our automated test tools as well as the White Box methods can be very effective in this process. Some of our customers prefer to stay out of system maintenance altogether and rely on us to interface with dealers, distributors or even customers directly to find and solve problems.
There are always more bugs!
Imperfection is inevitable – but the impact can be mitigated. Modern electrical software systems are so complex that it is impossible to design or test out every problem. Current industry estimates state that tested and released software averages more than 10 significant bugs per 1000 lines of code. Modern systems consist of hundreds of thousands of lines of code. The testing effort should be driven by finding as many problems as possible. At some point finding that ‘last bug’ enters diminishing returns. The rate of bugs found will drop off significantly as testing progresses – MicroTools brings wisdom of experience to the project. While never ‘bug-free’, you will have a high level of confidence that your customers will not encounter significant issues in the field.
Testing requires an understanding of your market.
One of MicroTools’ strategy is to develop long term relationships with companies who develop embedded real-time software so that we can meet your overflow software development and testing needs quickly and efficiently. We learn:
- Your core business
- The Technical Challenges/Solutions of your Product Line
- Your Customers
- The Tools
- Your Software Procedures
- The People