[go: up one dir, main page]

DE102024206830A1 - Method and apparatus for testing software changes and/or for detecting software errors in image recognition software - Google Patents

Method and apparatus for testing software changes and/or for detecting software errors in image recognition software

Info

Publication number
DE102024206830A1
DE102024206830A1 DE102024206830.6A DE102024206830A DE102024206830A1 DE 102024206830 A1 DE102024206830 A1 DE 102024206830A1 DE 102024206830 A DE102024206830 A DE 102024206830A DE 102024206830 A1 DE102024206830 A1 DE 102024206830A1
Authority
DE
Germany
Prior art keywords
software
software code
test
framework
changes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102024206830.6A
Other languages
German (de)
Inventor
Yashwant Kolluru
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102024206830.6A priority Critical patent/DE102024206830A1/en
Publication of DE102024206830A1 publication Critical patent/DE102024206830A1/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

Verfahren zum Testen von Softwareänderungen und/oder zum Erkennen von Softwarefehlern einer Bilderkennungssoftware, insbesondere einer Fehlererkennungssoftware, die auf einer industriellen Maschine (210) implementierbar ist, das Verfahren aufweisend die Schritte:
- Bereitstellen (S1) eines Softwarecodes, der die Softwareänderungen aufweist, an ein Versions-Kontrollsystem (202);
- Ermitteln (S2) der Softwareänderungen in dem bereitgestellten Softwarecode durch das Versions-Kontrollsystem (202);
- Ausführen (S3) zumindest eines Teils des Softwarecodes auf einer virtuellen Maschine, durch die ein Testframework bereitgestellt wird, und durch die ein Verhalten der industriellen Maschine (210) in Reaktion auf den Softwarecode simulierbar ist;
- Ausführen (S4) zumindest eines Teils des Softwarecodes auf einer Vision Engine (208) auf Basis von gelabelten Bildtestdaten, die gelabelte Bilder aufweisen zum Testen des Softwarecodes; und
- Bereitstellen (S5) eines Testergebnisses auf Basis des auf der Vision Engine (208) ausgeführten zumindest einen Teils des Softwarecodes.
Method for testing software changes and/or detecting software errors of an image recognition software, in particular an error detection software, which can be implemented on an industrial machine (210), the method comprising the steps:
- Providing (S1) a software code containing the software changes to a version control system (202);
- Determining (S2) the software changes in the provided software code by the version control system (202);
- Executing (S3) at least part of the software code on a virtual machine through which a test framework is provided and through which the behavior of the industrial machine (210) in response to the software code can be simulated;
- Executing (S4) at least part of the software code on a vision engine (208) based on labeled image test data that includes labeled images for testing the software code; and
- Providing (S5) a test result based on at least part of the software code executed on the Vision Engine (208).

Description

Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Testen von Softwareänderungen und/oder zum Erkennen von Softwarefehlern einer Bilderkennungssoftware, insbesondere einer Fehlererkennungssoftware, die auf einer industriellen Maschine implementierbar ist.The invention relates to a method and a device for testing software changes and/or for detecting software errors of an image recognition software, in particular an error detection software, which can be implemented on an industrial machine.

Stand der TechnikState of the art

In der heutigen Fertigungslandschaft spielen industrielle Bildverarbeitungssysteme eine zentrale Rolle bei der Sicherstellung der Produktqualität. Diese Systeme sind wichtig für die Inspektion und Überprüfung der Standards von Produkten, die sich entlang der Produktionslinie bewegen. Trotz ihrer weitverbreiteten Anwendung gibt es eine Lücke in der Verfügbarkeit automatisierter Testframeworks, die zur Bewertung der Codequalität dieser Bildverarbeitungssysteme entwickelt wurden. Traditionelle Softwareentwicklungsmethoden sind oft nicht in der Lage, sich an die einzigartigen und anspruchsvollen Umgebungen industrieller Anwendungen anzupassen, was zu Ineffizienzen und potenziellen Fehlern führen kann.In today's manufacturing landscape, industrial image processing systems play a central role in ensuring product quality. These systems are essential for inspecting and verifying the standards of products as they move along the production line. Despite their widespread use, there is a gap in the availability of automated test frameworks designed to evaluate the code quality of these image processing systems. Traditional software development methods are often unable to adapt to the unique and demanding environments of industrial applications, which can lead to inefficiencies and potential errors.

Das Fehlen robuster Softwarequalitätsstandards innerhalb von Messsystemen ist in diesen Produktionsumgebungen ein Problem. Dieser Mangel kann zu erhöhten Produktionskosten, längeren Ausfallzeiten und einer höheren Anzahl fehlerhafter Teile führen. Folglich besteht ein Bedarf an einem automatisierten Testframework, das die Codequalität industrieller Bildverarbeitungssysteme bewertet.The lack of robust software quality standards within measurement systems is a problem in these production environments. This deficiency can lead to increased production costs, longer downtimes, and a higher number of defective parts. Consequently, there is a need for an automated test framework that evaluates the code quality of industrial image processing systems.

Im Zeitalter von Industrie 4.0 wächst die Abhängigkeit von komplexen Softwaresystemen in industriellen Prozessen, insbesondere in der Bildverarbeitung, weiter. Diese zunehmende Komplexität unterstreicht die Bedeutung der Sicherstellung der Robustheit und Zuverlässigkeit dieser Systeme. Eine kritische Herausforderung, die sich dabei ergibt, ist die Qualitätssicherung von Softwareimplementierungen, die unerlässlich ist, um kostspielige Störungen im Fertigungsprozess zu verhindern. Konventionelle Testmethoden scheitern oft daran, die spezifischen Bedürfnisse und Komplexitäten industrieller Bildverarbeitungssysteme zu erfüllen, was zu potenziellen Softwarefehlern führt.In the age of Industry 4.0, the reliance on complex software systems in industrial processes, particularly in image processing, continues to grow. This increasing complexity underscores the importance of ensuring the robustness and reliability of these systems. A critical challenge that arises is the quality assurance of software implementations, which is essential to prevent costly disruptions in the manufacturing process. Conventional testing methods often fail to meet the specific needs and complexities of industrial image processing systems, leading to potential software defects.

Manuelles Testen ist zwar eine Alternative, jedoch nicht ohne Nachteile. Es ist zeitaufwändig, ressourcenintensiv und anfällig für menschliche Fehler, was die konsistente und automatisierte Testung nach Codeänderungen erschwert. Ziel eines speziellen Testframeworks ist es, Prozesse nachhaltig zu optimieren und Kosten zu reduzieren. Dies ist besonders wichtig in der Vision-Software, wo Anpassungen an die optischen Eigenschaften von Materialien das ursprüngliche Setup stören können und zu Fehlern führen. Diese Herausforderungen werden durch schnelle Entwicklungszyklen und die Notwendigkeit, mehrere Produkte und Prozesse innerhalb einer einzigen Station zu verwalten, noch verstärkt. Die Bewältigung dieser Setup-Konflikte ist eine der größten Herausforderungen für Prozessingenieure, und Fehler können zu erheblichen Risiken führen.While manual testing is an alternative, it has its drawbacks. It is time-consuming, resource-intensive, and prone to human error, making consistent and automated testing after code changes difficult. The goal of a dedicated test framework is to optimize processes sustainably and reduce costs. This is particularly important in vision software, where adjustments to the optical properties of materials can disrupt the original setup and lead to errors. These challenges are compounded by rapid development cycles and the need to manage multiple products and processes within a single station. Addressing these setup conflicts is one of the biggest challenges for process engineers, and errors can lead to significant risks.

