The document discusses the need for automation frameworks to increase productivity and avoid errors in repetitive testing. It covers key elements of frameworks like control libraries, common libraries, coding guidelines, execution engines and result databases. Design principles include code control, abstract library layers, independent scripts and test beds, resource allocation and parallel execution. Implementation considerations involve choosing scripting languages and optimizing performance. Popular frameworks from various companies are examined as case studies.
This document discusses testing automation from start to finish. It covers topics like realizing when automation is needed, defining development processes, script quality, frameworks, execution processes, and team management. The overarching goal of automation is to generate accurate testing reports. Key points include spending time on API design, following coding standards for scripts, determining if a framework is required, managing parallel execution and reports, and defining roles for test writers, scripters, and runners.
Highly Surmountable Challenges in Ruby+OMR JIT CompilationMatthew Gaudet
The Ruby+OMR JIT compiler adds a JIT to CRuby. However, it has challenges to surmount before it will provide broad improvement to Ruby applications that aren’t micro-benchmarks. This talk will cover some of those challenges, along with some brainstorming about potential ways to tackle them.
The Ruby+OMR JIT compiler is one way to add JIT compilation to the CRuby interpreter. However, it has a number of challenges to surmount before it will provide broad improvement to Ruby applications that aren’t micro-benchmarks. This talk will cover some of those challenges, along with some brainstorming about potential ways to tackle them.
Eclipse OMR: a modern toolkit for building language runtimesMark Stoodley
Eclipse OMR is a modern toolkit for building language runtimes that provides high quality runtime ingredients like a porting library, threading library, garbage collection framework, and JIT compiler tools. It has no language semantics of its own and is designed to be integrated into various language runtimes. The presentation demonstrates how OMR has already been used successfully in Ruby, Python, and Smalltalk runtimes and provides performance benefits. It invites others to get involved in the open source project.
J9: Under the hood of the next open source JVMDanHeidinga
A description of how bytecodes are loaded into the J9VM and how bytecode execution occurs, plus IBM's plans to open source J9.
Session is the "new hire" talk given to all new J9 VM team members.
Apache Spark has rocked the big data landscape, becoming the largest open source big data community with over 750 contributors from more than 200 organizations. Spark's core tenants of speed, ease of use, and its unified programming model fit neatly with the high performance, scalable, and manageable characteristics of modern Java runtimes. In this talk Tim Ellison, a JVM developer at IBM, shows some of the unique Java 8 capabilities in the JIT compiler, fast networking, serialization techniques, and GPU off-loading that deliver the ultimate big data platform for solving business problems. Tim will demonstrate how solutions, previously infeasible with regular Java programming, become possible with this high performance Spark core runtime, enabling you to solve problems smarter and faster.
EclipseCon Eu 2015 - Breathe life into your Designer!melbats
You have your shiny new DSL up and running thanks to the Eclipse Modeling Technologies and you built a powerful tooling with graphical modelers, textual syntaxes or dedicated editors to support it. But how can you see what is going on when a model is executed ? Don't you need to simulate your design in some way ? Wouldn't you want to see your editors being animated directly within your modeling environment based on execution traces or simulator results?
The GEMOC Research Project designed a methodology to bring animation and execution analysis to DSLs. The companion technologies required to put this in action are small dedicated components (all open-source) at a "proof of concept" maturity level extending proven components : Sirius, Eclipse Debug, Xtend making such features within the reach of Eclipse based tooling. The general intent regarding those OSS technologies is to leverage them within different contexts and contribute them to Eclipse once proven strong enough. The method covers a large spectrum of use cases from DSLs with a straightforward execution semantic to a combination of different DSLs with concurrent execution semantic. Any tool provider can leverage both the technologies and the method to provide an executable DSL and animated graphical modelers to its users enabling simulation and debugging at an early phase of the design.
This talk presents the approach, the technologies and demonstrate it through an example: providing Eclipse Debug integration and diagram animation capabilities for Arduino Designer (EPL) : setting breakpoints, stepping forward or backward in the execution, inspecting the variables states... We will walk you through the steps required to develop such features, the choices to make and the trade-offs involved. Expects live demos with simulated blinking leds and a virtual cat robot !
The JIT compiler works by compiling Java bytecode to native machine code at runtime to improve performance. It monitors methods for call counts and compiles frequently called methods. We can help the JIT compiler by writing simple, well-structured methods without unnecessary complexity, inlining short methods, optimizing branch prediction, and keeping code clean. While the JIT provides optimizations, overly optimizing code can remove runtime data useful for debugging.
Embedded software static analysis_Polyspace-WhitePaper_finalTAMILMARAN C
This document discusses the challenges of testing embedded software and the limitations of traditional techniques like manual code reviews and dynamic testing. It introduces Polyspace Bug Finder and Polyspace Code Prover as static analysis tools that can overcome these limitations by automatically finding bugs, proving the absence of runtime errors, and providing stronger assurance of code reliability compared to non-exhaustive testing methods. The document argues that these static analysis tools allow businesses to reduce costs while accelerating delivery of reliable embedded systems.
This document discusses testing automation from start to finish. It covers topics like realizing when automation is needed, defining development processes, script quality, frameworks, execution processes, and team management. The overarching goal of automation is to generate accurate testing reports. Key points include spending time on API design, following coding standards for scripts, determining if a framework is required, managing parallel execution and reports, and defining roles for test writers, scripters, and runners.
Highly Surmountable Challenges in Ruby+OMR JIT CompilationMatthew Gaudet
The Ruby+OMR JIT compiler adds a JIT to CRuby. However, it has challenges to surmount before it will provide broad improvement to Ruby applications that aren’t micro-benchmarks. This talk will cover some of those challenges, along with some brainstorming about potential ways to tackle them.
The Ruby+OMR JIT compiler is one way to add JIT compilation to the CRuby interpreter. However, it has a number of challenges to surmount before it will provide broad improvement to Ruby applications that aren’t micro-benchmarks. This talk will cover some of those challenges, along with some brainstorming about potential ways to tackle them.
Eclipse OMR: a modern toolkit for building language runtimesMark Stoodley
Eclipse OMR is a modern toolkit for building language runtimes that provides high quality runtime ingredients like a porting library, threading library, garbage collection framework, and JIT compiler tools. It has no language semantics of its own and is designed to be integrated into various language runtimes. The presentation demonstrates how OMR has already been used successfully in Ruby, Python, and Smalltalk runtimes and provides performance benefits. It invites others to get involved in the open source project.
J9: Under the hood of the next open source JVMDanHeidinga
A description of how bytecodes are loaded into the J9VM and how bytecode execution occurs, plus IBM's plans to open source J9.
Session is the "new hire" talk given to all new J9 VM team members.
Apache Spark has rocked the big data landscape, becoming the largest open source big data community with over 750 contributors from more than 200 organizations. Spark's core tenants of speed, ease of use, and its unified programming model fit neatly with the high performance, scalable, and manageable characteristics of modern Java runtimes. In this talk Tim Ellison, a JVM developer at IBM, shows some of the unique Java 8 capabilities in the JIT compiler, fast networking, serialization techniques, and GPU off-loading that deliver the ultimate big data platform for solving business problems. Tim will demonstrate how solutions, previously infeasible with regular Java programming, become possible with this high performance Spark core runtime, enabling you to solve problems smarter and faster.
EclipseCon Eu 2015 - Breathe life into your Designer!melbats
You have your shiny new DSL up and running thanks to the Eclipse Modeling Technologies and you built a powerful tooling with graphical modelers, textual syntaxes or dedicated editors to support it. But how can you see what is going on when a model is executed ? Don't you need to simulate your design in some way ? Wouldn't you want to see your editors being animated directly within your modeling environment based on execution traces or simulator results?
The GEMOC Research Project designed a methodology to bring animation and execution analysis to DSLs. The companion technologies required to put this in action are small dedicated components (all open-source) at a "proof of concept" maturity level extending proven components : Sirius, Eclipse Debug, Xtend making such features within the reach of Eclipse based tooling. The general intent regarding those OSS technologies is to leverage them within different contexts and contribute them to Eclipse once proven strong enough. The method covers a large spectrum of use cases from DSLs with a straightforward execution semantic to a combination of different DSLs with concurrent execution semantic. Any tool provider can leverage both the technologies and the method to provide an executable DSL and animated graphical modelers to its users enabling simulation and debugging at an early phase of the design.
This talk presents the approach, the technologies and demonstrate it through an example: providing Eclipse Debug integration and diagram animation capabilities for Arduino Designer (EPL) : setting breakpoints, stepping forward or backward in the execution, inspecting the variables states... We will walk you through the steps required to develop such features, the choices to make and the trade-offs involved. Expects live demos with simulated blinking leds and a virtual cat robot !
The JIT compiler works by compiling Java bytecode to native machine code at runtime to improve performance. It monitors methods for call counts and compiles frequently called methods. We can help the JIT compiler by writing simple, well-structured methods without unnecessary complexity, inlining short methods, optimizing branch prediction, and keeping code clean. While the JIT provides optimizations, overly optimizing code can remove runtime data useful for debugging.
Embedded software static analysis_Polyspace-WhitePaper_finalTAMILMARAN C
This document discusses the challenges of testing embedded software and the limitations of traditional techniques like manual code reviews and dynamic testing. It introduces Polyspace Bug Finder and Polyspace Code Prover as static analysis tools that can overcome these limitations by automatically finding bugs, proving the absence of runtime errors, and providing stronger assurance of code reliability compared to non-exhaustive testing methods. The document argues that these static analysis tools allow businesses to reduce costs while accelerating delivery of reliable embedded systems.
JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVMDanHeidinga
An updated version of my "OpenJ9: Under the hood of the next open source JVM" that covers where it was open sourced (github.com/eclipse/openj9), how to build it, and then deep dives into the ROM/RAM divide before touching on interpreter, JIT and AOT.
Experienced Test Lead Engineer with a demonstrated history of working in the Embedded Systems .Strong engineering professional skilled in Set Top Box / TV.
The new runtime which Google is started implementing as developers view to implement or not which has advantages over the previous Dalvik runtime and more...
FOSDEM 2017 - A different Lua JIT using Eclipse OMRCharlie Gracie
This talks discuss our experiments with using the Eclipse OMR JitBuilder in the Lua 5.3. This talk gives an overview of the Eclipse OMR technology, Jit Builder, the work to consume the technology in Lua 5.3, current results and next steps.
The document discusses optimizing computer vision applications for cross-platform use. It describes conflicting requirements around being cross-platform versus utilizing specific device capabilities. Possible solutions discussed include optimizing for ARM NEON, a single platform, or all platforms. The document then introduces FastCV, a cross-platform computer vision library from Qualcomm that provides optimized implementations for different processors like Snapdragon to gain performance benefits while supporting multiple platforms.
Covers the common issues seen when migrating from Java 8 to Java 9. This deck shows simplified examples of the issues and code snippets of how to address them.
FOSDEM 2017 - Open J9 The Next Free Java VMCharlie Gracie
I will discuss the J9 VM technology and our plans on open sourcing the technology. My team has already open sourced a lot of the underlying technology as part of the Eclipse OMR project and now we are working open sourcing the rest of the technology.
Jython for embedded software validationPyCon Italia
This document discusses using Jython for embedded software validation. It proposes a runtime plugin model using Jython that allows dynamic code loading and multithreaded execution. This enables extending test automation capabilities and reusable test code. The model is implemented using Jython embedded in Eclipse, providing benefits like cross-platform code and dynamic reloading while avoiding risks of mixed language development.
Safe and Reliable Embedded Linux Programming: How to Get ThereAdaCore
The talk provides an overview of techniques to design and implement reliable embedded applications. The goal is to achieve safe and analyzable behavior by construction, including handling parallel multiprocessor systems in an efficient and predictable way. The means to attain this objective is to statically configure the application to run on embedded linux platforms, and then to use run-time support to enforce constraints imposed to the system.
This document summarizes the motivations and challenges of compiling heterogeneous models. It discusses bringing together system, software, and control engineering disciplines by defining a common intermediate language. This presents challenges including achieving semantic convergence between different domain-specific modeling languages and verifying integration while ensuring properties are maintained from models to generated code. Flexible and open qualification is also a challenge to enable incremental re-qualification and support for new inputs and code generation strategies.
Sys ml helperprofile-rhapsody813-obtainandinstall-v1Fraser Chadburn
Steps for obtaining and installing the Java plugin and profile called the "SysMLHelperProfile" for doing automotive executable MBSE with IBM Rational Rhapsody 8.1.3+
The document summarizes IBM's Rational Software Conference 2009. It discusses challenges in embedded software development like requirements shifts, low memory footprints, and debugging difficulties. It introduces IBM Rational Test RealTime as a solution that allows automated component testing at all levels from simple functions to distributed systems. It also enables runtime analysis through profiling, tracing, and linking of code, tests, and models. The tool aims to help developers test throughout development rather than just debugging later, to catch issues early and ensure quality and stability of embedded software projects.
IBM Tokyo Research Laboratory has led research and development of Java language processing systems since the early days of Java, collaborating with IBM development divisions to deliver Java processing systems used as the foundation for business applications. The laboratory has proposed many advanced techniques implemented in just-in-time compilers and Java virtual machines, achieving world-class performance while conducting numerous academic presentations. This seminar describes experiences with research and development of commercial Java processing systems, covering topics like the introduction and adoption of Java, implementations of Java virtual machines and just-in-time compilers, and prospects for the future.
This document provides a summary of Birendra Kumar's career objective, work experience, skills, and projects. He has over 7 years of experience as a senior software engineer working with multicast protocols, routing protocols, operating systems like AIX and Integrity RTOS. Some of his key projects include implementing PIM passive mode for multicast routing and developing logging and debugging infrastructure. He is proficient in C, C++, shell scripting, and has worked on tools like Git, Visual Studio, and ClearCase.
Enhanced Enterprise Intelligence with your personal AI Data Copilot.pdfGetInData
Recently we have observed the rise of open-source Large Language Models (LLMs) that are community-driven or developed by the AI market leaders, such as Meta (Llama3), Databricks (DBRX) and Snowflake (Arctic). On the other hand, there is a growth in interest in specialized, carefully fine-tuned yet relatively small models that can efficiently assist programmers in day-to-day tasks. Finally, Retrieval-Augmented Generation (RAG) architectures have gained a lot of traction as the preferred approach for LLMs context and prompt augmentation for building conversational SQL data copilots, code copilots and chatbots.
In this presentation, we will show how we built upon these three concepts a robust Data Copilot that can help to democratize access to company data assets and boost performance of everyone working with data platforms.
Why do we need yet another (open-source ) Copilot?
How can we build one?
Architecture and evaluation
Five cool ways the JVM can run Apache Spark fasterTim Ellison
The IBM JVM runs Apache Spark fast! This talk explains some of the findings and optimizations from our experience of running Spark workloads.
The talk was originally presented at the SparkEU Summit 2015 in Amsterdam.
Acceptance Test Drive Development with Robot FrameworkRamdhan Hidayat
Robot Framework are Python based automation testing tool. I am using Robot Framework as acceptance test tool during development process, so that each git commit I made RF will test it automatically for me.
This document provides an overview of BDD test automation. It discusses the benefits of BDD test automation such as faster script development and improved collaboration. It then compares BDD to TDD, highlighting differences in parameters like test focus, participants, and ease of adoption. Two BDD frameworks, Cucumber-JVM and J-Behave, are compared based on available features. The document also covers test automation suites, data management, test automation processes, and service virtualization solutions.
Jens Siebert gave a presentation on using Rust for embedded systems. He discussed the history and characteristics of Rust, how it provides memory safety and concurrency without overhead. He also covered Rust's support for embedded targets through crates like embedded-hal and board-specific crates. As an example, he showed how to set up a project to blink an LED on the Raspberry Pi Pico using Rust and its embedded ecosystem. He concluded that Rust is well-suited for embedded due to its performance, safety features, architecture support, and available drivers, though it has a steep learning curve.
This session aims to shed some light to an emerging test automation framework Karate DSL. This framework resolves many of the test automation problems by having API test-automation along with performance-testing and UI Web Automation testing into a single, unified framework.
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...Amazon Web Services
The document discusses Amazon EC2 F1 instances for accelerating C/C++ applications using FPGAs. It provides an overview of F1 instances and capabilities like packet processing and multiple AFIs. Updates include more regions, sizes, and tools. Examples demonstrate financial computing, genomics, and video acceleration. The workshop will use precompiled AFIs and F1.2xlarge instances to introduce FPGA development.
JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVMDanHeidinga
An updated version of my "OpenJ9: Under the hood of the next open source JVM" that covers where it was open sourced (github.com/eclipse/openj9), how to build it, and then deep dives into the ROM/RAM divide before touching on interpreter, JIT and AOT.
Experienced Test Lead Engineer with a demonstrated history of working in the Embedded Systems .Strong engineering professional skilled in Set Top Box / TV.
The new runtime which Google is started implementing as developers view to implement or not which has advantages over the previous Dalvik runtime and more...
FOSDEM 2017 - A different Lua JIT using Eclipse OMRCharlie Gracie
This talks discuss our experiments with using the Eclipse OMR JitBuilder in the Lua 5.3. This talk gives an overview of the Eclipse OMR technology, Jit Builder, the work to consume the technology in Lua 5.3, current results and next steps.
The document discusses optimizing computer vision applications for cross-platform use. It describes conflicting requirements around being cross-platform versus utilizing specific device capabilities. Possible solutions discussed include optimizing for ARM NEON, a single platform, or all platforms. The document then introduces FastCV, a cross-platform computer vision library from Qualcomm that provides optimized implementations for different processors like Snapdragon to gain performance benefits while supporting multiple platforms.
Covers the common issues seen when migrating from Java 8 to Java 9. This deck shows simplified examples of the issues and code snippets of how to address them.
FOSDEM 2017 - Open J9 The Next Free Java VMCharlie Gracie
I will discuss the J9 VM technology and our plans on open sourcing the technology. My team has already open sourced a lot of the underlying technology as part of the Eclipse OMR project and now we are working open sourcing the rest of the technology.
Jython for embedded software validationPyCon Italia
This document discusses using Jython for embedded software validation. It proposes a runtime plugin model using Jython that allows dynamic code loading and multithreaded execution. This enables extending test automation capabilities and reusable test code. The model is implemented using Jython embedded in Eclipse, providing benefits like cross-platform code and dynamic reloading while avoiding risks of mixed language development.
Safe and Reliable Embedded Linux Programming: How to Get ThereAdaCore
The talk provides an overview of techniques to design and implement reliable embedded applications. The goal is to achieve safe and analyzable behavior by construction, including handling parallel multiprocessor systems in an efficient and predictable way. The means to attain this objective is to statically configure the application to run on embedded linux platforms, and then to use run-time support to enforce constraints imposed to the system.
This document summarizes the motivations and challenges of compiling heterogeneous models. It discusses bringing together system, software, and control engineering disciplines by defining a common intermediate language. This presents challenges including achieving semantic convergence between different domain-specific modeling languages and verifying integration while ensuring properties are maintained from models to generated code. Flexible and open qualification is also a challenge to enable incremental re-qualification and support for new inputs and code generation strategies.
Sys ml helperprofile-rhapsody813-obtainandinstall-v1Fraser Chadburn
Steps for obtaining and installing the Java plugin and profile called the "SysMLHelperProfile" for doing automotive executable MBSE with IBM Rational Rhapsody 8.1.3+
The document summarizes IBM's Rational Software Conference 2009. It discusses challenges in embedded software development like requirements shifts, low memory footprints, and debugging difficulties. It introduces IBM Rational Test RealTime as a solution that allows automated component testing at all levels from simple functions to distributed systems. It also enables runtime analysis through profiling, tracing, and linking of code, tests, and models. The tool aims to help developers test throughout development rather than just debugging later, to catch issues early and ensure quality and stability of embedded software projects.
IBM Tokyo Research Laboratory has led research and development of Java language processing systems since the early days of Java, collaborating with IBM development divisions to deliver Java processing systems used as the foundation for business applications. The laboratory has proposed many advanced techniques implemented in just-in-time compilers and Java virtual machines, achieving world-class performance while conducting numerous academic presentations. This seminar describes experiences with research and development of commercial Java processing systems, covering topics like the introduction and adoption of Java, implementations of Java virtual machines and just-in-time compilers, and prospects for the future.
This document provides a summary of Birendra Kumar's career objective, work experience, skills, and projects. He has over 7 years of experience as a senior software engineer working with multicast protocols, routing protocols, operating systems like AIX and Integrity RTOS. Some of his key projects include implementing PIM passive mode for multicast routing and developing logging and debugging infrastructure. He is proficient in C, C++, shell scripting, and has worked on tools like Git, Visual Studio, and ClearCase.
Enhanced Enterprise Intelligence with your personal AI Data Copilot.pdfGetInData
Recently we have observed the rise of open-source Large Language Models (LLMs) that are community-driven or developed by the AI market leaders, such as Meta (Llama3), Databricks (DBRX) and Snowflake (Arctic). On the other hand, there is a growth in interest in specialized, carefully fine-tuned yet relatively small models that can efficiently assist programmers in day-to-day tasks. Finally, Retrieval-Augmented Generation (RAG) architectures have gained a lot of traction as the preferred approach for LLMs context and prompt augmentation for building conversational SQL data copilots, code copilots and chatbots.
In this presentation, we will show how we built upon these three concepts a robust Data Copilot that can help to democratize access to company data assets and boost performance of everyone working with data platforms.
Why do we need yet another (open-source ) Copilot?
How can we build one?
Architecture and evaluation
Five cool ways the JVM can run Apache Spark fasterTim Ellison
The IBM JVM runs Apache Spark fast! This talk explains some of the findings and optimizations from our experience of running Spark workloads.
The talk was originally presented at the SparkEU Summit 2015 in Amsterdam.
Acceptance Test Drive Development with Robot FrameworkRamdhan Hidayat
Robot Framework are Python based automation testing tool. I am using Robot Framework as acceptance test tool during development process, so that each git commit I made RF will test it automatically for me.
This document provides an overview of BDD test automation. It discusses the benefits of BDD test automation such as faster script development and improved collaboration. It then compares BDD to TDD, highlighting differences in parameters like test focus, participants, and ease of adoption. Two BDD frameworks, Cucumber-JVM and J-Behave, are compared based on available features. The document also covers test automation suites, data management, test automation processes, and service virtualization solutions.
Jens Siebert gave a presentation on using Rust for embedded systems. He discussed the history and characteristics of Rust, how it provides memory safety and concurrency without overhead. He also covered Rust's support for embedded targets through crates like embedded-hal and board-specific crates. As an example, he showed how to set up a project to blink an LED on the Raspberry Pi Pico using Rust and its embedded ecosystem. He concluded that Rust is well-suited for embedded due to its performance, safety features, architecture support, and available drivers, though it has a steep learning curve.
This session aims to shed some light to an emerging test automation framework Karate DSL. This framework resolves many of the test automation problems by having API test-automation along with performance-testing and UI Web Automation testing into a single, unified framework.
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...Amazon Web Services
The document discusses Amazon EC2 F1 instances for accelerating C/C++ applications using FPGAs. It provides an overview of F1 instances and capabilities like packet processing and multiple AFIs. Updates include more regions, sizes, and tools. Examples demonstrate financial computing, genomics, and video acceleration. The workshop will use precompiled AFIs and F1.2xlarge instances to introduce FPGA development.
An Introduction to Amazon SageMaker (October 2018)Julien SIMON
This document introduces Amazon SageMaker, a fully managed platform for building, training, and deploying machine learning models. It provides several key services: built-in algorithms for common ML tasks, the ability to bring your own algorithms or scripts for model training, hyperparameter tuning to optimize models, and managed hosting for deploying trained models. The document outlines the ML workflow that SageMaker aims to simplify and provides demos of using XGBoost and BlazingText for text classification tasks on SageMaker.
This presentation provides an overview of the TaraVault source code management system from Inflectra. It describes the features for both TaraVault using Git and Subversion. It also includes recommended code management workflows such as GitFlow.
Python* Scalability in Production EnvironmentsIntel® Software
This document discusses scaling Python performance in production environments. It introduces the Intel Distribution for Python, which provides optimized versions of NumPy, SciPy, and Scikit-Learn using Intel MKL to accelerate linear algebra and machine learning algorithms. It also supports parallelism through MPI, TBB for multithreading, and integration with big data frameworks. Profiling tools like Intel VTune Amplifier help optimize mixed-language Python applications for Intel architectures. The goal is to make Python usable for high performance computing and big data workloads while maintaining its ease of use.
The document provides an overview of PowerAI, IBM's set of libraries for developing machine learning and deep learning applications. It discusses what PowerAI is, its hardware requirements, the differences between CPUs and GPUs for machine learning, how to use PowerAI components like TensorFlow and Theano, and tuning recommendations for PowerAI performance.
Robot Framework is an open source test automation framework that can be used to test web, desktop, and mobile applications. It uses a keyword-driven design and has a modular architecture that makes it easy to extend with custom test libraries. Some benefits include being highly reusable, accessible for beginners, and having powerful logging capabilities. However, it does not support while loops or nested for loops, and working with non-string data types can be complicated. The framework operates independently of the system under test and uses test suites made up of test cases that can each be in their own namespace. Custom keywords, variables, and extensions are usually stored separately.
Build, train, and deploy Machine Learning models at scale (May 2018)Julien SIMON
The document discusses Amazon SageMaker, a fully managed service that allows users to build, train and deploy machine learning models at scale. It provides pre-built algorithms and frameworks, managed hosting, one-click deployment and hyperparameter tuning capabilities. It also supports bringing your own custom algorithms by allowing users to run their own Docker containers. The document highlights how SageMaker simplifies and automates ML workflows and provides examples of customers using it at scale for image and data analysis.
This presentation provides an overview of the TaraVault source code management system from Inflectra. It describes the features for both TaraVault using Git and Subversion. It also includes recommended code management workflows such as GitFlow.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2021/07/hate-it-or-love-it-your-neural-network-software-stack-defines-application-performance-and-reach-a-presentation-from-qualcomm/
Felix Baum, Director of Product Management at Qualcomm, presents the “Hate It Or Love It, Your Neural Network Software Stack Defines Application Performance and Reach” tutorial at the May 2021 Embedded Vision Summit.
Qualcomm has invested extensively in its state-of-the-art Qualcomm Neural Network and software stack, including the Qualcomm Neural Processing SDK and the AI Model Efficiency Toolkit. These toolkits have helped many developers take their applications to the next level with extreme efficiency and performance.
In this talk, Baum explains some of the most common misconceptions related to AI software stacks and frameworks, and how key attributes of these tools, directly and indirectly, impact application performance, the ability of developers with diverse skill levels to use the tools, and the ability to scale applications across processor performance tiers. If you are interested in improving your application performance or incorporating machine learning into your performance-sensitive application, this talk is for you.
GraalVM is a high-performance runtime that can accelerate applications written in Java and other JVM languages. It includes a new just-in-time (JIT) compiler called Graal that can compile code ahead-of-time into a standalone native image executable. This ahead-of-time compilation allows applications to start faster and use less memory compared to the traditional HotSpot JVM. GraalVM is best suited for applications that benefit from fast startup times and a small memory footprint like command-line tools, containerized services, and embedded systems.
This document discusses several bugs found in various networking devices and products. For each bug, it provides details about the issue and asks how test cases could be designed to catch the bug, why it was not caught internally, and what test strategies could cover it. It aims to analyze customer-found bugs to improve testing methods.
Why we didn't catch that application bugsgaoliang641
The document discusses 30 different software bugs found in various systems. For each bug, it provides a brief description of the issue and asks how test cases could be designed to catch the bug, why it was not caught internally, and what test strategies could help cover such bugs in the future. The bugs covered a wide range of systems, including WebEx, Taobao, Google Docs, Cisco devices, banking systems, travel sites, Microsoft Office, and more.
Release engineering involves managing the delivery of high quality software releases through processes like release planning, branch management, building, testing, and source code control. It aims to make releases predictable and of high quality by facilitating activities such as compiling code, verifying functionality, controlling branching/merging of codelines, and following best practices.
Regression testing is important to ensure new software changes do not break existing functionality. Automating regression testing helps manage the large number of test cases needed and speeds up release cycles. Key aspects of managing regression include establishing a baseline, comparing new results to the baseline, debugging failures efficiently, and automating testing processes to reduce human effort and testing time.
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.
This document outlines a performance evaluation framework for testers. It defines attributes of good testers, types of metrics to measure performance, and a quality review process. Performance is measured both quantitatively using metrics like bugs found and test cases run, and qualitatively through reviews of bug and test case quality. Testers are evaluated based on their role, with defined metrics for developers, regression engineers, tools engineers and system testers.
This document discusses the relationship between testers and developers and how to improve interaction between the two roles. It notes that while they sometimes have a "love-hate" relationship as they have different expertise and goals, they ultimately depend on each other to ensure high quality software. The document provides tips for when testers and developers should interact, such as during design, test case reviews, and bug fixing. It also recommends ways to build trust between testers and developers through clear communication and establishing processes for quality control.
This document discusses career paths for testing engineers. It begins by describing a typical interview where the candidate's lack of technical skills is apparent. It then discusses a tester's concerns about their career progression and perceptions of testers. The document outlines stories of individuals who grew their careers in testing over long periods of time, taking on roles such as test automation engineer and testing director. It provides advice on making good career choices by gaining experience in one's current role and waiting for opportunities, rather than changing roles frequently or due to money alone. Specific career paths are suggested such as build master, release engineer, and testing management. The document emphasizes that experience over time strengthens one's position and makes them competitive for career growth.
This document discusses agile testing practices used on a large, mission critical project for the Israeli Air Force's information management system. Key points include:
- The entire project used extreme programming (XP) and involved no separation between development and testing teams. Developers performed all testing and regression.
- Testing was integrated into the development process with testing beginning from the first line of code. The size of tests and functionality developed were equal at each iteration.
- Bugs were prioritized and fixed immediately within each iteration to ensure all work was fully tested before being counted as completed. This approach helped keep the project on track and of high quality.
The document provides guidance for a QA manager's role in project management. It outlines responsibilities like managing the QA team, interacting with other teams, and ensuring work is on time and high quality. It also describes tasks for project planning such as understanding requirements, defining deliverables, scheduling testing activities, and communicating with stakeholders. Standard templates, reviews, reports, and post-mortem analyses are recommended to help manage the quality of the work.
This document discusses exploratory testing (E.T.) and how to effectively implement it. It begins by defining E.T. as simultaneous learning, test design, and execution. It then contrasts E.T. with scripted testing, noting that E.T.'s goal is to find bugs while scripted testing aims to measure coverage. The document provides tips for doing good E.T., such as keeping notes and using different testing styles. It also discusses managing E.T., including using sessions and balancing E.T. with other testing. Lessons learned emphasize the benefits of pair testing and that E.T. requires skilled testers and planning to be successful.
The document provides guidance on best practices for bug filing and management. It discusses how to write high-quality bug reports that are reproducible by developers. It emphasizes the importance of thoroughly documenting steps to reproduce issues and providing all relevant information. The document also covers defect tracking metrics and how they can be used to assess testing progress and product quality.
Lessons learned on localization testinggaoliang641
Localization testing began 25 years ago with Windows. Early localization caused regression issues. Now single worldwide binaries are used with different fonts and keyboards. There are 3 types of localization defects: functionality, usability, and linguistic quality. Usability defects make up 90% of issues. Lessons include checking translation completeness, identifying string locations, considering cultural differences in shortcuts, and testing various resolutions.
Lessons learned on software testing automationgaoliang641
This document outlines 14 lessons learned about automation testing. Key points include that automation requires resources to develop, maintain and run scripts; automated tests can miss bugs if not run manually as well; a framework is needed to manage thousands of scripts; scripts should use standard languages and be data-driven and independent of testbeds; and logs are more important than scripts for debugging failures. Separating script writers from runners and using databases to store results are also advised.
This document provides guidance on how to become a testing expert. It discusses typical interview questions faced by testers and the dilemmas of both testers and management in hiring strong testing candidates. It outlines the career journey of one individual who grew from their first testing role to leadership positions. Key lessons include gaining experience over time and having the ability to find critical bugs quickly. Attributes of a testing expert are developing comprehensive testing strategies and managing the entire release process.
Functionality testing involves developing test cases to test new code based on software function specifications, marketing requirements, and developer code. Test cases are the foundation of quality assurance and should cover equivalence classes, boundary values, decision tables, state transitions, and all pairs to ensure thorough coverage. Quality functionality testing requires understanding the purpose of new features, communicating with developers, thoroughly designing test cases, carefully executing tests, and reviewing results.
Protocol Security Testing best practicegaoliang641
This document discusses different types of boundary value testing for protocol parsing code, including:
1. Value boundary testing to ensure proper functionality at the minimum, maximum, and boundary values of input data.
2. Logic boundary testing to check error handling and protocol parsing.
3. Performance boundary testing to evaluate how a system performs under attack.
It describes creating test cases with boundary values for individual fields and combinations of fields in protocol data units. It also discusses challenges of boundary testing due to the large number of possible field combinations and proposes structured and unstructured approaches.
Backward thinking design qa system for quality goalsgaoliang641
This document discusses strategies for designing a quality assurance system to meet quality goals. It outlines various types of testing, such as user testing, integration testing, and performance testing. It also poses many questions about testing organization, processes, tools, and metrics that need to be considered when setting up a QA system. The document emphasizes establishing repetitive regression testing to stabilize code branches before release and using automation to help reduce the workload of testing.
This document discusses agile testing practices used for a large, mission critical project for the Israeli Air Force. Key points include:
- The entire project used extreme programming (XP) and involved no separation of developers and testers. Testing was integrated into development and everyone on the team tested.
- Testing was considered equally important as development. Test size was tied directly to product size and untested work was not considered completed. Automated unit and regression testing occurred in each iteration.
- Through close collaboration and ensuring all work was fully tested, the average time to fix defects remained low even as the project increased in complexity. This allowed bugs to be fixed immediately.
2. Agenda
Why we need an automation framework
Elements of automation framework
Design Principles
Implementation Principles.
Popular automation framework case study
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
3. The Goal of Automation
Increase productivity on repetitive testing
Avoid human errors
Use night and weekends
Ultimate goal is to get the full version report (auto or
manual)
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
4. Automation Framework: Why?
I can develop script without any framework
Each script can run itself
Scripts execution results can be collected and put into
a spreadsheet
I can do everything I want for automation without a
“Framework”
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
5. Automation Framework: Reason
杀鸡不用宰牛刀
If you have multiple developers to develop scripts in
parallel
If you have thousands of thousands of scripts need to
run
If your product release cycle is short and demanding
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
6. Remember the goal
All we want is a full version report (manual or auto)
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
7. Elements of an Automation
Framework
Control library
Common library
Coding guideline
Execution engine
Test harness
Result database
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
8. Control library
All equipment in the network need to be controlled
by control library
CLI remote control
Power of the expect
GUI control
Selenium
API based control
Ixia, Smartbit, Ameritec, Abacus etc.
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
9. Common Library
Common APIs to use when automate command tasks
Ping library
WiFi library
MPLS library
DHPC library
……..
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
10. Coding Guideline
Common style for ease of maintenance
Common headers
20% + comments
Enough logging and debugging
Documentation
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
11. Execution engine
Concept of Test Bed, Jobs and suites
Controlled batch run
Exception catch (both software and hardware)
Will run to the end no matter what
Abortion on demand
Live status display
Debugging support (not script development debugging)
Dynamic suites generation
Email notification
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
12. Test Harness
The end product: full version test report
Collection of the running results in high level
Easy to present and easy to search
Easy to debug base on the report
Easy to compare between different version’s results
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
13. Design Principles
Code control
Extract layer of library design
Script and test bed independency
Resource allocation
Execution parallelization
Result storage
Dynamic topology
Distribution mechanism
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
14. Code Control
Just like any product development, pick your choice
Subversion, Clearcase etc.
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
15. Abstract Layer of Library Design
Equipment library layer to high the complexity of
different equipment A Calls B
Scripts:
Common APIs with are equipment independent
Abstract API Layer
Device dependent layer
Abacus Ameritec SIPX Others
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
16. Script and Test Bed Independency
Any scripts can run on any test bed without change
inside the script
Scripts: A Calls B
Best case: all you need to change is the test bed name
in the framework Logical Test Bed
Test Bed Map
TB1 TB2 TB3 TB4
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
17. Resource Allocation
Each test bed can only run one job?
Test bed design
Dynamic resource allocation
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
18. Execution parallelization
Per framework instance per test bed?
Central framework?
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
19. Result Storage
Logs need to be archived (very important)
Full version report need to be stored
Need a database?
Script info database?
Log database?
Report database?
Suite-version database?
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
20. Dynamic Topology
Each script need different topology
Fixed test bed topo vs dynamic test bed topo
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
22. Implementation Principles
Script language of choice
Performance consideration
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
23. Script Language of Choice
TCL
Perl
Ruby
Python
EXPECT
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
25. Framework Case Study
C company’s - largest network equipment vendor
J company’s - largest network equipment vendor
H-1 company’s - largest network equipment vendor
H-2 company’s - largest network equipment vendor
T company’s – windows based security company
A company’s – Silicon valley security appliance company
N company’s – Silicon Valley startup.
Sigma’s – first commercial framework in the market
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
26. C
TCL
Per engineer per framework
No GUI
No dynamic resource allocation
No dynamic topology on Framework
Open source style library development
CLI only
Dynamic suites
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
27. J
TCL/Perl
Dynamic topology generation by controlling the
switch Vlans.
Per engineer per framework
CLI only
Per release code base (on scripts)
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
28. H-1
Key word driven
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
29. H-2
Key word driven
Script and test bed independent
IDE
Static suites
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
30. T
Ruby + AutoIT + Witr
Strong support for GUI automation on both MS
Windows and Browser
C/S structure
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
31. A
Perl
Heavily use of Selemium
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.
32. N
Python
All CLI
This material is for training purpose only.
No duplication without consent of Sigma-RT is permitted.