2009 · 20 citations · 8 references
EngineeringComputer ScienceSystems EngineeringAutomationRequirements EngineeringSoftware EngineeringAutomation System DesignIndustrial AutomationSoftware TestingAutomation System IntegrationIndustrial Automation SystemsProduct Development ProcessSoftware Development LifecycleSoftware Testing ProcessTest CasesTest-driven DevelopmentTestability Engineering
Software increasingly drives the added value of modern automation systems, yet its growing complexity, late‑stage requirement changes, and costly integration make systematic, automated unit testing essential to detect defects early. This paper proposes Test‑Driven Automation, a test‑first approach that develops unit tests before implementation and automates them to reduce integration risk and cost. TDA is built around a component with interfaces to automation functions, diagnostic functions for observing test results, and test functions that set the component to defined states, including error scenarios. In an industrial sorting prototype, TDA improved testing efficiency and supplied diagnostic data that enabled process analysis and improvement.
Software provides an increasing part of the added value of modern automation systems and thus becomes more complex. System requirements may change even late in the development process, lead to ad-hoc modifications of the product and require systematic (and automated) testing approaches. However, unit tests for automation software have to consider the interaction with hardware components, are often not systematically automated, and thus make defects during integration testing harder to find. Costly software integration makes the introduction of more flexible software processes that support the late change of requirements more risky. In this paper we introduce the concept of “Test-Driven Automation” (TDA), which adopts the successful idea of test-first development from business software development to the automation systems domain: develop test cases before the implementation and systematically automate unit tests to ensure sufficient testing on unit level to lower the cost and risk of systems integration. As foundation for TDA we present the characteristics of the design of a TDA software component, i.e., interfaces to (a) automation functions, (b) diagnosis functions to allow test observation, and (c) test functions for setting the component to defined states, e.g., to test behavior in error situations. We demonstrate in an industrial sorting application prototype how the TDA approach can make testing more efficient and provide diagnosis information for process analysis and improvement.
8
Testing real-time embedded software using UPPAAL-TRON
Kim G. Larsen, Marius Mikučionis, Brian Nielsen et al. · 2005 · 146 citations