Falls es zulässig ist, ein Teil nachzubearbeiten, können die durch den Produktionsstillstand verursachten Stillstandskosten erhebliche Auswirkungen haben. Zusätzlich fallen ständig Kosten für Ingenieure an, die verschiedene Teile auf Nachhaltigkeit überprüfen müssen. Weiterhin gibt es Kosten für das Einrichten des Teils an der Station und für die Nachbearbeitung. Wenn eine Nachbearbeitung nicht erlaubt ist, beispielsweise wenn das Ausgabematerial der Teile abgelaufen ist, bleiben die Stillstands- und Inspektionskosten dieselben wie im vorherigen Szenario. Zusätzlich entstehen Kosten für verschrottete Teile und Recycling.If reworking a part is permitted, the downtime costs caused by the production stoppage can be significant. Additionally, there are ongoing costs for engineers who need to inspect various parts for sustainability. Furthermore, there are costs for setting up the part at the station and for the reworking itself. If reworking is not allowed, for example, if the output material of the parts has expired, the downtime and inspection costs remain the same as in the previous scenario. Additional costs arise for scrapped parts and recycling.

Der dritte und aus Zuverlässigkeitssicht kritischste Punkt ist die Möglichkeit, dass NOK-Teile (Nicht OK) irrtümlicherweise als OK-Teile erkannt werden. Diese Fehlklassifizierung kann zu einer Verringerung der Lebensdauer des Teils führen. Darüber hinaus besteht das Risiko, dass Kunden das Teil bei Erhalt als fehlerhaft identifizieren, was möglicherweise zu Rücksendungen führt. Im schlimmsten Fall, wenn dieser Fehler nicht rechtzeitig erkannt wird, könnte dies zu einer groß angelegten Rückrufaktion führen.The third and, from a reliability perspective, most critical point is the possibility that NOK (Not OK) parts might be mistakenly identified as OK parts. This misclassification can lead to a reduction in the part's lifespan. Furthermore, there is a risk that customers will identify the part as defective upon receipt, potentially resulting in returns. In the worst-case scenario, if this error is not detected in time, it could lead to a large-scale recall.

Um ein umfassendes Verständnis der potenziellen Kosteneinsparungen durch die Integration des patentierten Software-Testframeworks für optische Inspektionssoftware zu vermitteln, wurde eine Kostenabschätzung an einer einzelnen Station in einer Leistungselektronik-Produktionslinie durchgeführt. Die Analyse ergab, dass Softwarefehler mehr als 30% der Gesamtausfälle der Station ausmachen und zu einer erheblichen Anzahl von Pseudofehlern führen. Diese Pseudofehler führen häufig zu unnötigen Ablehnungen von Bauteilen, die in Wirklichkeit von akzeptabler Qualität sind, was zusätzliche Kosten für manuelle Eingriffe und Neubewertungen durch Fehleranalyseteams verursacht.To provide a comprehensive understanding of the potential cost savings from integrating the patented software test framework for optical inspection software, a cost estimate was conducted at a single station in a power electronics production line. The analysis revealed that software errors accounted for more than 30% of the station's total failures and resulted in a significant number of false positives. These false positives frequently lead to unnecessary rejections of components that are actually of acceptable quality, incurring additional costs for manual intervention and reassessment by failure analysis teams.

Eine weitere Untersuchung ergab, dass nur ca. 40% der von der Software als fehlerhaft identifizierten Teile tatsächlich defekt waren, was auf eine hohe Rate an falsch-positiven Ergebnissen hinweist. Infolgedessen werden die meisten von der Software als defekt identifizierten Teile einer manuellen Inspektion und Analyse unterzogen, was zu erhöhten Betriebskosten führt. Die patentierte Erfindung zielt darauf ab, dieses Problem durch die Automatisierung des Testframeworks zu lösen, wodurch die Anzahl der falsch-positiven Ergebnisse reduziert und der Bedarf an manuellen Eingriffen minimiert wird.Further investigation revealed that only about 40% of the parts identified as faulty by the software were actually defective, indicating a high rate of false positives. Consequently, most of the parts identified as defective by the software undergo manual inspection and analysis, leading to increased operating costs. The patented invention aims to solve this problem by automating the test framework, thereby reducing the The number of false-positive results is reduced and the need for manual intervention is minimized.

Vor diesem Hintergrund ist es ist eine Aufgabe der Erfindung, ein verbessertes Verfahren und/oder eine verbesserte Vorrichtung anzugeben.Against this background, it is an object of the invention to provide an improved method and/or an improved device.

Die Aufgabe wird gelöst durch ein Verfahren gemäß den Merkmalen des Patentanspruchs 1. Die Aufgabe wird gelöst durch eine Vorrichtung gemäß den Merkmalen des Patentanspruchs 10.The problem is solved by a method according to the features of claim 1. The problem is solved by a device according to the features of claim 10.

Offenbarung der ErfindungDisclosure of the invention

Gemäß einem ersten Aspekt wird ein Verfahren zum Testen von Softwareänderungen und/oder zum Erkennen von Softwarefehlern einer Bilderkennungssoftware, insbesondere einer Fehlererkennungssoftware, die auf einer industriellen Maschine implementierbar ist, vorgeschlagen.According to a first aspect, a method for testing software changes and/or detecting software errors of an image recognition software, in particular an error detection software, which can be implemented on an industrial machine, is proposed.

Das Verfahren aufweisend die Schritte:

  • - Bereitstellen eines Softwarecodes, der die Softwareänderungen aufweist, an ein Versions-Kontrollsystem;
  • - Ermitteln der Softwareänderungen in dem bereitgestellten Softwarecode durch das Versions-Kontrollsystem;
  • - Ausführen zumindest eines Teils des Softwarecodes auf einer virtuellen Maschine, durch die ein Testframework bereitgestellt wird, und durch die ein Verhalten der industriellen Maschine in Reaktion auf den Softwarecode simulierbar ist;
  • - Ausführen zumindest eines Teils des Softwarecodes auf einer Vision Engine auf Basis von gelabelten Bildtestdaten, die gelabelte Bilder aufweisen zum Testen des Softwarecodes; und
  • - Bereitstellen eines Testergebnisses auf Basis des auf der Vision Engine ausgeführten zumindest einen Teils des Softwarecodes.
The procedure includes the following steps:
  • - Providing software code containing the software changes to a version control system;
  • - Determining software changes in the provided software code using the version control system;
  • - Executing at least part of the software code on a virtual machine, which provides a test framework and allows the simulation of the industrial machine's behavior in response to the software code;
  • - Executing at least part of the software code on a vision engine based on labeled image test data that includes labeled images for testing the software code; and
  • - Providing a test result based on at least part of the software code executed on the Vision Engine.

Es versteht sich, dass die erfindungsgemäßen Schritte sowie weitere optionale Schritte nicht notwendigerweise in der aufgezeigten Reihenfolge ausgeführt werden müssen, sondern auch in einer anderen Reihenfolge ausgeführt werden können. Ferner können weitere Zwischenschritte vorgesehen sein. Die einzelnen Schritte können zudem einen oder mehrere Unterschritte umfassen, ohne dass hierdurch der Umfang des erfindungsgemäßen Verfahrens verlassen wird.It is understood that the steps according to the invention, as well as further optional steps, do not necessarily have to be carried out in the sequence shown, but can also be carried out in a different sequence. Furthermore, additional intermediate steps may be provided. The individual steps may also comprise one or more sub-steps without thereby departing from the scope of the method according to the invention.

Gemäß einem zweiten Aspekt wird eine Vorrichtung zum Testen von Softwareänderungen und/oder zum Erkennen von Softwarefehlern einer Bilderkennungssoftware, insbesondere einer Fehlererkennungssoftware, die auf einer industriellen Maschine implementierbar ist, vorgeschlagen. Die Vorrichtung weist eine Auswerte- und Recheneinrichtung auf, die dazu ausgebildet ist, die folgenden Schritte auszuführen:

  • - Bereitstellen eines Softwarecodes, der die Softwareänderungen aufweist, an ein Versions-Kontrollsystem;
  • - Ermitteln der Softwareänderungen in dem bereitgestellten Softwarecode durch das Versions-Kontrollsystem;
  • - Ausführen zumindest eines Teils des Softwarecodes auf einer virtuellen Maschine, durch die ein Testframework bereitgestellt wird, und durch die ein Verhalten der industriellen Maschine in Reaktion auf den Softwarecode simulierbar ist;
  • - Ausführen zumindest eines Teils des Softwarecodes auf einer Vision Engine auf Basis von gelabelten Bildtestdaten, die gelabelte Bilder aufweisen zum Testen des Softwarecodes; und
  • - Bereitstellen eines Testergebnisses auf Basis des auf der Vision Engine ausgeführten zumindest einen Teils des Softwarecodes.
