Whitepaper: What Embedded Software Engineering Can Learn From Enterprise IT Testing Techniques

IoT makes embedded software engineering more complex. Enterprise IT testing techniques can help your software team simplify.

Learn how software engineering can learn from enterprise IT testing techniques.

Parasoft Embedded Software Testing Solutions 1

Download the whitepaper to find out how to implement lessons from enterprise software development and overcome the challenges IoT brings to embedded software engineering.

Here’s what you’ll learn about:
  • Combining data from coverage analysis and message layer testing technologies, which provides insight into application readiness and traceability across testing practices.
  • Emulating dependent systems with service virtualization, which removes testing constraints and increases flexibility across complex test environments.
  • Testing at scale when scalable hardware is unavailable or impractical.
  • Leveraging penetration testing techniques to expose security vulnerabilities and trace their impact directly to the code base.

However, increasing demand for IoT calls for a new testing methodology. Enterprise IT struggles to shift left, but embedded systems struggle to shift right by testing componentized, distributed architectures.

This creates a major team structure challenge, plus the usual enterprise IT challenges, including:

  • Targeting the right granularity of the unit test
  • Solidifying automation at the message layer
  • Gaining access to fresh, realistic, and credible test data
  • Accessing the distributed environment in order to test continuously

The global automotive software market is expected to reach $10.1 billion this year (Global Industry Analysts, Inc.). Plus, software represents almost 21% of a vehicle’s value.

Consumer demand is forcing automotive suppliers and manufacturers to develop software applications that are larger and more complex than traditional IT business applications. Not to mention, trends in automotive software are forcing dev teams to rethink process, approach and tooling, including:

  • Open architecture (open standards, messaging, protocols)

Software-driven and software-assisted connected cars are becoming increasingly complex. In fact, the Chevrolet Volt EV has more than 10 million lines of code and over 100 electronic controllers.

  • 24x7 connectivity via public Internet

Increasingly challenging for modern automobile software is its ever-expanding attack surface. Interconnecting the 30-year old CAN bus with modern protocols, such as Wi-Fi, 3G, Bluetooth, and GPS, brings significant new software challenges for automobile manufacturers.

  • Software configurable and remote updates

As connected cars have become a reality, the landscape of in-vehicle infotainment (IVI) has evolved. While formerly hardware-defined, IVI systems are now multi-function systems that support a combination of vehicle telematics and diagnostics, passenger entertainment and driver assistance.

The shift from individual isolated components to connected systems and services is creating the need to change software validation and verification. It’s the only way to address the increased complexity of newly designed systems.

  • Traditionally embedded development organizations have focused on the bottom of the testing pyramid, automating unit testing to test isolated components.
  • Enterprise organizations have focused on the top of the testing pyramid, heavily leveraging lower cost, faster manual testing. But manual tests aren’t actually cheaper or quicker, and they don’t scale as the system grows in complexity.
  • Automated unit testing is usually too expensive for IT orgs because it’s time consuming and requires sophisticated resources.
  • On the other hand, manual testing is viewed as faster and lower cost because everything’s wired together, and basic domain expertise is the only requirement for testing. But this viewpoint overlooks the cost and complexity of test infrastructure and the time between a defect being injected into the codebase and its identification during testing.
  • API testing and service virtualization are the middle ground. Automating tests at the message layer makes automation easier. API testing tools allow developers to create simple service or operation level unit tests that QA testers can extend into more complete functional tests.
  • Further, extending data leveraged by individual tests and chaining tests/operations together gives developers the ability to pass output of one operation to another without writing complex scripts or code.
  • When working with the API, the application or component under test is deployed and configured, but the dependences might be unavailable – or you might not be able to configure them to provide behavior or data as necessary.
  • As systems become more connected, testing infrastructure grows in complexity, ultimately becoming constrained by availability and control over connected subsystems.
  • Service virtualization simulates the dependent services and provides reusable assets that emulate functional behavior, data and performance characteristics

The following techniques solve the associated challenges:

  • Automated API testing
  • Service virtualization
  • Automated penetration testing
  • Test, requirement and code traceability

About Parasoft

Parasoft’s software testing solutions support the entire software development process, from when the developer writes the first line of code all the way through unit and functional testing, to performance and security testing, leveraging simulated test environments along the way. Parasoft's unique analytics platform aggregates data from across all testing practices, providing insights up and down the testing pyramid to enable organizations to succeed in today's most strategic development initiatives, including Agile/DevOps, Continuous Testing, and the complexities of IoT. Parasoft’s automated software testing innovations fuel software development organizations, helping teams reduce the time, cost, and effort of delivering high-quality software to the market.