This document discusses testing dynamic behavior in executable software models for cyber-physical systems. It presents challenges for model-in-the-loop (MiL) testing due to large input spaces, expensive simulations, and lack of simple oracles. The document proposes using search-based testing to generate critical test cases by formulating it as a multi-objective optimization problem. It demonstrates the approach on an advanced driver assistance system and discusses improving performance with surrogate modeling.
Anti-debugging techniques can be used to detect the presence of a debugger. There are three main categories of anti-debugging techniques: API based detection, exception based detection, and direct structure access based detection. API based techniques use functions like IsDebuggerPresent() and CheckRemoteDebuggerPresent() to check debugger flags. Exception based techniques check for differences in exception handling when exceptions like INT3 are triggered. Direct structure access techniques directly check debugger flags in the Process Environment Block structure and heap for differences when being debugged. The document provides examples of specific techniques in each category to detect the presence of a debugger.
This document provides an introduction to Linux, including its history and architecture. It describes Linux's origins from Unix in the 1960s and the development of the Linux kernel by Linus Torvalds in 1991. It outlines the key components of a Linux system, including the kernel, shell, file system, processes, networking, and desktop environments. It also discusses booting a Linux system and provides resources for learning more about Linux distributions and building your own operating system.
This document provides an introduction to unit testing JavaScript code with Jasmine and Karma. It discusses the basics of Jasmine including test suites, specs, expectations, and matchers. It then covers how to set up and run tests with Karma, including configuring Karma, running tests in browsers, handling failures, and testing AngularJS code. Specific topics covered include spies, $httpBackend for mocking HTTP requests, and testing controllers and dependencies injection.
This document discusses automation testing. It begins by defining automation testing and listing its benefits, which include saving time and money, improving accuracy, and increasing test coverage. It then covers levels of automation testing, frameworks, approaches like record and playback, modular scripting, and keyword-driven testing. The document also discusses the automation testing lifecycle, how to choose a testing tool, types of tools, when to automate and who should automate, supporting practices, and skills needed for automation testing.
This document summarizes Deep Q-Networks (DQN), a deep reinforcement learning algorithm that was able to achieve human-level performance on many Atari 2600 games. The key ideas of DQN include using a deep neural network to approximate the Q-function, experience replay to increase data efficiency, and a separate target network to stabilize learning. DQN has inspired many follow up algorithms, including double DQN, dueling DQN, prioritized experience replay, and noisy networks for better exploration. DQN was able to learn human-level policies directly from pixels and rewards for many Atari games using the same hyperparameters and network architecture.
This document provides an overview of DevOps delivery pipelines for beginners. It defines key concepts like source code repositories, build artifacts, environments, and the roles of continuous integration and continuous delivery. The core DevOps principle is an automated software delivery pipeline from code to production. This involves separate build and deploy stages. Common build steps include fetching code, testing, packaging artifacts, and publishing to repositories. Deployment typically includes retrieving artifacts, configuring environments, and validating deployments. Setting up roles, notifications, versioned scripts, and avoiding complex triggers are best practices for enjoying an automated DevOps pipeline.
Case Study - Implementing DevOps for a complex hardware/software-based networ...Sailaja Tennati
This talk explained experiences and challenges implementing DevOps for a complex hardware/software-based network product with a large multi-site development team. DevOps was implemented across multiple organizations and system layers overcoming DevOps implementation challenges in a step-wise fashion. DevOps can be applied to complex multi-layer hardware/software based network products but be prepared for implementation challenges in the team and especially test orchestration and automation.
Disco API - OpenJDK distributions as a serviceGerrit Grunwald
At foojay.io we've spent some time creating a little api that should help you to discover builds of OpenJDK from different distributions in a general way. In this session, I will give a short introduction to what the Disco API is and how it can help you find the JDK/JRE of your choice. At the moment Disco can help you getting builds from the following distributions: AdoptOpenJDK, Corretto, Dragonwell, GraalVM, Liberica, Liberica Native, Mandrel, Microsoft, OJDK Build, OpenLogic, Oracle, Oracle OpenJDK, RedHat, SAP Machine, Trava and Zulu. I will show examples on how to use the API and about plugins and tools that already use the API like browser extensions, ide plugins etc...
Anti-debugging techniques can be used to detect the presence of a debugger. There are three main categories of anti-debugging techniques: API based detection, exception based detection, and direct structure access based detection. API based techniques use functions like IsDebuggerPresent() and CheckRemoteDebuggerPresent() to check debugger flags. Exception based techniques check for differences in exception handling when exceptions like INT3 are triggered. Direct structure access techniques directly check debugger flags in the Process Environment Block structure and heap for differences when being debugged. The document provides examples of specific techniques in each category to detect the presence of a debugger.
This document provides an introduction to Linux, including its history and architecture. It describes Linux's origins from Unix in the 1960s and the development of the Linux kernel by Linus Torvalds in 1991. It outlines the key components of a Linux system, including the kernel, shell, file system, processes, networking, and desktop environments. It also discusses booting a Linux system and provides resources for learning more about Linux distributions and building your own operating system.
This document provides an introduction to unit testing JavaScript code with Jasmine and Karma. It discusses the basics of Jasmine including test suites, specs, expectations, and matchers. It then covers how to set up and run tests with Karma, including configuring Karma, running tests in browsers, handling failures, and testing AngularJS code. Specific topics covered include spies, $httpBackend for mocking HTTP requests, and testing controllers and dependencies injection.
This document discusses automation testing. It begins by defining automation testing and listing its benefits, which include saving time and money, improving accuracy, and increasing test coverage. It then covers levels of automation testing, frameworks, approaches like record and playback, modular scripting, and keyword-driven testing. The document also discusses the automation testing lifecycle, how to choose a testing tool, types of tools, when to automate and who should automate, supporting practices, and skills needed for automation testing.
This document summarizes Deep Q-Networks (DQN), a deep reinforcement learning algorithm that was able to achieve human-level performance on many Atari 2600 games. The key ideas of DQN include using a deep neural network to approximate the Q-function, experience replay to increase data efficiency, and a separate target network to stabilize learning. DQN has inspired many follow up algorithms, including double DQN, dueling DQN, prioritized experience replay, and noisy networks for better exploration. DQN was able to learn human-level policies directly from pixels and rewards for many Atari games using the same hyperparameters and network architecture.
This document provides an overview of DevOps delivery pipelines for beginners. It defines key concepts like source code repositories, build artifacts, environments, and the roles of continuous integration and continuous delivery. The core DevOps principle is an automated software delivery pipeline from code to production. This involves separate build and deploy stages. Common build steps include fetching code, testing, packaging artifacts, and publishing to repositories. Deployment typically includes retrieving artifacts, configuring environments, and validating deployments. Setting up roles, notifications, versioned scripts, and avoiding complex triggers are best practices for enjoying an automated DevOps pipeline.
Case Study - Implementing DevOps for a complex hardware/software-based networ...Sailaja Tennati
This talk explained experiences and challenges implementing DevOps for a complex hardware/software-based network product with a large multi-site development team. DevOps was implemented across multiple organizations and system layers overcoming DevOps implementation challenges in a step-wise fashion. DevOps can be applied to complex multi-layer hardware/software based network products but be prepared for implementation challenges in the team and especially test orchestration and automation.
Disco API - OpenJDK distributions as a serviceGerrit Grunwald
At foojay.io we've spent some time creating a little api that should help you to discover builds of OpenJDK from different distributions in a general way. In this session, I will give a short introduction to what the Disco API is and how it can help you find the JDK/JRE of your choice. At the moment Disco can help you getting builds from the following distributions: AdoptOpenJDK, Corretto, Dragonwell, GraalVM, Liberica, Liberica Native, Mandrel, Microsoft, OJDK Build, OpenLogic, Oracle, Oracle OpenJDK, RedHat, SAP Machine, Trava and Zulu. I will show examples on how to use the API and about plugins and tools that already use the API like browser extensions, ide plugins etc...
Eventually Consistent Data Structures (from strangeloop12)Sean Cribbs
There are many reasons to use an eventually-consistent database — like Riak, Voldemort, or Cassandra — including increased availability, lower latency, and fault-tolerance. However, doing so requires a mental shift in how to structure client applications, and certain types of traditional data-structures, like sets, registers, and counters can’t be resolved simply in the face of race-conditions. It is difficult to achieve “logical monotonicity” except for the most trivial data-types.
That is, until the advent of Convergent Replicated Data Types (CRDTs). CRDTs are data-structures that tolerate eventual consistency. They replace traditional data-structure implementations and all have the property that, given any number of conflicting versions of the same datum, there is a single state on which they converge (monotonicity). This talk will discuss some of the most useful CRDTs and how to apply them to solve real-world data problems.
This document provides an overview of using Jira for quality assurance and testing. It discusses leveraging Jira's built-in features for test management and how Xray enhances Jira's capabilities. Key phases of testing like specification, organization, planning, execution and reporting are covered. It also highlights test automation integration and compares Xray to other test management tools for Jira.
The document discusses the Software Testing Life Cycle (STLC) which consists of 6 phases to ensure software quality goals are met. The 6 phases are: 1) Requirement Analysis where QA interacts with stakeholders to understand requirements, 2) Test Planning where a test plan is created outlining testing activities, efforts, and costs, 3) Test Case Development where test cases and data are created and reviewed, 4) Test Environment Setup where testing conditions are decided, 5) Test Execution where testing is carried out based on test plans and cases, and 6) Test Closure Activities which are done after product delivery and include ensuring test completion and archiving work products.
This document discusses qTest, a test case management tool. It provides an overview of qTest's features, advantages, and workflow. Key points include:
- qTest helps improve testing productivity, collaboration, and integration between teams.
- Features include test planning, scalability, easy setup and use, and integration with other systems.
- Advantages include requirements and defect tracking, customization, and robust reporting capabilities.
- The workflow involves business analysts, project managers, testers, developers, and administrators collaborating on requirements, test design, execution, and reporting throughout the testing process.
This document discusses various techniques for bypassing input filtering and conducting SQL injection attacks, including:
1) Using functions, comments, and alternate syntax to inject queries containing blocked characters.
2) Exploiting second-order SQL injection where user input is initially handled safely but later processed unsafely.
3) Conducting "blind" SQL injection attacks without direct output by using conditional responses, time delays, and error messages.
4) Escalating database attacks beyond simple data retrieval by enabling extended functionality or compromising the operating system.
The document discusses introductory concepts and best practices for unit testing, including:
1. Why unit tests are important for reducing bugs, improving design, and making development faster.
2. The different types of tests like unit tests, integration tests, and functional tests.
3. What constitutes a unit test, including that it is small, repeatable, consistent, and fast.
4. An example of writing a "Hello World" unit test in C#.
This document summarizes a presentation on continuous quality testing with Postman. The presentation introduced continuous quality as a systematic approach to finding and fixing defects during development. It covered recommended testing practices like running tests locally and automating tests. The presentation demonstrated how to extend Postman with libraries, use monitors for regression testing, and automate testing in CI/CD pipelines with Newman. Additional resources on testing with Postman were provided.
The document discusses various software failures and errors through case studies such as Disney's Lion King software issue in 1994-1995, the Intel Pentium Floating-Point Division Bug in 1994, the NASA Mars Polar Lander crash in 1999, and the Patriot Missile Defense System failure in 1991. It then covers testing definitions, principles, and the role of testing in the software development lifecycle through topics like requirements testing, ambiguity reviews, and change control tools. The goal of testing is to increase the probability that software will behave correctly under all circumstances by meeting requirements through systematic testing activities.
Test Automation Architecture That Works by Bhupesh DahalQA or the Highway
The document discusses test automation architecture and provides recommendations for building an effective architecture. It recommends prioritizing unit testing and API/service layer testing over GUI testing to create a testing pyramid. Unit tests should be isolated and test small pieces of code, while API tests can test application logic through service calls. GUI tests should be limited in number and used to test broad end-to-end scenarios, not every small scenario. The goal is to have fewer, more stable automated tests rather than many fragile tests. Following best practices like testing different layers, prioritizing types of tests, and continuous refactoring can help create a maintainable and effective test automation architecture.
Cypress is a testing tool that allows front-end developers and test engineers to automate their tests following the flow in which a user might use the application.
Providing the interface of the browser along with dev console and network requests, it makes the life of a tester much simpler.
The lecture slides in DSAI 2018, National Cheng Kung University. It's about famous deep reinforcement learning algorithm: Actor-Critc. In this slides, we introduce advantage function, A3C/A2C.
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Edureka!
YouTube Link: https://youtu.be/3eOd9NTRgJo
** Test Automation Engineer Masters Program: https://www.edureka.co/masters-program/automation-testing-engineer-training **
This Edureka PPT on "Careers in Software Testing" will provide you with detailed and comprehensive knowledge of careers trends in software testing. It will guide you through the path one should take with the appropriate skills and the roles and responsibilities of Software Test Engineer. This PPT will cover the following topics:
What is Software Testing and why it is important?
Types and levels of Software Testing
Roadmap to Become a Software Testing Engineer
Job Roles
Roles and Responsibilities
Companies
Selenium playlist: https://goo.gl/NmuzXE
Selenium Blog playlist: http://bit.ly/2B7C3QR
Software Testing Blog playlist: http://bit.ly/2UXwdJm
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Selenium is a suite of tools used for browser automation testing. It was introduced in 2004 and is developed using JavaScript. Selenium has four main components: IDE, Remote Control, WebDriver and Grid. It is used to test web applications and can perform functional, regression and load testing. The Selenium IDE records user interactions in the Firefox browser and exports test cases to various languages. It has advantages like being open source and easy to use, but only supports the Firefox browser.
This document discusses neural networks and deep learning concepts such as artificial neurons, edges, weights, biases, activation functions, backpropagation, optimization algorithms like stochastic gradient descent, and neural network architectures like convolutional neural networks. It provides examples of neural network calculations and discusses tasks like image classification using datasets such as ImageNet and CIFAR-10.
Performance testing is a process of software testing that helps check the software's reliability, stability, response time, and speed.
To know more about performance testing, visit: https://www.kiwiqa.com/load-performance-testing.html
This is a presentation given at the Hangzhou Scrum Forum 2009, sponsored by Perficient, China. The topic is how to incorporate automated functional testing into an agile project, and also some best practices, tips, and warnings.
www.perficient.com
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFLRahul R Pandya
This Slideshare will give you the basics introduction of the ISTQB Foundation level testing certification.
ISTQB stands for the “International Software Testing Qualifications Board.”
ISTQB Certification is a universally acknowledged programming testing affirmation that is directed online by its Member Boards through a testing Exam Provider.
Katalon Studio - Successful Test Automation for both Testers and DevelopersKatalon Studio
There is a "great divide" between Developers' and Testers' disciplines, which leads to silo'ed test automation approaches with either inefficient or ineffective result. In this presentation, I introduce Katalon Studio, a free test automation IDE, as an attempt to help our developers and testers collaborate together towards a more reliable and robust test automation implementation.
Original source: https://www.slideshare.net/minhhai2209/successful-test-automation-for-both-testers-and-developers-75417401
Testing of Cyber-Physical Systems: Diversity-driven StrategiesLionel Briand
Lionel Briand discusses strategies for testing cyber-physical systems using diversity-driven approaches. He outlines challenges in verifying controllers and decision-making components in cyber-physical systems due to large input spaces and expensive model execution. Briand proposes maximizing diversity of test cases to improve fault detection. He describes using diversity of input signals, output signals, and failure patterns to generate test cases. Search algorithms are used to find test cases that maximize diversity or reveal specific failure patterns. The strategies are shown to significantly outperform coverage-based and random testing on Simulink models.
Automated and Scalable Solutions for Software Testing: The Essential Role of ...Lionel Briand
1) Modeling plays an essential role in enabling automated and scalable software testing solutions across many industrial domains like automotive, aerospace, and healthcare.
2) Models of requirements, system architecture, and environment behavior can be used to guide test generation, derive oracles, and enable early system testing through simulation.
3) Effective test automation solutions combine models with techniques like optimization, constraint solving, and natural language processing to address challenges of scalability, oracle generation, and exploring large test input spaces.
Eventually Consistent Data Structures (from strangeloop12)Sean Cribbs
There are many reasons to use an eventually-consistent database — like Riak, Voldemort, or Cassandra — including increased availability, lower latency, and fault-tolerance. However, doing so requires a mental shift in how to structure client applications, and certain types of traditional data-structures, like sets, registers, and counters can’t be resolved simply in the face of race-conditions. It is difficult to achieve “logical monotonicity” except for the most trivial data-types.
That is, until the advent of Convergent Replicated Data Types (CRDTs). CRDTs are data-structures that tolerate eventual consistency. They replace traditional data-structure implementations and all have the property that, given any number of conflicting versions of the same datum, there is a single state on which they converge (monotonicity). This talk will discuss some of the most useful CRDTs and how to apply them to solve real-world data problems.
This document provides an overview of using Jira for quality assurance and testing. It discusses leveraging Jira's built-in features for test management and how Xray enhances Jira's capabilities. Key phases of testing like specification, organization, planning, execution and reporting are covered. It also highlights test automation integration and compares Xray to other test management tools for Jira.
The document discusses the Software Testing Life Cycle (STLC) which consists of 6 phases to ensure software quality goals are met. The 6 phases are: 1) Requirement Analysis where QA interacts with stakeholders to understand requirements, 2) Test Planning where a test plan is created outlining testing activities, efforts, and costs, 3) Test Case Development where test cases and data are created and reviewed, 4) Test Environment Setup where testing conditions are decided, 5) Test Execution where testing is carried out based on test plans and cases, and 6) Test Closure Activities which are done after product delivery and include ensuring test completion and archiving work products.
This document discusses qTest, a test case management tool. It provides an overview of qTest's features, advantages, and workflow. Key points include:
- qTest helps improve testing productivity, collaboration, and integration between teams.
- Features include test planning, scalability, easy setup and use, and integration with other systems.
- Advantages include requirements and defect tracking, customization, and robust reporting capabilities.
- The workflow involves business analysts, project managers, testers, developers, and administrators collaborating on requirements, test design, execution, and reporting throughout the testing process.
This document discusses various techniques for bypassing input filtering and conducting SQL injection attacks, including:
1) Using functions, comments, and alternate syntax to inject queries containing blocked characters.
2) Exploiting second-order SQL injection where user input is initially handled safely but later processed unsafely.
3) Conducting "blind" SQL injection attacks without direct output by using conditional responses, time delays, and error messages.
4) Escalating database attacks beyond simple data retrieval by enabling extended functionality or compromising the operating system.
The document discusses introductory concepts and best practices for unit testing, including:
1. Why unit tests are important for reducing bugs, improving design, and making development faster.
2. The different types of tests like unit tests, integration tests, and functional tests.
3. What constitutes a unit test, including that it is small, repeatable, consistent, and fast.
4. An example of writing a "Hello World" unit test in C#.
This document summarizes a presentation on continuous quality testing with Postman. The presentation introduced continuous quality as a systematic approach to finding and fixing defects during development. It covered recommended testing practices like running tests locally and automating tests. The presentation demonstrated how to extend Postman with libraries, use monitors for regression testing, and automate testing in CI/CD pipelines with Newman. Additional resources on testing with Postman were provided.
The document discusses various software failures and errors through case studies such as Disney's Lion King software issue in 1994-1995, the Intel Pentium Floating-Point Division Bug in 1994, the NASA Mars Polar Lander crash in 1999, and the Patriot Missile Defense System failure in 1991. It then covers testing definitions, principles, and the role of testing in the software development lifecycle through topics like requirements testing, ambiguity reviews, and change control tools. The goal of testing is to increase the probability that software will behave correctly under all circumstances by meeting requirements through systematic testing activities.
Test Automation Architecture That Works by Bhupesh DahalQA or the Highway
The document discusses test automation architecture and provides recommendations for building an effective architecture. It recommends prioritizing unit testing and API/service layer testing over GUI testing to create a testing pyramid. Unit tests should be isolated and test small pieces of code, while API tests can test application logic through service calls. GUI tests should be limited in number and used to test broad end-to-end scenarios, not every small scenario. The goal is to have fewer, more stable automated tests rather than many fragile tests. Following best practices like testing different layers, prioritizing types of tests, and continuous refactoring can help create a maintainable and effective test automation architecture.
Cypress is a testing tool that allows front-end developers and test engineers to automate their tests following the flow in which a user might use the application.
Providing the interface of the browser along with dev console and network requests, it makes the life of a tester much simpler.
The lecture slides in DSAI 2018, National Cheng Kung University. It's about famous deep reinforcement learning algorithm: Actor-Critc. In this slides, we introduce advantage function, A3C/A2C.
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Edureka!
YouTube Link: https://youtu.be/3eOd9NTRgJo
** Test Automation Engineer Masters Program: https://www.edureka.co/masters-program/automation-testing-engineer-training **
This Edureka PPT on "Careers in Software Testing" will provide you with detailed and comprehensive knowledge of careers trends in software testing. It will guide you through the path one should take with the appropriate skills and the roles and responsibilities of Software Test Engineer. This PPT will cover the following topics:
What is Software Testing and why it is important?
Types and levels of Software Testing
Roadmap to Become a Software Testing Engineer
Job Roles
Roles and Responsibilities
Companies
Selenium playlist: https://goo.gl/NmuzXE
Selenium Blog playlist: http://bit.ly/2B7C3QR
Software Testing Blog playlist: http://bit.ly/2UXwdJm
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Selenium is a suite of tools used for browser automation testing. It was introduced in 2004 and is developed using JavaScript. Selenium has four main components: IDE, Remote Control, WebDriver and Grid. It is used to test web applications and can perform functional, regression and load testing. The Selenium IDE records user interactions in the Firefox browser and exports test cases to various languages. It has advantages like being open source and easy to use, but only supports the Firefox browser.
This document discusses neural networks and deep learning concepts such as artificial neurons, edges, weights, biases, activation functions, backpropagation, optimization algorithms like stochastic gradient descent, and neural network architectures like convolutional neural networks. It provides examples of neural network calculations and discusses tasks like image classification using datasets such as ImageNet and CIFAR-10.
Performance testing is a process of software testing that helps check the software's reliability, stability, response time, and speed.
To know more about performance testing, visit: https://www.kiwiqa.com/load-performance-testing.html
This is a presentation given at the Hangzhou Scrum Forum 2009, sponsored by Perficient, China. The topic is how to incorporate automated functional testing into an agile project, and also some best practices, tips, and warnings.
www.perficient.com
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFLRahul R Pandya
This Slideshare will give you the basics introduction of the ISTQB Foundation level testing certification.
ISTQB stands for the “International Software Testing Qualifications Board.”
ISTQB Certification is a universally acknowledged programming testing affirmation that is directed online by its Member Boards through a testing Exam Provider.
Katalon Studio - Successful Test Automation for both Testers and DevelopersKatalon Studio
There is a "great divide" between Developers' and Testers' disciplines, which leads to silo'ed test automation approaches with either inefficient or ineffective result. In this presentation, I introduce Katalon Studio, a free test automation IDE, as an attempt to help our developers and testers collaborate together towards a more reliable and robust test automation implementation.
Original source: https://www.slideshare.net/minhhai2209/successful-test-automation-for-both-testers-and-developers-75417401
Testing of Cyber-Physical Systems: Diversity-driven StrategiesLionel Briand
Lionel Briand discusses strategies for testing cyber-physical systems using diversity-driven approaches. He outlines challenges in verifying controllers and decision-making components in cyber-physical systems due to large input spaces and expensive model execution. Briand proposes maximizing diversity of test cases to improve fault detection. He describes using diversity of input signals, output signals, and failure patterns to generate test cases. Search algorithms are used to find test cases that maximize diversity or reveal specific failure patterns. The strategies are shown to significantly outperform coverage-based and random testing on Simulink models.
Automated and Scalable Solutions for Software Testing: The Essential Role of ...Lionel Briand
1) Modeling plays an essential role in enabling automated and scalable software testing solutions across many industrial domains like automotive, aerospace, and healthcare.
2) Models of requirements, system architecture, and environment behavior can be used to guide test generation, derive oracles, and enable early system testing through simulation.
3) Effective test automation solutions combine models with techniques like optimization, constraint solving, and natural language processing to address challenges of scalability, oracle generation, and exploring large test input spaces.
Automated Testing of Autonomous Driving Assistance SystemsLionel Briand
This document discusses automated testing of autonomous driving assistance systems. It begins by introducing autonomous systems and their testing challenges due to large and complex input spaces and lack of explicit specifications. The document then describes an approach that combines evolutionary algorithms and decision tree classification models to guide testing towards critical scenarios. Evolutionary algorithms are used to search the input space while decision trees learn to predict scenario criticality and guide the search towards critical regions. The technique iteratively refines the decision tree model and focuses search on critical regions identified in the trees. The goal is to efficiently generate failure-revealing test cases and characterize input conditions that lead to critical situations.
Automated Testing of Autonomous Driving Assistance SystemsLionel Briand
This document discusses automated testing techniques for autonomous driving assistance systems (ADAS). It proposes using decision tree classification models and a multi-objective genetic search algorithm (NSGAII) to efficiently explore the complex scenario space of ADAS. The objectives are to identify critical, failure-revealing test scenarios by characterizing input conditions that lead to safety violations, such as the car hitting a pedestrian. Simulator-based testing of the automated emergency braking system is computationally expensive, so decision trees provide better guidance to the search by partitioning the input space into homogeneous regions.
MiL Testing of Highly Configurable Continuous ControllersLionel Briand
This document describes research on model-in-the-loop (MiL) testing of highly configurable continuous controllers. The researchers developed an approach using dimensionality reduction, surrogate modeling, and search-based techniques to efficiently test controllers across large configuration spaces. They applied their approach to an industrial conveyor belt controller case study. Evaluation results showed that their technique could find stability, smoothness, and responsiveness violations that previous approaches had missed. It provided a scalable way to thoroughly test continuous controller models over varied parameter configurations.
The document summarizes research conducted by the Software Verification and Validation Group at the University of Luxembourg on testing cyber physical systems via evolutionary algorithms and machine learning. The group develops techniques to generate test inputs for autonomous systems like automated driving using genetic algorithms and optimizes the search process using machine learning. This guided search aims to find test cases that could reveal violations of critical safety requirements with fewer simulation runs. The approach is demonstrated on an industrial project that tests requirements for the automated emergency braking features of autonomous vehicles.
Automated Testing of Hybrid Simulink/Stateflow ControllersLionel Briand
This document discusses automated testing of Simulink/Stateflow controllers for automotive software. It presents an approach using black box search-based testing to generate test cases for closed-loop and open-loop controllers. The approach uses fitness functions to evaluate test results and provide failure explanation and detection. Case studies on industrial models demonstrate generating test inputs that reveal failures and visualizing the input space to explain under what conditions failures are likely to occur. The approach aims to help engineers test complex models without manual oracles or dealing with tool incompatibilities.
HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...Lionel Briand
This document describes HITECS, a UML profile and analysis framework for specifying and analyzing hardware-in-the-loop (HiL) test cases for cyber-physical systems. HITECS addresses challenges with HiL testing such as risks of hardware damage, time budget constraints, and environmental uncertainties. It provides a modeling language to specify test platforms, behaviors, analyses, and schedules. HITECS also supports model checking of test case assertions and simulation of test execution times to help evaluate test cases prior to execution. An empirical evaluation on a satellite testing case study found that HITECS helps engineers define effective assertions, verify test cases efficiently, and accurately estimate execution times.
Automated Discovery of Performance Regressions in Enterprise ApplicationsSAIL_QU
This document summarizes the author's research on automated discovery of performance regressions in enterprise applications. It discusses challenges with current performance verification practices, and proposes approaches at the design and implementation levels. At the design level, it suggests using layered simulation models to evaluate design changes early. At the implementation level, it presents techniques to analyze large performance datasets, detect regressions while limiting subjectivity, and deal with tests in heterogeneous environments. Case studies show the approaches achieve 75-100% precision and 52-80% recall. The research aims to help analysts efficiently identify performance regressions.
Effective Test Suites for ! Mixed Discrete-Continuous Stateflow ControllersLionel Briand
The document describes algorithms for generating effective test suites for mixed discrete-continuous controllers modeled in Stateflow. It introduces the challenges of testing cyber-physical systems with both discrete and continuous behaviors. It then presents six test generation algorithms, including ones based on input diversity, state/transition coverage, and output diversity/stability/continuity. An evaluation of these algorithms on three industrial case studies examines their fault detection abilities, how they compare to each other, and how test suite size impacts results. The best performing algorithms focused on maximizing differences between output signals.
Enabling Model Testing of Cyber Physical SystemsLionel Briand
This document proposes a methodology for model testing of cyber-physical systems (CPSs) using SysML and Simulink models. It presents a case study of modeling an attitude determination and control system. Key points:
- A modeling methodology is introduced to specify testable CPS models in SysML and integrate them with Simulink models. This allows for co-simulation of software and functional models.
- An execution framework is developed to efficiently co-simulate SysML and Simulink models without user intervention, while generating traces for test evaluation.
- An evaluation on the case study shows the approach enables overnight model testing of realistic CPS models. However, integrating Simulink models and specifying software
Choosing the right process improvement tool for your project.
Learn how an experienced engineer decides when simulation is the right tool for his projects,
and when it isn't.
With the evolution of process improvement software, it can be difficult to decide the right tool for the job. Using something too powerful and complex can be a lengthy and unnecessary process, but underestimating the depth of analysis required and choosing something too simplistic early in a project can result in repeated work later.
Parallel processing involves executing multiple tasks simultaneously using multiple cores or processors. It can provide performance benefits over serial processing by reducing execution time. When developing parallel applications, developers must identify independent tasks that can be executed concurrently and avoid issues like race conditions and deadlocks. Effective parallelization requires analyzing serial code to find optimization opportunities, designing and implementing concurrent tasks, and testing and tuning to maximize performance gains.
The document discusses system and solution testing. It provides an example of how unit tests that pass can fail during system testing. It defines system testing as testing at a product level to find bugs not discoverable through feature testing. Solution testing is defined as customer-oriented end-to-end application testing. The document outlines some key differences between feature, system, and solution testing and discusses common bugs found through system testing.
Intro to LV in 3 Hours for Control and Sim 8_5.pptxDeepakJangid87
This document provides an introduction to using LabVIEW for virtual instrumentation, control design, and simulation. It discusses using LabVIEW for applications in signal processing, embedded systems, control systems, and measurements. The topics covered include reviewing the LabVIEW environment, the design process of modeling, control design, simulation, optimization, and deployment. Simulation allows testing controllers and incorporating real-world nonlinearities. Constructing models graphically and textually is demonstrated. PID control and designing a PID controller with the Control Design Toolkit is also summarized. Exercises guide creating and displaying a transfer function model and constructing a PID controller.
Achieving Scalability in Software Testing with Machine Learning and Metaheuri...Lionel Briand
This document discusses challenges in testing advanced driver assistance systems (ADAS) and approaches to address scalability. It describes using physics-based simulation and search-based testing to generate test cases for an automated emergency braking system. The testing faces challenges due to the large, complex input space and computational expense of simulations. Decision trees are proposed to better guide the search by partitioning the input space into homogeneous regions based on criticality.
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Lionel Briand
The document discusses experiences and lessons learned from making model-driven verification practical and scalable. It describes several projects collaborating with industry partners to develop model-based solutions for verification. Key challenges addressed include achieving applicability for engineers, scalability to large systems, and developing solutions informed by real-world problems. Lessons learned emphasize the importance of collaborative applied research, defining problems in context, and validating solutions realistically.
Dealing with the Three Horrible Problems in VerificationDVClub
1) There are three major problems in verification: specifying the properties to check, specifying the environment, and computational complexity of achieving high coverage.
2) The author proposes using "perspectives" to address these problems by focusing verification on specific aspects or classes of properties of a design using minimal formalization, rather than trying to tackle all issues at once.
3) This approach reduces complexity by omitting irrelevant details, targeting properties designers care about, and allowing verification to keep pace with frequent design changes.
This document provides information about the ME 190M Introduction to Model Predictive Control course taught in fall 2009 at UC Berkeley. The class will be taught on Fridays from 11am to 12pm in room 1165 of Etcheverry Hall. Homework assignments will be given weekly and selected assignments will be graded. Students will need to use MATLAB for assignments, which they can access in room 2109 of Etcheverry Hall. The course will cover modeling, optimization fundamentals, constrained optimal control, predictive control fundamentals and properties, and examples implemented in MATLAB. The goals are for students to design, implement, and tune simple MPC controllers in MATLAB for linear and nonlinear systems.
Scalable Software Testing and Verification of Non-Functional Properties throu...Lionel Briand
This document discusses scalable software testing and verification of non-functional properties through heuristic search and optimization. It describes several projects with industry partners that use metaheuristic search techniques like hill climbing and genetic algorithms to generate test cases for non-functional properties of complex, configurable software systems. The techniques address issues of scalability and practicality for engineers by using dimensionality reduction, surrogate modeling, and dynamically adjusting the search strategy in different regions of the input space. The results provided worst-case scenarios more effectively than random testing alone.
Similar to Testing Dynamic Behavior in Executable Software Models - Making Cyber-physical Systems Testable (20)
Precise and Complete Requirements? An Elusive GoalLionel Briand
The document discusses the challenges of achieving precise and complete requirements upfront in software development projects. It notes that while academics assume detailed requirements are needed, practitioners find this difficult to achieve in reality due to limited resources, uncertainty, and changing needs. The document provides perspectives from practice that emphasize starting with prototypes and visions rather than detailed specifications. It also summarizes research finding diverse requirements practices across different domains and organizations. The document concludes that while precise requirements may be desirable, they are often elusive goals, and the focus should be on achieving compliance and delivering working software.
Large Language Models for Test Case Evolution and RepairLionel Briand
Large language models show promise for test case repair tasks. LLMs can be applied to tasks like test case generation, classification of flaky tests, and test case evolution and repair. The paper presents TaRGet, a framework that uses LLMs for automated test case repair. TaRGet takes as input a broken test case and code changes to the system under test, and outputs a repaired test case. Evaluation shows TaRGet achieves over 80% plausible repair accuracy. The paper analyzes repair characteristics, evaluates different LLM and input/output formats, and examines the impact of fine-tuning data size on performance.
Metamorphic Testing for Web System SecurityLionel Briand
This document summarizes a presentation on metamorphic testing for web system security given by Nazanin Bayati on September 13, 2023. Metamorphic testing uses relations between the outputs of multiple test executions to test systems when specifying expected outputs is difficult. It was applied to web systems by generating follow-up inputs based on transformations of valid interactions and checking that output relations held. The approach detected over 60% of vulnerabilities in tested systems and addressed more vulnerability types than static and dynamic analysis tools. It provides an effective and automated way to test for security issues in web systems.
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...Lionel Briand
This document proposes a method called SEDE (Simulator-based Explanations for DNN Errors) to automatically generate explanations for errors in DNN-based safety-critical systems by constraining simulator parameters. SEDE first identifies clusters of error-inducing images, then uses an evolutionary algorithm to generate simulator images within each cluster, including failing, passing, and representative images. SEDE extracts rules characterizing the unsafe parameter space and uses the generated images to retrain DNNs, improving accuracy compared to alternative methods. The paper evaluates SEDE on head pose and face landmark detection DNNs in terms of generating diverse cluster images, delimiting unsafe spaces, and enhancing DNN performance.
This document summarizes a research paper on using grey-box fuzzing (MOTIF) for mutation testing of C/C++ code in cyber-physical systems (CPS). It introduces mutation testing and grey-box fuzzing, and proposes MOTIF which generates a fuzzing driver to test functions with live mutants. An empirical evaluation compares MOTIF to symbolic execution-based mutation testing on three subject programs. MOTIF killed more mutants within 10,000 seconds and was able to test programs that symbolic execution could not handle due to limitations like floating-point values. Seed inputs alone killed few mutants, showing the importance of fuzzing. MOTIF is an effective approach for mutation testing of CPS software.
Data-driven Mutation Analysis for Cyber-Physical SystemsLionel Briand
Data-driven mutation analysis is proposed to assess if test suites for cyber-physical systems properly exercise component interoperability. Fault models are developed for different data types and dependencies, and are used to automatically generate mutants by injecting faults. Empirical results on industrial systems demonstrate the feasibility and effectiveness of the approach in identifying test suite shortcomings and poor oracles.
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled SystemsLionel Briand
This document proposes MORLOT (Many-Objective Reinforcement Learning for Online Testing) to address challenges in online testing of DNN-enabled systems. MORLOT leverages many-objective search and reinforcement learning to choose test actions. It was evaluated on the Transfuser autonomous driving system in the CARLA simulator using 6 safety requirements. MORLOT was significantly more effective and efficient at finding safety violations than random search or other many-objective approaches, achieving a higher average test effectiveness for any given test budget.
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...Lionel Briand
1. The document presents ATM, a new approach for black-box test case minimization that transforms test code into abstract syntax trees and uses tree-based similarity measures and genetic algorithms to minimize test suites.
2. ATM was evaluated on the DEFECTS4J dataset and achieved a fault detection rate of 0.82 on average, significantly outperforming existing techniques, while requiring only practical execution times.
3. The best configuration of ATM used a genetic algorithm with a combined similarity measure, achieving a fault detection rate of 0.80 within 1.2 hours on average.
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...Lionel Briand
The document is a journal paper that proposes a method for black-box safety analysis and retraining of deep neural networks (DNNs) based on feature extraction and clustering of failure-inducing images. The method uses a pre-trained VGG16 model to extract features from failure images, clusters the features using DBSCAN, selects clusters that likely caused failures, and retrains the DNN to improve safety based on images in problematic clusters. An empirical evaluation on various DNNs for tasks like gaze detection showed the method effectively determined failure causes through clustering and improved models with fewer images than other approaches.
PRINS: Scalable Model Inference for Component-based System LogsLionel Briand
PRINS is a technique for scalable model inference of component-based system logs. It divides the problem into inferring individual component models and then stitching them together. The paper evaluates PRINS on several systems and compares its execution time and accuracy to MINT, a state-of-the-art model inference tool. Results show that PRINS is significantly faster than MINT, especially on larger logs, with comparable accuracy. However, stitching component models can result in larger overall system models. The paper contributes an empirical evaluation of the PRINS technique and makes its implementation publicly available.
Revisiting the Notion of Diversity in Software TestingLionel Briand
The document discusses the concept of diversity in software testing. It provides examples of how diversity has been applied in various testing applications, including test case prioritization and minimization, mutation analysis, and explaining errors in deep neural networks. The key aspects of diversity discussed are the representation of test cases, measures of distance or similarity between cases, and techniques for maximizing diversity. The document emphasizes that the best approach depends on factors like information access, execution costs, and the specific application context.
Applications of Search-based Software Testing to Trustworthy Artificial Intel...Lionel Briand
This document discusses search-based approaches for testing artificial intelligence systems. It covers testing at different levels, from model-level testing of individual machine learning components to system-level testing of AI-enabled systems. At the model level, search-based techniques are used to generate test inputs that target weaknesses in deep learning models. At the system level, simulations and reinforcement learning are used to test AI components integrated into complex systems. The document outlines many open challenges in AI testing and argues that search-based approaches are well-suited to address challenges due to the complex, non-linear behaviors of AI systems.
Autonomous Systems: How to Address the Dilemma between Autonomy and SafetyLionel Briand
Autonomous systems present safety challenges due to their complexity and use of machine learning. Two key approaches are needed to address these challenges: (1) design-time assurance cases to validate safety requirements and (2) run-time monitoring architectures to detect unsafe behavior. Automated testing techniques leveraging metaheuristics and machine learning can help provide evidence for assurance cases and learn conditions to guide run-time monitoring. However, more industrial experience is still needed to properly validate these approaches at scale for autonomous systems.
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...Lionel Briand
This document discusses the split identities of software engineering researchers between being mathematicians, social scientists, or engineers. It notes there are three main communities - formal methods and guarantees, human and social studies, and engineering automated solutions - that have different backgrounds, languages, and research methods. While diversity is good, the communities need to be better connected to work together to solve problems. The document calls for more demand-driven, collaborative research with industry to have a greater impact and produce practical solutions.
Reinforcement Learning for Test Case PrioritizationLionel Briand
1) The document discusses using reinforcement learning for test case prioritization in continuous integration environments. It compares different ranking models (listwise, pairwise, pointwise) and reinforcement learning algorithms.
2) Pairwise and pointwise ranking models generally perform better than listwise, and pairwise training times are better than pointwise. The best configuration is pairwise ranking with the ACER algorithm.
3) When compared to traditional machine learning ranking models, the best reinforcement learning configuration provides significantly better ranking accuracy than the state-of-the-art MART model.
4) However, relying solely on test execution history may not provide sufficient features for an accurate prioritization policy regardless of the approach. Enriched datasets with more features
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...Lionel Briand
The document summarizes a paper that presents Mutation Analysis for Space Software (MASS), a scalable and automated pipeline for mutation testing of cyber-physical systems software in the space domain. The pipeline includes steps to create mutants, sample and prioritize mutants, discard equivalent mutants, and compute mutation scores. An empirical evaluation on space software case studies found that MASS provides accurate mutation scores with fewer sampled mutants compared to other sampling approaches. It also enables significant time savings over non-optimized mutation analysis through test case prioritization and reduction techniques. MASS helps uncover weaknesses in test suites and ensures thorough software testing for safety-critical space systems.
On Systematically Building a Controlled Natural Language for Functional Requi...Lionel Briand
The document presents a qualitative methodology for systematically building a controlled natural language (CNL) for functional requirements. It describes extracting requirements from software requirements specifications, identifying codes within the requirements, labeling and grouping the requirements, creating a grammar by identifying the content in requirements and deriving grammar rules. An evaluation of the developed CNL called Rimay showed it could express 88% of requirements from unseen documents and reached stability after analyzing three documents.
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...Lionel Briand
This document proposes SAMOTA, a surrogate-assisted many-objective optimization approach for online testing of DNN-enabled systems. SAMOTA uses global and local surrogate models to replace expensive function evaluations. It clusters local data points and builds individual surrogate models for each cluster, rather than one model for all data. An evaluation on a DNN-enabled autonomous driving system shows SAMOTA achieves better test effectiveness and efficiency than alternative approaches, and clustering local data points leads to more effective local searches than using a single local model. SAMOTA is an effective method for online testing of complex DNN systems.
Guidelines for Assessing the Accuracy of Log Message Template Identification ...Lionel Briand
The document provides guidelines for assessing the accuracy of log message template identification techniques. It discusses issues with existing accuracy metrics and proposes new metrics like Template Accuracy that are not sensitive to message frequency. It also recommends performing oracle template correction as templates extracted without source code are often incorrect. Additionally, it suggests analyzing incorrectly identified templates to understand weaknesses and provide insights to improve techniques. The guidelines aim to help properly evaluate template identification techniques for different use cases.
A Theoretical Framework for Understanding the Relationship between Log Parsin...Lionel Briand
This document proposes a theoretical framework to understand the relationship between log parsing and anomaly detection. It argues that log parsing should be viewed as an information abstraction process that converts unstructured logs into structured logs. The goal of log parsing should be to extract the minimum amount of information necessary to distinguish normal behavior from anomalies. This "minimality" and "distinguishability" can be used to define ideal log parsing results. The framework aims to provide guidance on how log parsing quality impacts anomaly detection accuracy and determine the root causes of any inaccuracies.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Odoo ERP software
Odoo ERP software, a leading open-source software for Enterprise Resource Planning (ERP) and business management, has recently launched its latest version, Odoo 17 Community Edition. This update introduces a range of new features and enhancements designed to streamline business operations and support growth.
The Odoo Community serves as a cost-free edition within the Odoo suite of ERP systems. Tailored to accommodate the standard needs of business operations, it provides a robust platform suitable for organisations of different sizes and business sectors. Within the Odoo Community Edition, users can access a variety of essential features and services essential for managing day-to-day tasks efficiently.
This blog presents a detailed overview of the features available within the Odoo 17 Community edition, and the differences between Odoo 17 community and enterprise editions, aiming to equip you with the necessary information to make an informed decision about its suitability for your business.
What is Augmented Reality Image Trackingpavan998932
Augmented Reality (AR) Image Tracking is a technology that enables AR applications to recognize and track images in the real world, overlaying digital content onto them. This enhances the user's interaction with their environment by providing additional information and interactive elements directly tied to physical images.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
3. Cyber-Physical Systems
• Increasingly complex and critical
systems
• Complex environment
• Complex requirements, e.g.,
temporal, timing, resource usage
• Dynamic behavior
• Uncertainty, e.g., about the
environment
• Testing is expensive and difficult,
e.g., HW in the loop
3
Cyber Space
Physical
Sensing
Actuation
Information
Networks
Object
Domain
Real Space
4. Dynamic Behavior
• Common when dealing with physical
entities
• Inputs and outputs are variables
evolving over time (signals)
• Properties to be verified consider
change over time, for individual or
sets of outputs
4
Time-Continuous
Magnitude-Continuous
time
value
8. MiL Testing Challenges
• Space of test input signals is extremely large.
• Model execution, especially when involving
physical modeling, is extremely expensive.
• Oracles are not simple Boolean properties – they
involve analyzing changes in value over time (e.g.,
signal patterns) and assess levels of risk.
8
9. MiL Testing Challenges (2)
• Simulable model of the (physical) environment is
required for test automation, but not always
available.
• Effectiveness of test coverage strategies is
questionable, e.g., model coverage.
• No equivalence classes on input signal domains,
no combinatorial approaches.
9
10. We need novel, automated,
and cost-effective MiL
testing strategies for CPS
10
13. Pedestrian Detection System (PeVi)
13
• The PeVi system is a camera-based
assistance system providing
improved vision
14. Challenges
• Simulation/testing is performed
using physics-based simulation
environments
• Challenge 1: A large number of
simulation scenarios
• more than 2000 configuration
variables
• Challenge 2: Simulations are
computationally expensive
14
weather road sensors human vehicles
Simulation Scenario
16. Domain Model
16
- intensity: Real
SceneLight
Dynamic
Object
1
- weatherType:
Condition
Weather
- fog
- rain
- snow
- normal
«enumeration»
Condition
Output
Trajectory
- field of view:
Real
Camera
Sensor
RoadSide
Object
- roadType: RT
Road
1 - curved
- straight
- ramped
«enumeration»
RT
- vc: Real
Vehicle
- x0: Real
- y0: Real
- θ: Real
- vp: Real
Pedestrian
- x: Real
- y: Real
Position
1
*
1
*
1
1
- state: Boolean
Collision
Parked
Cars
Trees
- simulationTime:
Real
- timeStep: Real
Test Scenario
PeVi
- state: Boolean
Detection
1
1
11
1
1
1
1
«positioned»
«uses»
1 1
17. Requirements Model
17
<<trace>>
<<trace>>
Speed
Profile
Path
1 1
Slot Path
Segment
1..**
1
Trajectory
Human
1*
trajectory
Warning
Sensors
posx1, posx2
posy1, posy2
AWACar/Motor/
Truck/Bus
sensor
has
has
awa
1
1
1
*
human
appears
posx1
posx2
posy1
posy2
The PeVi system shall detect any person located in the
Acute Warning Area of a vehicle
18. Test Generation Overview
18
Simulator + PeVi
Environment Settings
(Roads, weather,
vehicle type, etc.)
Fixed during Search
Manipulated by Search
Human Simulator
(initial position,
speed, orientation)
Car Simulator
(speed)
PeVi
Meta-heuristic Search
(multi-objective)
Generate
scenarios
Detection
or not?
Collision
or not?
19. Multi-Objective Search
• Search algorithm needs objective or
fitness functions for guidance
• In our case several independent
functions can be interesting
(heuristics):
• Distance between car and pedestrian
• Distance between pedestrian and AWA
• Time to collision
19
posx1
posx2
posy1
posy2
20. Pareto Front
20
Individual A Pareto
dominates individual B if
A is at least as good as B
in every objective
and better than B in at
least one objective.
Dominated by x
O1
O2
Pareto front
x
• A multi-objective optimization algorithm must achieve:
• Guide the search towards the global Pareto-Optimal front.
• Maintain solution diversity in the Pareto-Optimal front.
21. MO Search with NSGA-II
21
Non-Dominated
Sorting
Selection based on rank
and crowding distance
Size: 2*N
Size: 2*N
Size: N
• Based on Genetic Algorithm
• N: Archive and population size
• Non-Dominated sorting: Solutions are ranked according to how
far they are from the Pareto front, fitness is based on rank.
• Crowding Distance: Individuals in the archive are being spread
more evenly across the front (forcing diversity)
• Runs simulations for close to N new solutions
25. Improving Time Performance
• Individual simulations take on average more than 1min
• It takes 10 hours to run our search-based test generation !
(≈ 500 simulations)
è We use surrogate modeling to improve the search
• Goal: Predict fitness based on dynamic variables
• Neural networks
25
26. Multi-Objective Search with
Surrogate Models
26
Non-Dominated
Sorting
Selection based on rank
and crowding distance
Size: 2*N
Size: 2*N
Size: N
Original Algorithm
- Runs simulations for all!
new solutions
New Algorithm
- Uses prediction values &!
prediction errors to run !
simulations only!
for the solutions that !
might be selected
27. Results – Surrogate Modeling
27
0.00
0.25
0.50
0.75
1.00
Time (min)
HV
50 100 15010
(a) Comparing HV values obtained
by NSGAII and NSGAII-SM
NSGAII (mean)
NSGAII-SM (mean)
28. Results – Worst Runs
28
Time (min)
0.00
0.25
0.50
0.75
1.00
Time (min)
HV
50 100 15010
(c) HV values for worst runs of NSGAII,
NSGAII-SM and RS
RS
NSGAII-SM
NSGAII
29. Results – Random Search
29
0.00
0.25
0.50
0.75
1.00
Time (min)
50 100 15010
(b) Comparing HV values obtained
by RS and NSGAII-SM
HV
RS (mean)
NSGAII-SM (mean)
(c) HV values for worst runs of NSGAII,
30. Conclusion
• A general testing approach for ADAS, and many CP systems
• Formulated the generation of critical test cases as a multi-objective
search problem using NSGAII algorithm
• Improved the search performance with surrogate models based on
neural networks
• Generated some critical scenarios: no detection in the AWA,
collision and no detection
• No clear cut oracle – failure to detect may be deemed acceptable
risk
30
32. • Supercharger bypass flap controller
ü Flap position is bounded within
[0..1]
ü Implemented in MATLAB/Simulink
ü 34 (sub-)blocks decomposed into 6
abstraction levels
ü The simulation time T=2 seconds
Supercharger
Bypass Flap
Supercharger
Bypass Flap
Flap position = 0 (open)
Flap position = 1 (closed)
Simple Example
32
33. Initial
Desired Value
Final
Desired Value
time time
Desired Value
Actual Value
T/2 T T/2 T
Test Input
Test Output
Plant
Model
Controller
(SUT)
Desired value Error
Actual value
System output+
-
MiL Testing of Controllers
33
34. Configurable Controllers at MIL
Plant Model
+
+
+
⌃
+
-
e(t)
actual(t)
desired(t)
⌃
KP e(t)
KD
de(t)
dt
KI
R
e(t) dt
P
I
D
output(t)
Time-dependent variables
Configuration Parameters
34
35. Requirements and Test Objectives
InitialDesired
(ID) Desired ValueI (input)
Actual Value (output)
FinalDesired
(FD)
time
T/2 T
Smoothness
Responsiveness
Stability
35
36. A Search-Based Test Approach
Initial Desired (ID)
FinalDesired(FD)
Worst Case(s)?
• Continuous behavior
• Controller’s behavior can be
complex
• Meta-heuristic search in (large)
input space: Finding worst case
inputs
• Possible because of automated
oracle (feedback loop)
• Different worst cases for
different requirements
• Worst cases may or may not
violate requirements
36
37. Initial Solution
HeatMap
Diagram
1. Exploration
List of
Critical
RegionsDomain
Expert
Worst-Case
Scenarios
+
Controller-
plant
model
Objective
Functions
based on
Requirements
2. Single-State
Search
time
Desired Value
Actual Value
0 1 2
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
Initial Desired
Final Desired
37
38. Results
• We found much worse scenarios during MiL testing than our
partner had found so far
• These scenarios are also run at the HiL level, where testing is
much more expensive: MiL results -> test selection for HiL
• But further research was needed:
• Simulations are expensive
• Configuration parameters
38
40. Regression Tree
All Points
FD>=0.43306
Count
Mean
Std Dev
Count
Mean
Std Dev
FD<0.43306
Count
Mean
Std Dev
ID>=0.64679
Count
Mean
Std Dev
Count
Mean
Std Dev
Cal5>=0.020847 Cal5>0.020847
Count
Mean
Std Dev
Count
Mean
Std Dev
Cal5>=0.014827 Cal5<0.014827
Count
Mean
Std Dev
Count
Mean
Std Dev
1000
0.007822
0.0049497
ID<0.64679
574
0.0059513
0.0040003
426
0.0103425
0.0049919
373
0.0047594
0.0034346
201
0.0081631
0.0040422
182
0.0134555
0.0052883
244
0.0080206
0.0031751
70
0.0106795
0.0052045
131
0.0068185
0.0023515
40
41. Surrogate Modeling
Any supervised learning or statistical
technique providing fitness predictions
with confidence intervals
1. Predict higher fitness with high
confidence: Move to new position,
no simulation
2. Predict lower fitness with high
confidence: Do not move to new
position, no simulation
3. Low confidence in prediction:
Simulation
Surrogate Model
Real Function
x
Fitness
41
42. ü Our approach is able to identify more critical violations of the
controller requirements that had neither been found by our earlier
work nor by manual testing.
MiL-Testing
different configurations
Stability
Smoothness
Responsiveness
MiL-Testing
fixed configurations Manual MiL-Testing
- -2.2% deviation
24% over/undershoot 20% over/undershoot 5% over/undershoot
170 ms response time 80 ms response time 50 ms response time
Results
42
43. Open Loop Controllers
On
Off
CtrlSig
• Mixed discrete-continuous behavior:
Simulink stateflows
• No plant model: Much quicker simulation
time
• No feedback loop -> no automated oracle
• The main testing cost is the manual
analysis of output signals
• Goal: Minimize test suites
• Challenge: Test selection
• Entirely different approach to testing
techniques. We consider this criterion
flows have complex internal structures
uations, making them less amenable to
they have rich time-continuous outputs.
e following contributions:
blem of testing Stateflows with mixed
behaviours. We propose two new test
a output stability and output continuity
cting test inputs that are likely to pro-
puts exhibiting instability and disconti-
ively.
box coverage and the blackbox output
iteria to Stateflows, and evaluate their
for continuous behaviours. The former
raditional state and transition coverage
nd the latter is defined based on the re-
ss criterion [?].
eness of our newly proposed and the
eria by applying them to three Stateflow
two industrial and one public domain.
RESULT.
r.
(c) Engaging state of SCC -- mixed discrete-continuous behaviour
Disengaging
Engaged
[disengageReq]/time := 0
[time>5]
[time>5]
time + +;
OnMoving OnSlipping
OnCompleted
time + +;
ctrlSig := f(time)
Engaging
time + +;
ctrlSig := g(time)
time + +;
ctrlSig := 1.0
[¬(vehspd = 0)
time > 2]
[(vehspd = 0)
time > 3]
[time > 4]
Figure 1: Supercharge Clutch Controller (SCC) Stateflow.
transient states [?], engaging and disengaging, specifying that mov-
ing from the engaged to the disengaged state and vice versa takes
six milisec. Since this model is simplified, it does not show han-
dling of alterations of the clutch state during the transient states.
In addition to adding the time variable, we note that the variable
43
44. Selection Strategies Based on Search
• Input signal diversity
• White-box structural coverage
• State Coverage
• Transition Coverage
• Output signal diversity
• Failure-Based selection criteria
• Domain specific failure patterns
• Output Stability
• Output Continuity
S3
t
S3
t
44
46. 46
Output Diversity -- Feature-Based
increasing (n) decreasing (n)constant-value (n, v)
signal features
derivative second derivative
sign-derivative (s, n) extreme-derivatives
1-sided
discontinuity
discontinuity
1-sided continuity
with strict local optimum
value
instant-value (v)
constant (n)
discontinuity
with strict local optimum
increasing
C
A
B
47. Failure-based Test Generation
47
Instability
Discontinuity
0.0 1.0 2.0
-1.0
-0.5
0.0
0.5
1.0
Time
CtrlSigOutput
• Search: Maximizing the likelihood of presence of specific failure
patterns in output signals
• Domain-specific failure patterns elicited from engineers
0.0 1.0 2.0
Time
0.0
0.25
0.50
0.75
1.0
CtrlSigOutput
48. Results
• The test cases resulting from state/transition coverage
algorithms cover the faulty parts of the models
• However, they fail to generate output signals that are
sufficiently distinct from expectations, hence yielding a
low fault revealing rate
• Output-based algorithms are much more effective
• Existing commercial tools: Not effective at finding faults,
not applicable to entire Simulink models
48
50. Commonalities
• Large input spaces
• Combinatorial approaches not applicable
• Coverage?
• Expensive testing: test execution time, oracle analysis effort
• Complex oracle (dynamic behavior)
• Testing is driven by risk
• Search-based solution: Highest risk scenarios
50
51. Differences
• Model execution time, e.g., plant or not
• Fitness function: Exact or heuristic
• Single or multi objectives
• Automated oracle or not
• Other techniques involved to achieve scalability:
regression trees, neural networks, sensitivity analysis,
…
51
53. Constraint Solving
• Test data generation via constraint solving is not feasible
when:
• Continuous mathematical models, e.g., differential
equations
• Library functions in binary code
• Complex operations
• Constraints capturing dynamic properties (discretized)
tend not to be scalable
53
54. Search-Based Testing
• Largely focused on unit or function testing, where the
goal is to maximize model coverage, check temporal
properties (state transitions) …
• To address CPS, we need more work on system-level
testing, targeting dynamic properties in complex input
spaces capturing the behavior of physical entities.
54
55. Future: !
A more general methodological
and automation framework,
targeting more complex and
heterogeneous CPS models
55
56. Future Work
• Shifting the bulk of testing from implemented systems to models of
such systems and their environments requires:
• Heterogeneous modeling and co-simulation
• Modeling dynamic properties and risk
• Uncertainty modeling enabling probabilistic test oracles
• Executable model at a proper level of precision for testing purposes
• Use results to make the best out of available time and resources for
testing the implemented system with hardware in the loop
• Focus on high risk test scenarios within budget and time constraints
56
57. References
• R. Ben Abdessalem et al., "Testing Advanced Driver Assistance Systems Using
Multi-Objective Search and Neural Networks”, ASE 2016
• R. Matinnejad et al., “Automated Test Suite Generation for Time-continuous Simulink
Models“, ICSE 2016
• R. Matinnejad et al., “Effective Test Suites for Mixed Discrete-Continuous Stateflow
Controllers”, ESEC/FSE 2015 (Distinguished paper award)
• R. Matinnejad et al., “MiL Testing of Highly Configurable Continuous Controllers:
Scalable Search Using Surrogate Models”, ASE 2014 (Distinguished paper award)
• R. Matinnejad et al., “Search-Based Automated Testing of Continuous Controllers:
Framework, Tool Support, and Case Studies”, Information and Software Technology,
Elsevier (2014)
57
58. .lusoftware verification & validation
VVS
Testing Dynamic Behavior in
Executable Software Models!
!
Lionel Briand
** WE HIRE! **
July 18, ISSTA 2016