According to a second aspect, a device for testing software changes and/or detecting software errors in image recognition software, in particular error detection software, which can be implemented on an industrial machine, is proposed. The device includes an evaluation and computing unit configured to perform the following steps:
  • - Providing software code containing the software changes to a version control system;
  • - Determining software changes in the provided software code using the version control system;
  • - Executing at least part of the software code on a virtual machine, which provides a test framework and allows the simulation of the industrial machine's behavior in response to the software code;
  • - Executing at least part of the software code on a vision engine based on labeled image test data that includes labeled images for testing the software code; and
  • - Providing a test result based on at least part of the software code executed on the Vision Engine.

Die für das Verfahren gemachten Ausführungen gelten für die Vorrichtung entsprechend. Dabei versteht es sich, dass sprachliche Abwandlungen von verfahrensmäßig formulierten Merkmalen nach sprachüblicher Praxis für die Vorrichtung umformulierbar sind, ohne dass derartige Formulierungen explizit hier aufgeführt werden müssen.The statements made regarding the procedure apply accordingly to the device. It is understood that linguistic modifications of procedurally formulated features can be reformulated for the device according to common linguistic practice, without such formulations needing to be explicitly listed here.

Das vorliegende Verfahren und die vorliegende Vorrichtung stellen ein automatisiertes Testframework bereit, das speziell für industrielle Bildverarbeitungssysteme entwickelt wurde. Dieses Framework verbessert nicht nur die Effizienz und Effektivität der Qualitätssicherungsprozesse, sondern gewährleisten auch die Zuverlässigkeit und Robustheit dieser kritischen Industriesysteme. Das Framework wurde entwickelt, um die spezifischen Herausforderungen im Zusammenhang mit der Gewährleistung der Softwarequalität und -zuverlässigkeit in Produktionsumgebungen, in denen die Bildverarbeitung eine entscheidende Rolle bei der Qualitätskontrolle und bei Inspektionsprozessen spielt, entwickelt. Das vorliegende Softwaretest-Frameworks kann in verschiedenen Fertigungssektoren eingesetzt werden, um zu einer verbesserten Produktqualität, geringeren Kosten und einer höheren betrieblichen Effizienz beizutragen und insbesondere Softwarefehler zu erkennen, zu vermeiden oder zumindest zu minimieren.The present method and apparatus provide an automated test framework specifically designed for industrial image processing systems. This framework not only improves the efficiency and effectiveness of quality assurance processes but also ensures the reliability and robustness of these critical industrial systems. The framework was developed to address the specific challenges associated with ensuring software quality and reliability in production environments where image processing plays a crucial role in quality control and inspection processes. This software test framework can be used in various manufacturing sectors to contribute to improved product quality, reduced costs, and increased operational efficiency, and in particular to detect, prevent, or at least minimize software errors.

Das vorliegende Framework bietet standardisierte und automatisierte Testverfahren, die sich nahtlos in bestehende Software-Entwicklungsabläufe integrieren lassen. Durch die Nutzung der Prinzipien der kontinuierlichen Integration und Softwaretests stärkt das Framework die Zuverlässigkeit und Stabilität von Softwareänderungen in industriellen Umgebungen. Dabei ist ein Aspekt der Erfindung ihre Vielseitigkeit, die sich an verschiedenen Bildverarbeitungssystemen orientiert, die häufig in der industriellen Bildverarbeitung eingesetzt werden. Das vorgeschlagene Software-Test-Framework bietet gegenüber bestehenden Methoden mehrere Vorteile. Erstens stellt es eine umfassende und automatisierte Testumgebung bereit, die die Effizienz von Qualitätssicherungsprozessen verbessert. Zweitens ermöglicht das Framework durch die Ermöglichung kontinuierlicher Tests während des gesamten Software-Entwicklungszyklus die frühzeitige Erkennung und Behebung von Softwarefehlern und verringert so das Risiko von Produktionsausfällen und der damit verbundenen Kosten.This framework offers standardized and automated testing procedures that can be seamlessly integrated into existing software development workflows. By using the principles of By applying the principles of continuous integration and software testing, the framework strengthens the reliability and stability of software changes in industrial environments. A key aspect of the invention is its versatility, which is geared towards various image processing systems commonly used in industrial image processing. The proposed software testing framework offers several advantages over existing methods. First, it provides a comprehensive and automated testing environment that improves the efficiency of quality assurance processes. Second, by enabling continuous testing throughout the entire software development lifecycle, the framework allows for the early detection and correction of software errors, thereby reducing the risk of production downtime and the associated costs.

Darüber hinaus gewährleistet die Anpassungsfähigkeit des Frameworks an verschiedene Bildverarbeitungssysteme Vielseitigkeit und Anwendbarkeit in einer Vielzahl von industriellen Umgebungen. Das Framework führt so zu einer verbesserten Softwarequalität, da es umfassende Softwaretests von Bildverarbeitungsalgorithmen ermöglicht, sodass Softwarefehler erkannt und behoben werden können, bevor sie sich auf die Produktionsprozesse auswirken. Dies führt zu einer höheren Softwarequalität und -zuverlässigkeit und verringert das Risiko von Produktfehlern und verbundenen Kosten. Ferner führt das Framework zu einer verbesserten betrieblichen Effizienz, welche durch die Automatisierung von Softwaretestprozessen manifestiert. Das Framework rationalisiert Qualitätssicherungsverfahren und reduziert den Zeit- und Ressourcenaufwand für Tests.Furthermore, the framework's adaptability to various image processing systems ensures versatility and applicability in a wide range of industrial environments. This leads to improved software quality, as it enables comprehensive software testing of image processing algorithms, allowing software errors to be detected and corrected before they impact production processes. This results in higher software quality and reliability, reducing the risk of product defects and associated costs. Additionally, the framework leads to improved operational efficiency through the automation of software testing processes. It streamlines quality assurance procedures and reduces the time and resources required for testing.

Diese Optimierung ermöglicht es, betriebliche Effizienz zu verbessern, die Ausfallzeiten der Produktionslinie zu minimieren und die Produktivität zu maximieren. Das Framework stellt ferner die Möglichkeit der Standardisierung und Anpassungsfähigkeit bereit. Das Framework bietet dabei beispielsweise einen standardisierten Ansatz für Regressionstests in unterschiedlichen Fertigungsumgebungen. Es kann an verschiedene Bildverarbeitungssysteme angepasst werden, die in der Industrie häufig zum Einsatz kommen, und ermöglicht so eine nahtlose Integration und konsistente Testmethoden.This optimization enables improved operational efficiency, minimizes production line downtime, and maximizes productivity. Furthermore, the framework provides standardization and adaptability. For example, it offers a standardized approach to regression testing across diverse manufacturing environments. It can be adapted to various image processing systems commonly used in industry, thus facilitating seamless integration and consistent testing methods.

Das Framework trägt ferner zur Kostensenkung bei, da es die frühzeitige Erkennung und Behebung von Softwarefehlern ermöglicht. So werden Produktionsausfälle und Nacharbeiten vermieden. Durch die Minimierung der Auswirkungen von Softwarefehlern trägt es zur Gesamtkostenreduzierung und gesteigerte Rentabilität bei.Furthermore, the framework contributes to cost reduction by enabling the early detection and correction of software errors. This avoids production downtime and rework. By minimizing the impact of software errors, it contributes to overall cost reduction and increased profitability.

