FEATURE EMBEDDED TECHNOLOGY ALL ROADS LEAD TO SOFTWARE TESTING
Niroshan Rajadurai, VP EMEA, Australia, New Zealand, Vector Software, discusses the importance of integrating software testing into design automation tool chains
W
ith the rapid growth of the semiconductor industry, the use of
tools that assist engineers by simplifying and automating the design, development and integration process has propelled the development and manufacture of electronics and embedded systems of the last 35 years. The prevalence of the use of Electronic Design Automation (EDA) tools has been a key enabler for developing chip complexity, and functionality has further helped to push electronics-based industries forward to meet the demands from the consumer and industrial markets. The use of EDA tools helps engineers push design boundaries, and allows for estimation of power consumption and modelling of system performance, which both impact on commercial viability. In parallel with designing integrated
circuits and system boards for better product performance, software quality is essential for the success of any electronic device. To assist engineers, a similar set of automation tools exists covering software development. Unified modelling language (UML) tools perform the same function as EDA tools by allowing engineers to quickly, easily and visually define the static architecture and dynamic behaviour of the embedded system software and applications that will control the product. Just as EDA tools help designers to
specify and simulate how IC devices will operate together through verification and simulation, so too must engineers test that the output from the UML is viable for use through complete and regular testing using both static and dynamic approaches. The use of automated tools also helps in
the ‘time to market’ race. However, maintaining software quality is equally important, and the adoption of continuous integration helps address these issues. One of the benefits of using UML is the
availability of tools that enable automatic generation of source code from the UML specification, however this code still requires testing. Engineers and developers need tools that afford them the visibility of testing completeness and auto generating test cases for code snippets that are not complete. Integration is a key part of the design and development process so developers need to be able to run integration tests as easily as they can run unit tests. Bug fixes may need to be integrated directly into a device’s code base from support operations. The
20 MAY 2017 | ELECTRONICS
subsequent update often needs to be deployed immediately, spawning the need for continuous integration. Continuous integration is intended to be
combined with automated unit testing. As CI practises have developed, the concept of build servers was introduced to automatically run the unit tests, and over time, this has expanded to also include the application of continuous QA processes. This evolution improves software quality, reduces time to market and builds a solid foundation for the future of code by reducing the prevalence of technical debt. The majority of problems with an end product are caused by inefficient and incomplete software testing. When using automatically generated code, a view of code coverage is vital. To keep ahead in the time to market race, using testing tools that utilise automatic test case generation (ATG) can save days of time. Not only that but the usage of ATG for ‘Fuzz Testing’ can assist in mitigating against a public software disaster. Some modelling tools allow users to generate test vectors by carrying out analysis of previously defined requirements, which helps ensure quality, however, without visibility into the underlying code, it may miss edge cases in the translation of requirement or model into source code,
A comparison between traditional software testing methods and a recommended DevOps approach
and the results could lead to exposed and undiscovered software vulnerabilities. Before committing the complete
hardware and software design to production, engineers need to be able to run tests on a simulation device to verify the system’s behaviour and compliance with the requirements set out. Furthermore, as products develop over
Software testing is important during product design and development
their lifecycle with upgrades or updates required, changes will need to be made. These changes have code implications and engineers need to understand where source code changes will have knock-on effects, and be able to create new tests to test the new code. Using a designated software testing platform allows engineers to overlay intelligence that understands the smallest number of tests to be re-run by a change to the source code. Due to the speed of development in today’s markets, a synchronisation is needed between the use of UML tools and software testing tools to release a product that is truly market ready. This process can be simplified by using a platform where integrations with UML tools are readily available. Platforms such as VectorCAST integrate with some of the most popular design and modelling tools such as IBM Rational Rhapsody, Atego Artisan Studio and SCADE Suite, and complements them by combining static and dynamic testing of software and firmware source code as well as on-target hardware simulation testing.
Vector Software
www.vectorcast.com T: 0203 603 0120
/ ELECTRONICS
Page 1 |
Page 2 |
Page 3 |
Page 4 |
Page 5 |
Page 6 |
Page 7 |
Page 8 |
Page 9 |
Page 10 |
Page 11 |
Page 12 |
Page 13 |
Page 14 |
Page 15 |
Page 16 |
Page 17 |
Page 18 |
Page 19 |
Page 20 |
Page 21 |
Page 22 |
Page 23 |
Page 24 |
Page 25 |
Page 26 |
Page 27 |
Page 28 |
Page 29 |
Page 30 |
Page 31 |
Page 32 |
Page 33 |
Page 34 |
Page 35 |
Page 36 |
Page 37 |
Page 38 |
Page 39 |
Page 40 |
Page 41 |
Page 42 |
Page 43 |
Page 44