In der Produktion führt das Framework zur Reduzierung fehlerhafter Teile aufgrund von Fehlausrichtung, Nacharbeit, Produktionsausfallzeiten und Produktionskosten, da die Designphase die betreffenden Probleme löst. Ferner wird bei der optischen Inspektion sichergestellt, dass Bildverarbeitungsalgorithmen gründlich getestet werden, was zu einer Reduzierung der fehlerhaften Teile aufgrund von Fehlausrichtungen oder Fehlern im Inspektionsprozesses führt. So müssen weniger Nacharbeiten und Produktionsausfälle in Kauf genommen werden. Derart können Teile pünktlich und mit hoher Qualität geliefert werden.In production, the framework reduces defective parts due to misalignment, rework, production downtime, and production costs, as the design phase addresses these issues. Furthermore, during optical inspection, it ensures that image processing algorithms are thoroughly tested, leading to a reduction in defective parts due to misalignment or errors in the inspection process. This results in less rework and fewer production downtimes, enabling on-time delivery of high-quality parts.

Das Softwaretest-Framework kann nahtlose in bestehende Kameraplattformen implementiert werden, wie beispielsweise Halcon, Keyence, Cognex. Mit modernen Technologien wie Python, Jenkins und Git gewährleistet die Erfindung somit umfassende Testabdeckung und nahtlose Integration in bestehende Entwicklungsprozesse.The software testing framework can be seamlessly implemented into existing camera platforms, such as Halcon, Keyence, and Cognex. Using modern technologies like Python, Jenkins, and Git, the invention ensures comprehensive test coverage and seamless integration into existing development processes.

Testfälle werden durch das vorliegende Framework sorgfältig definiert, um verschiedene Funktionen von Bildverarbeitungsalgorithmen abzudecken und eine gründliche Bewertung von Softwareänderungen zu ermöglichen. Die Architektur des Frameworks ermöglicht eine nahtlose Integration in bestehenden Entwicklungswerkzeuge und ermöglicht kontinuierliche Tests und Echtzeit-Feedback während des gesamten Software-Entwicklungszyklus.Test cases are carefully defined by this framework to cover various functions of image processing algorithms and enable a thorough evaluation of software changes. The framework's architecture allows for seamless integration with existing development tools and enables continuous testing and real-time feedback throughout the entire software development lifecycle.

Durch die Berücksichtigung spezifischer Anforderungen und die Integration in bestehende Infrastrukturen wie Jenkins Master, wird so eine effiziente und robuste Testumgebung geschaffen, die den Herausforderungen industrieller Anwendungen gerecht wird. Darüber hinaus bietet die Erfindung einen Mechanismus zur Validierung ihrer Wirksamkeit durch vergleichende Tests mit Wettbewerberprodukten, wodurch die Überlegenheit in Bezug auf Softwarequalität und Leistung demonstriert wird.By taking specific requirements into account and integrating with existing infrastructures such as Jenkins Master, an efficient and robust test environment is created that meets the challenges of industrial applications. Furthermore, the invention provides a mechanism for validating its effectiveness through comparative testing with competitor products, thereby demonstrating its superiority in terms of software quality and performance.

Effizienz und Effektivität sind zwei Faktoren, die bei der Durchführung von Tests in einer industriellen Umgebung berücksichtigt werden sollten. Effizienz bezieht sich dabei vorzugsweise auf die Fähigkeit eines Test-Frameworks, Testfälle schnell und mit minimalem Ressourcenverbrauch auszuführen.Efficiency and effectiveness are two factors that should be considered when conducting tests in an industrial environment. Efficiency primarily refers to a test framework's ability to execute test cases quickly and with minimal resource consumption.

Dies ist wichtig, da in industriellen Umgebungen häufig große und komplexe Softwaresysteme zum Einsatz kommen und Tests können zeit- und ressourcenintensiv sein. Ein effizientes Regressionstest-Framework kann dazu beitragen, den Zeit- und Ressourcen, die für Tests aufgewendet werden, und steigert so die Gesamtproduktivität und senkt die Kosten.This is important because industrial environments often use large and complex software systems, and testing can be time-consuming and resource-intensive. An efficient regression testing framework can help reduce the time and resources spent on testing, thereby increasing overall productivity and reducing costs.

Effektivität bezieht sich vorzugsweise auf die Fähigkeit eines Test-Frameworks, Fehler und Mängel in der getesteten zu erkennen. Dies ist in einer industriellen Umgebung von entscheidender Bedeutung, da fehlerhafte Software zu Produktfehlern, Produktionsverzögerungen und andere Probleme führen, die sich auf das Endergebnis auswirken können.Effectiveness primarily refers to a test framework's ability to detect errors and defects in the software under test. This is crucial in an industrial environment, as faulty software can lead to product defects, production delays, and other problems that can impact the final product.

Ein effektives Framework für Softwaretests kann dabei helfen, Probleme frühzeitig im Softwareentwicklungsprozess zu erkennen und zu beheben, wodurch später Zeit und Kosten gespart werden können. Ein effizientes und effektives Framework ist für die Gewährleistung der Zuverlässigkeit und Qualität von Software in industriellen Umgebungen somit bevorzugt. Dies erfordert unter anderem eine kontinuierliche Überprüfung eines Software-Lebenszyklus, um auf sich ändernde Bedingungen im jeweiligen Testszenario reagieren zu können.An effective software testing framework can help identify and resolve problems early in the software development process, saving time and costs later on. An efficient and effective framework is therefore preferable for ensuring the reliability and quality of software in industrial environments. This requires, among other things, continuous monitoring of the software lifecycle to respond to changing conditions in the respective test scenario.

Beim Testdesign werden Testfälle ausgewählt und erstellt, um sicherzustellen, dass sich vorgenommene Änderungen nicht auf die bestehende Funktionalität auswirken. Dieser Prozess hilft dabei, den Umfang der Testabdeckung und die potenzielle Wiederverwendung von Testfällen zu verstehen, was wiederum Rückschlüsse auf die Effektivität der Teststrategie zulässt. Der Schwerpunkt liegt vorzugsweise auf der Identifizierung von Testfällen, die für die Erkennung von Fehlern entscheidend sind, mit dem Ziel, eine effektive Testreihe zu erstellen. Die Auswahl und Priorisierung von Tests sowie die Auswahl und Priorisierung von Testfällen spielen eine entscheidende Rolle, um eine umfassende Testabdeckung zu ermöglichen. Bei der Testauswahl werden geeignete Testfälle vorzugsweise aus einem Pool an Testfällen ausgewählt, um alle Bereiche abzudecken. Die Testfälle werden vorzugsweise nach ihrer Bedeutung eingestuft, um sicherzustellen, dass kritische Bereiche zuerst getestet werden. In dieser Phase ist es bevorzugt, die Ziele und Anforderungen des Regressionstests zu definieren. Jeder Testfall sollte mit den Anforderungen verknüpft sein, die er validieren soll, um sicherzustellen, dass alle Anforderungen durch die Tests abgedeckt werden.Test design involves selecting and creating test cases to ensure that changes made do not affect existing functionality. This process helps understand the scope of test coverage and the potential reuse of test cases, which in turn allows conclusions to be drawn about the effectiveness of the test strategy. The focus is preferably on identifying test cases that are critical for detecting errors, with the goal of creating an effective test suite. The selection and prioritization of tests, as well as the selection and prioritization of test cases, play a crucial role in enabling comprehensive test coverage. During test selection, suitable test cases are preferably chosen from a pool of test cases to cover all areas. The test cases are preferably ranked according to their importance to ensure that critical areas are tested first. In this phase, it is preferable to define the goals and requirements of the regression test. Each test case should be linked to the requirements it is intended to validate to ensure that all requirements are covered by the tests.

In der Entwicklungsumgebung werden die Vision-Programme auf einem virtuellen Server gehostet, um die Zugänglichkeit für alle Entwickler zu gewährleisten. Jede Änderung an den Vision-Programmen wird vorzugsweise mithilfe einer Versionskontrolle (Git) nachverfolgt. Diese Vision-Programme umfassen vorzugsweise verschiedenen Prozeduren, die die industriellen Prozesse auf dem System implementieren. Die Prozeduren verarbeiten und transformieren vorzugsweise die im Prozess gesammelten Bilddaten und liefern als Ergebnis die Messwerte des Prozesses.In the development environment, the vision programs are hosted on a virtual server to ensure accessibility for all developers. Every change to the vision programs is preferably tracked using version control (Git). These vision programs preferably comprise various procedures that implement the industrial processes on the system. The procedures preferably process and transform the image data collected during the process and deliver the process measurements as a result.

In der Testumgebung erfolgt die Überprüfung der Ergebnisse dieser Verfahren indirekt als Test für die Korrektheit der Verfahren und damit des gesamten Programms. Durch diesen Ansatz können potenzielle Fehler oder Inkonsistenzen in den Verfahren frühzeitig erkannt und behoben werden, um die Zuverlässigkeit und Leistung der Bildverarbeitungsprogramme sicherzustellen. In der definierten Testumgebung wird vorzugsweise ein Quellcode verwendet, um das aktualisierte Vision-Programm aufzurufen, zu initialisieren und die vorgenommenen Änderungen zu bewerten.In the test environment, the results of these procedures are indirectly verified as a test for the correctness of the procedures and thus of the entire program. This approach allows potential errors or inconsistencies in the procedures to be detected and corrected early on, ensuring the reliability and performance of the image processing programs. In the defined test environment, source code is preferably used to call and initialize the updated vision program and to evaluate the changes made.

Beim Aufruf des geänderten Programms werden vorzugsweise die erforderlichen Initialisierungsschritte ausgeführt und die verschiedenen Funktionen ausgeführt, um sicherzustellen, dass die beabsichtigten Änderungen ordnungsgemäß implementiert wurden. Anschließend wird die Bewertung der Änderungen vorzugsweise durchgeführt, um sicherzustellen, dass die Leistung verbessert wurde, keine unerwünschten Nebeneffekte auftreten und/oder das Programm wie erwartet funktioniert. Dieser Prozess ermöglicht es Entwicklern, die Auswirkungen ihrer Änderungen zu überprüfen und sicherzustellen, dass das aktualisierte Vision-Programm weiterhin den Anforderungen entspricht.When the modified program is run, the necessary initialization steps are preferably executed, and the various functions are run to ensure that the intended changes have been implemented correctly. Subsequently, the changes are preferably evaluated to ensure that performance has been improved, no undesirable side effects occur, and/or the program functions as expected. This process allows developers to verify the impact of their changes and ensure that the updated vision program continues to meet requirements.

In einem weiteren Aspekt wird vorgeschlagen, dass, wenn ein positives Testergebnis bereitgestellt wird, das angibt, dass die Softwareänderungen keinen Softwarefehler aufweisen, ein Implementieren des Softwarecodes, der die Softwareänderungen aufweist, auf der industriellen Maschine erfolgt, wobei die industrielle Maschine vorzugsweise dazu ausgebildet ist, eine optische Inspektion eines Bauteils auf Basis des Softwarecodes, insbesondere der Fehlererkennungssoftware, durchzuführen.In another aspect, it is proposed that if a positive test result is provided indicating that the software changes do not contain a software error, the software code incorporating the software changes should be implemented on the industrial machine, the industrial machine preferably being configured to perform an optical inspection of a component based on the software code, in particular the error detection software.

Diese industrielle Maschine ist vorzugsweise dazu ausgebildet, eine optische Inspektion eines Bauteils auf Basis des implementierten Softwarecodes durchzuführen. Insbesondere handelt es sich bei dem Softwarecode um Fehlererkennungssoftware, die dafür sorgt, dass die industrielle Maschine in der Lage ist, potenzielle Fehler in den Bauteilen während der Inspektion zu identifizieren.This industrial machine is preferably designed to perform an optical inspection of a component based on the implemented software code. Specifically, the software code is fault detection software that enables the industrial machine to identify potential defects in the components during inspection.

Dabei kann durch die automatisierte optische Inspektion eine Klassifikation der Bauteil in OK und nOK (Ausschuss) Bauteile erfolgen. Die Klassifikation erfolgt vorzugsweise auf Basis von Bilddaten, die durch einen optischen Sensor von dem Bauteil erfasst werden. Die Auswertung erfolgt durch einen Fehlererkennungsalgorithmus.Automated optical inspection allows for the classification of components into OK (OK) and non-OK (reject) parts. This classification is preferably based on image data captured by an optical sensor. The data is then evaluated using a defect detection algorithm.

In einem weiteren Aspekt wird vorgeschlagen, dass vor dem Ausführen zumindest eines Teils des Softwarecodes auf der virtuellen Maschine ein Verarbeiten der ermittelten Softwareänderungen in dem bereitgestellten Softwarecode durch ein automatisiertes Framework zum Triggern einer Testplattform mit einer Vielzahl von Testszenarien, wobei das automatisierte Framework, insbesondere Jenkins, vorzugsweise einen Master und mehrere Agenten aufweist.Another aspect proposes that, before executing at least part of the software code on the virtual machine, the identified software changes should be processed in the provided software code by an automated framework for triggering a test platform with a variety of test scenarios, wherein the automated framework, in particular Jenkins, preferably has a master and multiple agents.

Das Verarbeiten der ermittelten Softwareänderungen erfolgt, bevor zumindest ein Teil des Softwarecodes auf der virtuellen Maschine ausgeführt wird. Die ermittelten Softwareänderungen im bereitgestellten Softwarecode werden durch ein automatisiertes Framework verarbeitet. Das automatisierte Framework ist dafür vorgesehen, eine Testplattform mit einer Vielzahl von Testszenarien zu triggern. Die Testplattform umfasst eine Vielzahl von Testszenarien, die durch das automatisierte Framework ausgelöst werden. Das Framework umfasst vorzugsweise Jenkins, ein weit verbreitetes Tool für kontinuierliche Integration und kontinuierliches Deployment. Das Framework, insbesondere Jenkins, besteht vorzugsweise aus einem Master und mehreren Agenten, die die Tests parallel und effizient ausführen.The processing of the identified software changes occurs before at least a portion of the software code is executed on the virtual machine. The identified software changes in the deployed software code are processed by an automated framework. This automated framework is designed to trigger a test platform with a variety of test scenarios. The test platform comprises a variety of test scenarios that are triggered by the automated framework. The framework preferably includes Jenkins, a widely used tool for continuous integration and continuous deployment. The framework, specifically Jenkins, preferably consists of a master and multiple agents that execute the tests in parallel and efficiently.

In einem weiteren Aspekt wird vorgeschlagen, dass das Bereitstellen des Testergebnisses ein Bereitstellen eines Testergebnisses von der Vision Engine an das Testframework und ein Aufbereiten des Testergebnisses durch das Testframework aufweist.In another aspect, it is proposed that providing the test result involves providing a test result from the Vision Engine to the test framework and processing the test result by the test framework.

In einem weiteren Aspekt wird vorgeschlagen, dass das Bereitstellen des Testergebnisses ein Bereitstellen des aufbereiteten Testergebnisses an das automatisierte Framework aufweist.Another aspect is proposed to involve providing the test result to the automated framework.

In einem weiteren Aspekt wird vorgeschlagen, dass ferner ein insbesondere manuelles Überprüfen des Testergebnisses durch einen Experten erfolgt.Another aspect is proposed: that the test result should also be manually reviewed by an expert.

In einem weiteren Aspekt ist auch ein Steuergerät beansprucht, das in einem Robotiksystem und/oder einer industriellen Maschine umfasst ist, und auf dem das vorliegende Verfahren in einem seiner Aspekte ausführbar ist. Das Robotiksystem und/oder die industrielle Maschine ist vorzugsweise dazu ausgebildet, Bauteile automatisiert optisch zu inspizieren und derart in OK und nOK Bauteile zu klassifizieren.In another aspect, a control unit is also claimed, which is included in a robotics system and/or an industrial machine, and on which the present method can be carried out in one of its aspects. The robotics system and/or the industrial machine is preferably configured to automatically optically inspect components and thus classify them as OK and not OK components.

Der Klassifikationsalgorithmus zur Fehlererkennung von Bauteilen kann analytisch aufgebaut sein und/oder zumindest Teil eines maschinellen Lernmodells aufweisen.The classification algorithm for detecting defects in components can be analytically structured and/or at least include part of a machine learning model.

In einem weiteren Aspekt ist ein Computerprogramm mit Programmcode beansprucht, um zumindest Teile des vorliegenden Verfahrens in einem seiner Aspekte auszuführen, wenn das Computerprogramm auf einem Computer ausgeführt wird. Mit anderen Worten wird ein Computerprogramm(-produkt), umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren/die Schritte des Verfahrens in einem seiner Aspekte auszuführen.In another aspect, a computer program is claimed to contain program code capable of executing at least parts of the present method in one of its aspects when the computer program is executed on a computer. In other words, a computer program (product) is claimed to comprise instructions that, when executed by a computer, cause it to execute the method(s) in one of its aspects.

In einem weiteren Aspekt ist ein computerlesbarer Datenträger mit Programmcode eines Computerprogramms vorgeschlagen, um zumindest Teile des vorliegenden Verfahrens in einem seiner Aspekte auszuführen, wenn das Computerprogramm auf einem Computer ausgeführt wird. Mit anderen Worten betrifft die Erfindung ein computerlesbares (Speicher-) Medium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren/die Schritte des Verfahrens in einem seiner Aspekte auszuführen.In a further aspect, a computer-readable data carrier containing the program code of a computer program is proposed to execute at least parts of the present method in one of its aspects when the computer program is executed on a computer. In other words, the invention relates to a computer-readable (storage) medium comprising instructions which, when executed by a computer, cause it to execute the method/steps of the method in one of its aspects.

Die beschriebenen Ausgestaltungen und Weiterbildungen lassen sich beliebig miteinander kombinieren.The described configurations and training programs can be combined in any way desired.

Weitere mögliche Ausgestaltungen, Weiterbildungen und Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmalen der Erfindung.Further possible embodiments, developments and implementations of the invention also include combinations of features of the invention described previously or subsequently with regard to the exemplary embodiments that are not explicitly mentioned.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

Die beiliegenden Zeichnungen sollen ein weiteres Verständnis der Ausführungsformen der Erfindung vermitteln. Sie veranschaulichen Ausführungsformen und dienen im Zusammenhang mit der Beschreibung der Erklärung von Prinzipien und Konzepten der Erfindung.The accompanying drawings are intended to provide a further understanding of the embodiments of the invention. They illustrate embodiments and, in conjunction with the description, serve to explain the principles and concepts of the invention.

Andere Ausführungsformen und viele der genannten Vorteile ergeben sich im Hinblick auf die Zeichnungen. Die dargestellten Elemente der Zeichnungen sind nicht notwendigerweise maßstabsgetreu zueinander gezeigt.

  • 1 zeigt ein schematisches Flussdiagramm eines Ausführungsbeispiels des vorliegenden Verfahrens.
  • 2 zeigt ein schematisches Blockdiagramm eines Ausführungsbeispiels des vorliegenden Verfahrens.
  • 3 zeigt ein spezifisches Ablaufdiagramm eines spezifischen Ausführungsbeispiels des vorliegenden Verfahrens.
Other embodiments and many of the aforementioned advantages become apparent with reference to the drawings. The elements depicted in the drawings are not necessarily shown to scale.
  • 1 shows a schematic flowchart of an exemplary embodiment of the present method.
  • 2 shows a schematic block diagram of an embodiment of the present method.
  • 3 shows a specific flowchart of a specific embodiment of the present method.

In den Figuren der Zeichnungen bezeichnen gleiche Bezugszeichen gleiche oder funktionsgleiche Elemente, Bauteile oder Komponenten, soweit nichts Gegenteiliges angegeben ist.In the figures of the drawings, identical reference symbols denote identical or functionally equivalent elements, parts or components, unless otherwise stated.

1 zeigt ein schematisches Flussdiagramm eines Verfahrens zum Testen von Softwareänderungen und/oder zum Erkennen von Softwarefehlern einer Bilderkennungssoftware, insbesondere einer Fehlererkennungssoftware, die auf einer industriellen Maschine implementierbar ist. 1 shows a schematic flowchart of a procedure for testing software changes and/or detecting software errors of an image recognition software, in particular an error detection software, which can be implemented on an industrial machine.

Das Verfahren kann in einer beliebigen Ausführungsform zumindest teilweise durch eine Vorrichtung 100 ausgeführt werden, die hierzu mehrere nicht näher dargestellte Komponenten, beispielsweise eine oder mehrere Bereitstellungseinrichtungen und/oder mindestens eine Auswerte- und Recheneinrichtung umfassen kann. Es versteht sich, dass die Bereitstellungseinrichtung gemeinsam mit der Auswerte- und Recheneinrichtung ausgebildet sein kann, oder von dieser unterschiedlich sein kann. Ferner kann die Vorrichtung 100, die ein Teil eines Systems sein kann, eine Speichereinrichtung und/oder eine Ausgabeeinrichtung und/oder eine Anzeigeeinrichtung und/oder eine Eingabeeinrichtung umfassen.The method can be carried out in any embodiment, at least partially, by a device 100, which may comprise several components not shown in detail, for example, one or more provisioning units and/or at least one evaluation and computing unit. It is understood that the provisioning unit may be designed together with the evaluation and computing unit, or it may be different from it. Furthermore, the device 100, which may be part of a system, may comprise a storage unit and/or an output unit and/or a display unit and/or an input unit.

Das computerimplementierte Verfahren umfasst mindestens die folgenden Schritte:

  • In einem Schritt S1 erfolgt ein Bereitstellen eines Softwarecodes, der die Softwareänderungen aufweist, an ein Versions-Kontrollsystem.
  • In einem Schritt S2 erfolgt ein Ermitteln der Softwareänderungen in dem bereitgestellten Softwarecode durch das Versions-Kontrollsystem.
  • In einem Schritt S3 erfolgt ein Ausführen zumindest eines Teils des Softwarecodes auf einer virtuellen Maschine, durch die ein Testframework bereitgestellt wird, und durch die ein Verhalten der industriellen Maschine in Reaktion auf den Softwarecode simulierbar ist.
  • In einem Schritt S4 erfolgt ein Ausführen zumindest eines Teils des Softwarecodes auf einer Vision Engine auf Basis von gelabelten Bildtestdaten, die gelabelte Bilder aufweisen zum Testen des Softwarecodes.
  • In einem Schritt S5 erfolgt ein Bereitstellen eines Testergebnisses auf Basis des auf der Vision Engine ausgeführten zumindest einen Teils des Softwarecodes.
The computer-implemented procedure includes at least the following steps:
  • In step S1, a software code containing the software changes is provided to a version control system.
  • In step S2, the version control system identifies the software changes in the provided software code.
  • In step S3, at least part of the software code is executed on a virtual machine, which provides a test framework and allows the behavior of the industrial machine in response to the software code to be simulated.
  • In step S4, at least part of the software code is executed on a vision engine based on labeled image test data, which contains labeled images for testing the software code.
  • In step S5, a test result is provided based on at least part of the software code executed on the Vision Engine.

2 zeigt ein dieser Erfindung zugrunde liegende Hyper-Test-Framework 200. Dieses Framework 200 schafft eine umfassende Testumgebung, die ein Versionskontrollsystem (VCS) 202, ein Test-Framework 204 (beispielsweise implementiert durch Python), ein automatisiertes Framework 206 zum Triggern einer Testplattform (z.B. Jenkins) und eine optische Inspektionssoftware bzw. Vision Engine 208 nutzt, um den Testprozess zu automatisieren. Es bietet eine strukturierte Grundlage für die Entwicklung und Ausführung von Testreihen. 2 Figure 200 shows a hyper-test framework 200 underlying this invention. This framework 200 creates a comprehensive test environment that utilizes a version control system (VCS) 202, a test framework 204 (implemented, for example, using Python), an automated framework 206 for triggering a test platform (e.g., Jenkins), and optical inspection software or a vision engine 208 to automate the test process. It provides a structured basis for the development and execution of test series.

Das automatisierte Framework 206 lässt sich vorzugsweise mithilfe von Webhooks und GitHub Actions nahtlos mit dem Versionskontrollsystem 202 verbinden. Das automatisierte Framework 206 verwaltet die Parameterübergabe und die Ausführungssteuerung, während dedizierte Klassen die Testkonfiguration, - ausführung und -auswertung übernehmen.The automated framework 206 can be seamlessly integrated with the version control system 202, preferably using webhooks and GitHub Actions. The automated framework 206 manages parameter passing and execution control, while dedicated classes handle test configuration, execution, and evaluation.

Die Testfälle sind vorzugsweise so definiert, dass sie verschiedene Funktionen der Bildverarbeitungsalgorithmen abdecken und eine gründliche Bewertung der Softwareänderungen ermöglichen. Das Testframework 204 lädt die entsprechende Bildverarbeitungssoftware vorzugsweise dynamisch auf der Grundlage der ausgewählten Testfällen und vergleicht die Messergebnisse mit Referenz-JSON-Dateien. Diese Bildverarbeitungssoftware löst vorzugsweise den jeweiligen Container oder Modul mit dem optischen Prüfalgorithmus. Anschließend werden Konsistenz, Effizienz und Wirksamkeit der implementierten Änderungen. The test cases are preferably defined to cover various functions of the image processing algorithms and enable a thorough evaluation of the software changes. Test framework 204 preferably loads the corresponding image processing software dynamically based on the selected test cases and compares the measurement results with reference JSON files. This image processing software preferably solves the respective container or module containing the optical inspection algorithm. Subsequently, the consistency, efficiency, and effectiveness of the implemented changes are evaluated.

Die Architektur des Frameworks 200 ermöglicht eine nahtlose Integration in bestehenden Entwicklungswerkzeugen und ermöglicht kontinuierliche Tests während des gesamten Lebenszyklus der Maschinensoftware.The architecture of Framework 200 enables seamless integration into existing development tools and allows continuous testing throughout the entire lifecycle of the machine software.

Das Bereitstellen des Testergebnisses weist vorzugsweise ein Bereitstellen eines Testergebnisses von der Vision Engine 208 an das Testframework 204 und ein Aufbereiten S6 des Testergebnisses durch das Testframework 206 auf. Das aufbereitete Testergebnis kann in einem Schritt S7 an das automatisierte Framework 206 bereitgestellt werden. Das automatisierte Framework 206 kann das Testergebnis in einem Schritt S8 an den VSC 202 zurückgeben. In einem Schritt S9 kann ein Überprüfen des Testergebnisses erfolgen. Wenn ein positives Testergebnis bereitgestellt wird, das angibt, dass die Softwareänderungen keinen Softwarefehler aufweisen, kann ein Implementieren S10 des Softwarecodes, der die Softwareänderungen aufweist, auf der industriellen Maschine 210 erfolgt, wobei die industrielle Maschine 210 vorzugsweise dazu ausgebildet ist, eine optische Inspektion eines Bauteils auf Basis des Softwarecodes, insbesondere der Fehlererkennungssoftware, durchzuführen.The provision of the test result preferably comprises the provision of a test result from the Vision Engine 208 to the Test Framework 204 and the processing of the test result by the Test Framework 206 (step S6). The processed test result can be provided to the automated framework 206 in step S7. The automated framework 206 can return the test result to the VSC 202 in step S8. The test result can be verified in step S9. If a positive test result is provided, indicating that the software changes do not contain a software defect, the software code incorporating the software changes can be implemented (step S10) on the industrial machine 210, wherein the industrial machine 210 is preferably configured to perform an optical inspection of a component based on the software code, in particular the defect detection software.

3 veranschaulicht den Arbeitsablauf des Software-Test-Frameworks 200 für optische Inspektionssysteme. Zunächst werden die Anforderungen 300 an die Testreihe definiert, dann wird in Abhängigkeit von dem Testfall entschieden, ob Jenkins für automatisierte Tests verwendet wird, oder eine manuelle Testausführung erfolgt. Anschließend werden Testfälle 302 entwickelt und implementiert, wobei hier ein optionaler Integrationsschritt mit der optischen Inspektionssoftware vorhanden ist. 3 This illustrates the workflow of the software test framework 200 for optical inspection systems. First, the requirements 300 for the test series are defined. Then, depending on the test case, a decision is made as to whether Jenkins is used for automated testing or whether manual test execution is performed. Subsequently, test cases 302 are developed and implemented, with an optional integration step with the optical inspection software.

Wenn die Integration erfolgt, werden die Tests auf der Inspektionssoftware 308 ausgeführt, andernfalls manuell. Die Jenkins-Komponente 304 löst die Testausführung aus, und nach Abschluss bewertet das Framework, ob die Tests bestanden wurden. Bei Erfolg werden Testberichte generiert, andernfalls werden die Entwickler über etwaige Fehler benachrichtigt. Das Python Testing Framework 306 automatisiert die Testausführung und verwendet Python-Skripte, um Testfälle auszuführen und die Ergebnisse für die Analyse zu erfassen. In ähnlicher Weise stellt die optische Inspektionssoftware Testdaten bereit, führt Testszenarien aus und erfasst Inspektionsergebnisse für die Analyse.If integration is performed, the tests are run on the inspection software (308); otherwise, they are run manually. The Jenkins component (304) triggers test execution, and upon completion, the framework evaluates whether the tests passed. If successful, test reports are generated; otherwise, the developers are notified of any errors. The Python Testing Framework (306) automates test execution and uses Python scripts to execute test cases and collect the results for analysis. Similarly, the optical inspection software provides test data, executes test scenarios, and collects inspection results for analysis.

Das Diagramm bietet einen klaren Überblick über den Testprozess, einschließlich der Automatisierungs- und Integrationspunkte, um eine umfassende Qualitätskontrolle in optischen Inspektionssystemen zu ermöglichen.The diagram provides a clear overview of the testing process, including automation and integration points, to enable comprehensive quality control in optical inspection systems.

Claims (10)

Verfahren zum Testen von Softwareänderungen und/oder zum Erkennen von Softwarefehlern einer Bilderkennungssoftware, insbesondere einer Fehlererkennungssoftware, die auf einer industriellen Maschine (210) implementierbar ist, das Verfahren aufweisend die Schritte: - Bereitstellen (S1) eines Softwarecodes, der die Softwareänderungen aufweist, an ein Versions-Kontrollsystem (202); - Ermitteln (S2) der Softwareänderungen in dem bereitgestellten Softwarecode durch das Versions-Kontrollsystem (202); - Ausführen (S3) zumindest eines Teils des Softwarecodes auf einer virtuellen Maschine, durch die ein Testframework bereitgestellt wird, und durch die ein Verhalten der industriellen Maschine (210) in Reaktion auf den Softwarecode simulierbar ist; - Ausführen (S4) zumindest eines Teils des Softwarecodes auf einer Vision Engine (208) auf Basis von gelabelten Bildtestdaten, die gelabelte Bilder aufweisen zum Testen des Softwarecodes; und - Bereitstellen (S5) eines Testergebnisses auf Basis des auf der Vision Engine (208) ausgeführten zumindest einen Teils des Softwarecodes.A method for testing software changes and/or detecting software errors in image recognition software, in particular error detection software, which can be implemented on an industrial machine (210), comprising the steps of: - Providing (S1) software code containing the software changes to a version control system (202); - Determining (S2) the software changes in the provided software code by the version control system (202); - Executing (S3) at least part of the software code on a virtual machine that provides a test framework and that simulates the behavior of the industrial machine (210) in response to the software code; - Executing (S4) at least part of the software code on a vision engine (208) based on labeled image test data containing labeled images for testing the software code; and - Providing (S5) a test result based on at least part of the software code executed on the Vision Engine (208). Verfahren nach Anspruch 1, wobei, wenn ein positives Testergebnis bereitgestellt wird, das angibt, dass die Softwareänderungen keinen Softwarefehler aufweisen, ein Implementieren (S10) des Softwarecodes, der die Softwareänderungen aufweist, auf der industriellen Maschine (210) erfolgt, wobei die industrielle Maschine (210) vorzugsweise dazu ausgebildet ist, eine optische Inspektion eines Bauteils auf Basis des Softwarecodes, insbesondere der Fehlererkennungssoftware, durchzuführen.Procedure according to Claim 1 , wherein, if a positive test result is provided indicating that the software changes do not have a software defect, an implementation (S10) of the software code incorporating the software changes is carried out on the industrial machine (210), wherein the industrial machine (210) is preferably configured to perform an optical inspection of a component based on the software code, in particular the defect detection software. Verfahren nach Anspruch 1 oder 2, wobei vor dem Ausführen zumindest eines Teils des Softwarecodes auf der virtuellen Maschine ein Verarbeiten der ermittelten Softwareänderungen in dem bereitgestellten Softwarecode durch ein automatisiertes Framework (206) zum Triggern einer Testplattform mit einer Vielzahl von Testszenarien, wobei das automatisierte Framework (206), insbesondere Jenkins, vorzugsweise einen Master und mehrere Agenten aufweist.Procedure according to Claim 1 or 2 , wherein, prior to executing at least part of the software code on the virtual machine, the identified software changes in the provided software code are processed by an automated framework (206) to trigger a test platform with a multitude of test scenarios, wherein the automated framework (206), in particular Jenkins, preferably comprises a master and multiple agents. Verfahren nach einem der vorstehenden Ansprüche, wobei das Bereitstellen des Testergebnisses ein Bereitstellen (S6) eines Testergebnisses von der Vision Engine an das Testframework (204) und ein Aufbereiten (S7) des Testergebnisses durch das Testframework (204) aufweist.Method according to one of the preceding claims, wherein the provision of the test result comprises a provision (S6) of a test result from the vision engine to the test framework (204) and a processing (S7) of the test result by the test framework (204). Verfahren nach Anspruch 3 und 4, wobei das Bereitstellen des Testergebnisses ein Bereitstellen des aufbereiteten Testergebnisses an das automatisierte Framework (206) aufweist.Procedure according to Claim 3 and 4 , wherein providing the test result involves providing the prepared test result to the automated framework (206). Verfahren nach einem der vorstehenden Ansprüche, wobei ferner ein Überprüfen (S9) des Testergebnisses durch einen Experten erfolgt.Method according to one of the preceding claims, wherein furthermore a review (S9) of the test result is carried out by an expert. Steuergerät einer industriellen Maschine, auf dem ein Verfahren nach einem der vorstehenden Ansprüche implementiert ist.Control unit of an industrial machine on which a method according to one of the preceding claims is implemented. Computerprogramm mit Programmcode, um zumindest Teile eines Verfahrens nach einem der Ansprüche 1 bis 7 auszuführen, wenn das Computerprogramm auf einem Computer ausgeführt wird.Computer program with program code to perform at least parts of a procedure according to one of the Claims 1 until 7 to be executed when the computer program is run on a computer. Computerlesbarer Datenträger mit Programmcode eines Computerprogramms, um zumindest Teile eines Verfahrens nach einem der Ansprüche 1 bis 7 auszuführen, wenn das Computerprogramm auf einem Computer ausgeführt wird.Computer-readable data carrier containing the program code of a computer program, in order to execute at least parts of a procedure according to one of the Claims 1 until 7 to be executed when the computer program is run on a computer. Vorrichtung (100) zum Testen von Softwareänderungen und/oder zum Erkennen von Softwarefehlern einer Bilderkennungssoftware, insbesondere einer Fehlererkennungssoftware, die auf einer industriellen Maschine (210) implementierbar ist, wobei die Vorrichtung (100) eine Auswerte- und Recheneinrichtung aufweist, die dazu ausgebildet ist, die folgenden Schritte auszuführen: - Bereitstellen eines Softwarecodes, der die Softwareänderungen aufweist, an ein Versions-Kontrollsystem (202); - Ermitteln der Softwareänderungen in dem bereitgestellten Softwarecode durch das Versions-Kontrollsystem (202); - Ausführen zumindest eines Teils des Softwarecodes auf einer virtuellen Maschine, durch die ein Testframework (204) bereitgestellt wird, und durch die ein Verhalten der industriellen Maschine (210) in Reaktion auf den Softwarecode simulierbar ist; - Ausführen zumindest eines Teils des Softwarecodes auf einer Vision Engine (208); und - Bereitstellen eines Testergebnisses auf Basis des auf der Vision Engine (208) ausgeführten zumindest einen Teils des Softwarecodes.Device (100) for testing software changes and/or detecting software errors of image recognition software, in particular error detection software, which can be implemented on an industrial machine (210), wherein the device (100) has an evaluation and computing unit configured to perform the following steps: - providing software code containing the software changes to a version control system (202); - identifying the software changes in the provided software code by the version control system (202); - executing at least part of the software code on a virtual machine through which a test framework (204) is provided and through which a behavior of the industrial machine (210) is displayed. in response to the software code is simulated; - Executing at least part of the software code on a Vision Engine (208); and - Providing a test result based on at least part of the software code executed on the Vision Engine (208).
DE102024206830.6A 2024-07-19 2024-07-19 Method and apparatus for testing software changes and/or for detecting software errors in image recognition software Pending DE102024206830A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102024206830.6A DE102024206830A1 (en) 2024-07-19 2024-07-19 Method and apparatus for testing software changes and/or for detecting software errors in image recognition software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102024206830.6A DE102024206830A1 (en) 2024-07-19 2024-07-19 Method and apparatus for testing software changes and/or for detecting software errors in image recognition software

Publications (1)

Publication Number Publication Date
DE102024206830A1 true DE102024206830A1 (en) 2026-01-22

Family

ID=98276423

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102024206830.6A Pending DE102024206830A1 (en) 2024-07-19 2024-07-19 Method and apparatus for testing software changes and/or for detecting software errors in image recognition software

Country Status (1)

Country Link
DE (1) DE102024206830A1 (en)

Similar Documents

Publication Publication Date Title
DE102018128158A1 (en) DEVICE FOR INSPECTION OF THE APPEARANCE PICTURE
DE102012208537B4 (en) A method of identifying a root cause of an error in a serviced vehicle and performing corrective actions
DE102019123800B4 (en) Testing device and machine learning methods
DE102019002623A1 (en) Controller and control system
EP3767403A1 (en) Machine learning based shape and surface measurement for monitoring production
DE102014004556A1 (en) Method for checking the reliability of error detection of an image inspection method
EP1922613A2 (en) Method and device for automatically evaluating a software source code quality
WO2023041458A2 (en) Computer-implemented method, modules, and system for detecting anomalies in industrial manufacturing processes
DE102014102551A1 (en) Machine and method for evaluating failed software programs
DE112019003395T5 (en) Test procedure, test system and program
DE112021003677T5 (en) AUTOMATED ASSISTED CIRCUIT VALIDATION
DE102019123763A1 (en) VERIFICATION DEVICE
WO2023041459A1 (en) Computer-implemented method and system for detecting anomalies, and method for detecting anomalies during a final acoustic testing of a transmission
DE112008001411T5 (en) Method for checking the mounting state of components
DE112013006758T5 (en) Engineering Tool
DE102011086352A1 (en) Method and diagnostic system to support guided troubleshooting in technical systems
DE102024206830A1 (en) Method and apparatus for testing software changes and/or for detecting software errors in image recognition software
DE112016006839B4 (en) Length measurement control device, manufacturing system, length measurement control method and length measurement control program
DE112021003974T5 (en) test device
DE102016225566A1 (en) Method for determining state information relating to a productive robot system
EP3955185A1 (en) Risk assessment of a production sequence for flexible product production
DE102009007509A1 (en) Method and device for identifying a faulty algorithm
EP3779619B1 (en) Method and device for determining emerging risks of a technical system
EP4237834A1 (en) Automated evaluation of used screws
DE102021209387A1 (en) A proxy interpreter to improve automated legacy systems