The document discusses advanced testing techniques, including:
1. The speaker shares experiences with testing and encourages thinking critically about testing like an advanced tester. Unit testing with RSpec and integration testing with Cucumber are covered.
2. Examples of unit testing, boundary value analysis, isolation, mocks/stubs, and fixtures are provided. The benefits of testing, such as isolating units of code and finding edge cases, are discussed.
3. Integration testing with Cucumber is recommended to test the full stack of models, views, and controllers in a behavior-driven manner. An example Cucumber scenario tests account creation on a homepage.
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Test-driven development (TDD) is a powerful technique for combining software design, unit testing, and coding in a continuous process to increase reliability and produce better code design. Using the TDD approach, developers write programs in very short development cycles: first the developer writes a failing automated test case that defines a new function or improvement, then produces code to pass that test, and finally refactors the new code to acceptable standards. The developer repeats this process many times until the behavior is complete and fully tested. Rob Myers demonstrates the essential TDD techniques, including unit testing with the common xUnit family of open source development frameworks, refactoring as just-in-time design, plus Fake It, Triangulate, and Obvious Implementation. During this hands-on session, you’ll use exercises to practice the techniques. With many years of product development experience using TDD, Rob will address the questions that arise during your own relaxed exploration of test-driven development.
Tired of writing messy messy "if" statements for all your exception handling? Learn how to take full advantage of functional programming theory, without the theory, Ruby-style!
https://github.com/mindeavor/solid_use_case
The SolidWorks API can automate your design simulations as easily as the building of the models. Your automation tools (even 3rd party apps) can integrate SolidWorks Simulation into the process with just a little bit of code and forward thinking. It's easier than you think.
Functional programming is a paradigm which concentrates on computing results rather than on performing actions. That is, when you call a function, the only significant effect that the function has is usually to compute a value and return it.
How Testability Inspires AngularJS Design / Ran MizrahiRan Mizrahi
Testability is a major part of design decision making in Angular`s development.
In this sessions we’ll cover what testability is, how it inspires Angular`s design and why it’s good for us.
The document discusses using HTML elements like <div> tags and JavaScript to implement drag and drop functionality in Silverlight 1.0 since user controls were not available, and provides an example of the code needed to enable drag and drop in Silverlight using event handlers to track mouse movement and position elements. It also compares the drag and drop implementation between straight JavaScript and Silverlight.
This is the slide stack to the two JavaScript Operators YouTube videos at https://www.youtube.com/watch?v=4sF-9RqDxEA and https://www.youtube.com/watch?v=lRijlc3tsw0
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Test-driven development (TDD) is a powerful technique for combining software design, unit testing, and coding in a continuous process to increase reliability and produce better code design. Using the TDD approach, developers write programs in very short development cycles: first the developer writes a failing automated test case that defines a new function or improvement, then produces code to pass that test, and finally refactors the new code to acceptable standards. The developer repeats this process many times until the behavior is complete and fully tested. Rob Myers demonstrates the essential TDD techniques, including unit testing with the common xUnit family of open source development frameworks, refactoring as just-in-time design, plus Fake It, Triangulate, and Obvious Implementation. During this hands-on session, you’ll use exercises to practice the techniques. With many years of product development experience using TDD, Rob will address the questions that arise during your own relaxed exploration of test-driven development.
Tired of writing messy messy "if" statements for all your exception handling? Learn how to take full advantage of functional programming theory, without the theory, Ruby-style!
https://github.com/mindeavor/solid_use_case
The SolidWorks API can automate your design simulations as easily as the building of the models. Your automation tools (even 3rd party apps) can integrate SolidWorks Simulation into the process with just a little bit of code and forward thinking. It's easier than you think.
Functional programming is a paradigm which concentrates on computing results rather than on performing actions. That is, when you call a function, the only significant effect that the function has is usually to compute a value and return it.
How Testability Inspires AngularJS Design / Ran MizrahiRan Mizrahi
Testability is a major part of design decision making in Angular`s development.
In this sessions we’ll cover what testability is, how it inspires Angular`s design and why it’s good for us.
The document discusses using HTML elements like <div> tags and JavaScript to implement drag and drop functionality in Silverlight 1.0 since user controls were not available, and provides an example of the code needed to enable drag and drop in Silverlight using event handlers to track mouse movement and position elements. It also compares the drag and drop implementation between straight JavaScript and Silverlight.
This is the slide stack to the two JavaScript Operators YouTube videos at https://www.youtube.com/watch?v=4sF-9RqDxEA and https://www.youtube.com/watch?v=lRijlc3tsw0
Via MoneyBird kunnen ondernemers eenvoudig online facturen maken en versturen. Waarom verdient MoneyBird een Gouden Factuur 2009? Bekijk de presentatie!
Este documento describe el desarrollo de una aplicación web para gestionar el alquiler y control de inventario de equipos de construcción para la empresa ECONSI LTDA. Actualmente, ECONSI maneja esta información de forma manual usando hojas de cálculo y documentos físicos, lo que causa pérdidas de tiempo y posibles errores. La aplicación web permitirá a ECONSI almacenar, procesar y mostrar la información de una manera más eficiente, segura y confiable para mejorar los procesos de la empresa.
Henrob riveting systems are available in pneumatic, battery, hydraulic, and electric servo. Tooling can be configured for manual or automated production, integrated by tool suspension, fixed mounting, fixed automation or robotic.
This two-day small group tour from Rome or Naples includes transportation, guides, meals, and admission to key sites along the Amalfi Coast and surrounding areas. Day 1 includes stops at Mount Vesuvius, Pompeii, Amalfi, Positano, and a night in Sorrento. Day 2 features a trip to the island of Capri and a visit to the Caserta Royal Palace or the abbey at Montecassino before returning to Rome or Naples. Rates start at 325 euros from Rome or 250 euros from Naples. The document provides additional details on inclusions, exclusions, booking terms, and contact information.
Jefa de Servicio de Ordenación Académica, Documentación y Evaluación de CLMMaría Isabel Rodriguez
Presentación TCA/Visita de Estudio Study Visit: "The future begins today" que, en el marco del Programa Erasmus+, tuvo lugar en Botosani (Rumanía) del 9 al 15 de octubre de 2016.
Ondernemend Sudwest Fryslan is hét medium van en voor de ondernemers in de nieuwe gemeente Sudwest Fryslan. Boeiende en inspirerende artikelen, prikkelende berichten, vaste rubrieken en columns van vakspecialisten, maken Ondernemend Sudwest Fryslan tot hét business to business magazine bij u in de regio. Het magazine komt to stand, in samenwerking met de gemeente Sudwest Fryslan en de diverse bedrijvenverenigingen binnen de gemeente (Ondernemersfederatie Sudwest fryslan, Handel en Industrie Sneek (HIS), Parkmanagement Bolsward etc. kijk voor meer informatie op http://www.of.nl/overige-uitgaven
Debra Howard has over 20 years of experience in the tech industry leading implementation of best practices and processes. She has extensive expertise analyzing data and administering operations. Her experience includes maintaining sales data and territories, conducting analysis, and resolving issues for customers and vendors. She also has experience managing projects, coordinating events and logistics, and serving as an administrative point of contact.
DSD-INT 2014 - OpenMI Symposium - An OpenMI composition with channel flow and...Deltares
The document discusses a study conducted for a Dutch waterboard to model flooding risks in a polder system under climate change. It used OpenMI to connect hydraulic/hydrological models (SOBEK) with real-time control models (RTC-Tools) to analyze measures to reduce flooding. Joint probability analysis of correlated weather events found higher flood risks than examining events separately. The results provided insights into the water system and effects of climate change and real-time control that can help develop early warning and optimization systems.
The document provides information about summer programs and registration at the North Suburban YMCA from June 13th to August 14th. Members can receive an early bird discount by registering now, while non-members can receive the discount by registering by May 23rd. The regular registration rate begins on May 30th. The YMCA offers various fitness classes, sports programs, camps, and other activities for children, teens, and adults over the summer.
La Eurorregión Alentejo-Algarve-Andalucía fue creada recientemente para potenciar las sinergias y la cooperación entre las regiones. Este cuaderno presenta 63 recetas de tapas y pinchos de las tres regiones con el objetivo de promover el patrimonio gastronómico y cultural compartido, y facilitar el diálogo y las oportunidades de cooperación transfronteriza. La gastronomía mediterránea comparte ingredientes y sabores diversos que unen a los pueblos de la región y contrastan con la globalización an
El documento argumenta que el amor verdadero no busca recompensa sino que se enfoca en la persona amada de forma incondicional y absoluta, sin considerarla un medio para algún fin propio. El amor condicionado no es amor real sino interés.
El documento presenta a un grupo de profesionales inmobiliarios y administrativos que se postulan para cargos directivos en una institución. Cada candidato resume su trayectoria profesional y años de afiliación a la institución, y expresa su compromiso con generar cambios como mejorar el apoyo a los asociados, jerarquizar la actividad, y lograr que la institución sea más representativa y útil. El líder de la lista destaca que lograrán grandes propósitos trabajando unidos.
Este documento discute la importancia de la vitamina D en la infancia y la adolescencia. Explica que la vitamina D se obtiene principalmente a través de la exposición a la luz solar, pero que factores como la edad, pigmentación, estación del año y uso de bloqueador solar afectan la producción de vitamina D. También señala que la deficiencia de vitamina D durante el embarazo y la lactancia puede afectar al feto y al neonato. Finalmente, recomienda suplementar a los lactantes y niños
Test-driven development (TDD) is a software development process where developers first write automated tests that define desired improvements or new functions. They then write code to pass those tests and refactor the new code to acceptable standards. TDD involves writing unit tests, integration tests, and acceptance tests using tools like JUnit, FitNesse, and Cucumber. Practicing TDD can provide benefits like improved code quality, reduced bugs, and increased developer productivity.
An Introduction To Software Development - Test Driven Development, Part 1Blue Elephant Consulting
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/bCp1fbAd56k
Via MoneyBird kunnen ondernemers eenvoudig online facturen maken en versturen. Waarom verdient MoneyBird een Gouden Factuur 2009? Bekijk de presentatie!
Este documento describe el desarrollo de una aplicación web para gestionar el alquiler y control de inventario de equipos de construcción para la empresa ECONSI LTDA. Actualmente, ECONSI maneja esta información de forma manual usando hojas de cálculo y documentos físicos, lo que causa pérdidas de tiempo y posibles errores. La aplicación web permitirá a ECONSI almacenar, procesar y mostrar la información de una manera más eficiente, segura y confiable para mejorar los procesos de la empresa.
Henrob riveting systems are available in pneumatic, battery, hydraulic, and electric servo. Tooling can be configured for manual or automated production, integrated by tool suspension, fixed mounting, fixed automation or robotic.
This two-day small group tour from Rome or Naples includes transportation, guides, meals, and admission to key sites along the Amalfi Coast and surrounding areas. Day 1 includes stops at Mount Vesuvius, Pompeii, Amalfi, Positano, and a night in Sorrento. Day 2 features a trip to the island of Capri and a visit to the Caserta Royal Palace or the abbey at Montecassino before returning to Rome or Naples. Rates start at 325 euros from Rome or 250 euros from Naples. The document provides additional details on inclusions, exclusions, booking terms, and contact information.
Jefa de Servicio de Ordenación Académica, Documentación y Evaluación de CLMMaría Isabel Rodriguez
Presentación TCA/Visita de Estudio Study Visit: "The future begins today" que, en el marco del Programa Erasmus+, tuvo lugar en Botosani (Rumanía) del 9 al 15 de octubre de 2016.
Ondernemend Sudwest Fryslan is hét medium van en voor de ondernemers in de nieuwe gemeente Sudwest Fryslan. Boeiende en inspirerende artikelen, prikkelende berichten, vaste rubrieken en columns van vakspecialisten, maken Ondernemend Sudwest Fryslan tot hét business to business magazine bij u in de regio. Het magazine komt to stand, in samenwerking met de gemeente Sudwest Fryslan en de diverse bedrijvenverenigingen binnen de gemeente (Ondernemersfederatie Sudwest fryslan, Handel en Industrie Sneek (HIS), Parkmanagement Bolsward etc. kijk voor meer informatie op http://www.of.nl/overige-uitgaven
Debra Howard has over 20 years of experience in the tech industry leading implementation of best practices and processes. She has extensive expertise analyzing data and administering operations. Her experience includes maintaining sales data and territories, conducting analysis, and resolving issues for customers and vendors. She also has experience managing projects, coordinating events and logistics, and serving as an administrative point of contact.
DSD-INT 2014 - OpenMI Symposium - An OpenMI composition with channel flow and...Deltares
The document discusses a study conducted for a Dutch waterboard to model flooding risks in a polder system under climate change. It used OpenMI to connect hydraulic/hydrological models (SOBEK) with real-time control models (RTC-Tools) to analyze measures to reduce flooding. Joint probability analysis of correlated weather events found higher flood risks than examining events separately. The results provided insights into the water system and effects of climate change and real-time control that can help develop early warning and optimization systems.
The document provides information about summer programs and registration at the North Suburban YMCA from June 13th to August 14th. Members can receive an early bird discount by registering now, while non-members can receive the discount by registering by May 23rd. The regular registration rate begins on May 30th. The YMCA offers various fitness classes, sports programs, camps, and other activities for children, teens, and adults over the summer.
La Eurorregión Alentejo-Algarve-Andalucía fue creada recientemente para potenciar las sinergias y la cooperación entre las regiones. Este cuaderno presenta 63 recetas de tapas y pinchos de las tres regiones con el objetivo de promover el patrimonio gastronómico y cultural compartido, y facilitar el diálogo y las oportunidades de cooperación transfronteriza. La gastronomía mediterránea comparte ingredientes y sabores diversos que unen a los pueblos de la región y contrastan con la globalización an
El documento argumenta que el amor verdadero no busca recompensa sino que se enfoca en la persona amada de forma incondicional y absoluta, sin considerarla un medio para algún fin propio. El amor condicionado no es amor real sino interés.
El documento presenta a un grupo de profesionales inmobiliarios y administrativos que se postulan para cargos directivos en una institución. Cada candidato resume su trayectoria profesional y años de afiliación a la institución, y expresa su compromiso con generar cambios como mejorar el apoyo a los asociados, jerarquizar la actividad, y lograr que la institución sea más representativa y útil. El líder de la lista destaca que lograrán grandes propósitos trabajando unidos.
Este documento discute la importancia de la vitamina D en la infancia y la adolescencia. Explica que la vitamina D se obtiene principalmente a través de la exposición a la luz solar, pero que factores como la edad, pigmentación, estación del año y uso de bloqueador solar afectan la producción de vitamina D. También señala que la deficiencia de vitamina D durante el embarazo y la lactancia puede afectar al feto y al neonato. Finalmente, recomienda suplementar a los lactantes y niños
Test-driven development (TDD) is a software development process where developers first write automated tests that define desired improvements or new functions. They then write code to pass those tests and refactor the new code to acceptable standards. TDD involves writing unit tests, integration tests, and acceptance tests using tools like JUnit, FitNesse, and Cucumber. Practicing TDD can provide benefits like improved code quality, reduced bugs, and increased developer productivity.
An Introduction To Software Development - Test Driven Development, Part 1Blue Elephant Consulting
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/bCp1fbAd56k
The document describes a Kanban simulation game called Featureban used to teach Kanban principles. It includes an introduction to Mike Burrows as the creator of Featureban and Agendashift founder. The bulk of the document outlines example rounds of playing Featureban covering visualizing work, work in progress limits, metrics, and opportunities for process improvement. It concludes by discussing how Featureban can enable deliberate reappraisal of operational assumptions through simulation.
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
Taking your mobile development process cycle, and the quality of the apps, from good to great.
See how focusing on automated tests can improve app quality, time to market and much more, and learn some best practices to avoid too much trouble getting started
Presented at Xamarin Evolve 2014
The document discusses unit testing and the Visual T# tool. It provides an overview of Pretty Objects and its mission to help OO developers since 1993 through training, consultation, and development tools. It then discusses the history and development of Visual T#, which was created in 2005 to simplify writing unit tests, especially when using mocks. As of 2009, Visual T# has grown to over 22,000 tests and provides a T# programming language and integration with Visual Studio.
This document provides many tips for improving a kanban board, including using different colors to identify different types of work, tracking metrics like lead time and throughput, setting work in progress limits, and ensuring a continuous flow of work through the use of techniques like pull systems and queues. It emphasizes making the board visually clear and focusing on workflow rather than individuals.
La scrittura di test automatici nello sviluppo software è ormai di fondamentale importanza, in quanto permette di:
1. Individuare e correggere molto prima, già in fase di sviluppo, i bug.
2. Sviluppare e testare più velocemente il codice, riducendo di molto le volte in cui bisogna ricorrere al debugger.
3. Essere molto più confidenti che una modifica fatta ad un "vecchio" pezzo di codice non "rompa" tutto il resto e non funzioni più niente (ovviamente scoprendolo quando ormai si è rilasciato in produzione!).
Questi sono "solo" 3 di una quindicina di benefici che sono riuscito ad elencare, ottenibili utilizzando una pratica durante lo sviluppo del codice: la scrittura di test automatici.
Con questo workshop vogliamo introdurre gli sviluppatori ai test automatici, una pratica purtroppo non ancora conosciuta e utilizzata quanto meriterebbe, che può cambiare radicalmente il modo con cui scriviamo il codice, portandolo verso un approccio più "ingegneristico".
Faremo una panoramica sulle varie tipologie di test e sui benefici che possono portare, approfondendo in particolare i test unitari (unit test) e d'integrazione (integration test).
I test automatici sono un argomento trasversale ai linguaggi di programmazione, perciò potrete seguire il workshop a prescindere da quale linguaggio utilizziate.
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/rFt5kdQNKBg
Serverless in production, an experience report (LNUG)Yan Cui
AWS Lambda has changed the way we deploy and run software, but this new serverless paradigm has created new challenges to old problems - how do you test a cloud-hosted function locally? How do you monitor them? What about logging and config management? And how do we start migrating from existing architectures?
In this talk Yan and Scott will discuss solutions to these challenges by drawing from real-world experience running Lambda in production and migrating from an existing monolithic architecture.
This document provides an introduction to C++ programming including problem solving skills, software evolution, procedural and object oriented programming concepts, basic C++ programs, operators, header files, conditional statements, loops, functions, pointers, structures and arrays. It discusses topics such as analyzing problems, planning algorithms, coding solutions, evaluating results, procedural and object oriented paradigms, inheritance, polymorphism, flowcharts, basic syntax examples, and more. Various examples are provided to illustrate key concepts in C++.
MOT (Micro Object Testing) is an approach to testing object-oriented code using small, simple tests. It advocates testing domain objects separately from views. The presentation covered what MOT is, the model-view approach, its 12 principles like frequent testing and example objects, benefits like fewer bugs, and that adopting MOT may require 20% of development time for tests.
An introduction and future of Ruby coverage librarymametter
Ruby's current test coverage feature, coverage.so, only measures line coverage. The speaker proposes expanding it to support function and branch coverage in Ruby 2.5. This would involve updating the coverage.so API to return additional coverage data types and structure the output data in a more extensible way. A preliminary demo applying the new coverage.so to Ruby code showed it can integrate with C code coverage from GCOV and display results in LCOV format. The speaker seeks feedback on the proposed API design to finalize it for Ruby 2.5.
This document discusses using mock objects to make unit tests more effective and efficient. It presents a technique called Automock that can automatically generate mock code for tests based on static and dynamic analysis of the test class and its collaborators. This reduces the effort required to develop and maintain mock-based tests. An evaluation of Automock found that it reduced tester effort on mock code development by 96% and reduced mock code development time by 96% compared to manual mock code development. The automatically generated mock code was also found to have equivalent semantics to manually written mock code based on mutation testing and qualitative analysis.
This document discusses test-driven development (TDD) and how it can help manage technical debt by ensuring code quality through automated testing. It covers TDD principles like writing tests before code, maintaining tests as code evolves, and using tests to drive all code changes. Specific TDD techniques are demonstrated, like starting with failing tests and making tests pass with minimal code changes, then refactoring. The benefits of TDD include early detection of defects, increased confidence in changes, and improved design.
Mock what? What Mock?Learn What is Mocking, and how to use Mocking with ColdFusion testing, development, and continuous integration. Look at Mocking and Stubbing with a touch of Theory and a lot of Examples, including what you could test, and what you should test… and what you shouldn't test (but might be fun).
QCon 2014 - How Shutl delivers even faster with Neo4jVolker Pacher
QCon London 2014 use case about implementing Neo4j at Shutl
In this talk, we touch on the key differences between relational databases and graph databases (which, ironically, are much more relational!), and discuss in detail how we utilise this technology both to model our complex domain but also to gain insights into our data and continually improve our offering.
Serverless in Production, an experience report (cloudXchange)Yan Cui
This document provides advice on preparing serverless applications for production based on the author's experience deploying 170 Lambda functions to production. It covers important areas to consider like testing at the unit, integration, and acceptance levels; setting up CI/CD pipelines; monitoring, logging, and alerting; distributed tracing; security; and configuration management. The author emphasizes the importance of testing end-to-end without mocking external services, setting up production-ready monitoring and metrics dashboards, and choosing deployment frameworks that are tried and tested.
This document provides an introduction to Javascript, covering key topics like how the web works, Javascript concepts like variables and functions, and an overview of the Thinkful web development program. It begins with introductions and discusses formatting for the night, then covers the basics of programming and Javascript, including a brief history of Javascript. Key Javascript concepts like variables, strings, numbers, booleans, and functions are explained. Challenges are provided to practice these concepts. The document concludes with information about the Thinkful program syllabus, mentors, job outcomes, and a special introductory offer.
Test Driven Development (TDD) is a software development practice that involves writing a failing test first, then code to pass that test, and refactoring the code. Behavior Driven Development (BDD) builds on TDD and describes how the end user will interact with the software using scenarios and steps. BDD tools like Cucumber use regular expressions to match steps in scenarios to code.
Serverless in production, an experience report (FullStack 2018)Yan Cui
This document discusses considerations for making serverless applications production ready. It covers topics like testing, monitoring, logging, deployment pipelines, performance optimization, and security. The document emphasizes principles over specific tools, and recommends focusing on shipping working software through practices like embracing external services for testing instead of mocking.
Similar to Advanced Testing on RubyEnRails '09 (20)
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
2. Goals
• Share our experiences about testing
• Make you start thinking critical about testing
like an advanced tester
• Unit testing with RSpec
• Integration testing with Cucumber
6. • Web application written in Ruby on Rails
• Create and send invoices online
• More than 16.000 invoices sent
• Short development cycle: 2 months
• API for web developers
• More info: www.moneybird.com
7.
8. “A donkey does not knock
himself to the same stone twice”
9. It is okay to write code that doesn’t work...
But never ‘cap deploy’ it!
12. Software testing
... is a technical process performed by executing
a product in a controlled environment, following
a specified procedure, with the intent of
measuring the quality of the software product by
demonstrating deviations of the requirements.
13. Unit testing
• Test individual units of code
• A unit is the smallest testable piece of
code: methods of classes
• E.g. methods of controllers and models
15. TDD / BDD
Test before you write a single piece of code
Can be a nice approach, but requires a lot of
discipline and might not fit your needs,
but know how it can help you!
16. Example
Recurring invoices
Calculate the next occurence of a recurring invoice.
Start date Current occurence Next occurence
Jan Febr Mar Apr May
18. RSpec-t
describe "Date calculation" do
it "should return the next month" do
next_occurence(Date.parse('2009-01-01')).should ==
Date.parse('2009-02-01')
end
end
You ain’t testing this,
because it looks too easy
20. Customer: “I want to bill every
last day of the month”
‘2009-01-31’ + 1.month = ‘2009-02-28’
‘2009-02-28’ + 1.month = ‘2009-03-28’
‘2009-01-31’ + 2.months = ‘2009-03-31’
22. Boundary Value Analysis
Find the boundaries of the input and test them
Start Current Next
2009-01-31 2009-01-31 2009-02-28
2009-01-31 2009-02-28 2009-03-31
2009-01-31 2009-03-31 2009-04-30
2009-01-30 2009-01-30 2009-02-28
2009-01-30 2009-02-28 2009-03-30
2009-01-30 2009-03-30 2009-04-30
2009-01-29 2009-01-29 2009-02-28
2009-01-29 2009-02-28 2009-03-29
2009-01-29 2009-03-29 2009-04-29
2009-01-28 2009-01-28 2009-02-28
2009-01-28 2009-02-28 2009-03-28
2009-01-28 2009-03-28 2009-04-28
23. Boundary Value Analysis
Find the boundaries of the input and test them
Start Current Next
2009-01-31 2009-01-31 2009-02-28
2009-01-31 2009-02-28 2009-03-31
2009-01-31 2009-03-31 2009-04-30
2009-01-30 2009-01-30 2009-02-28
2009-01-30 2009-02-28 2009-03-30
2009-01-30 2009-03-30 2009-04-30
2009-01-29 2009-01-29 2009-02-28
2009-01-29 2009-02-28 2009-03-29
2009-01-29 2009-03-29 2009-04-29
2009-01-28 2009-01-28 2009-02-28
2009-01-28 2009-02-28 2009-03-28
2009-01-28 2009-03-28 2009-04-28
24. Boundary Value Analysis
Find the boundaries of the input and test them
Start Current Next
2009-01-31 2009-01-31 2009-02-28
2009-01-31 2009-02-28 2009-03-31
2009-01-31 2009-03-31 2009-04-30
2009-01-30 2009-01-30 2009-02-28
2009-01-30 2009-02-28 2009-03-30
2009-01-30 2009-03-30 2009-04-30
2009-01-29 2009-01-29 2009-02-28
2009-01-29 2009-02-28 2009-03-29
2009-01-29 2009-03-29 2009-04-29
2009-01-28 2009-01-28 2009-02-28
2009-01-28 2009-02-28 2009-03-28
2009-01-28 2009-03-28 2009-04-28
25. Boundary Value Analysis
Find the boundaries of the input and test them
Start Current Next
2009-01-31 2009-01-31 2009-02-28
2009-01-31 2009-02-28 2009-03-31
2009-01-31 2009-03-31 2009-04-30
2009-01-30 2009-01-30 2009-02-28
2009-01-30 2009-02-28 2009-03-30
2009-01-30 2009-03-30 2009-04-30
2009-01-29 2009-01-29 2009-02-28
2009-01-29 2009-02-28 2009-03-29
2009-01-29 2009-03-29 2009-04-29
2009-01-28 2009-01-28 2009-02-28
2009-01-28 2009-02-28 2009-03-28
2009-01-28 2009-03-28 2009-04-28
26. Create tests for all boundary values...
...and improve your code!
27. The solution
def self.calculate_next_occurence(start_date, current_date)
next_date = current_date + 1.month
while start_date.day != next_date.day and
next_date != next_date.end_of_month
next_date = next_date.tomorrow
end
next_date
end
32. Isolate for productivity
• Test isolated units of code, assuring they are working
• No need to bother about it later
• No need to find all edge cases in the user interface:
F5 syndrom
33. Isolate your tests
• Don’t test code that is tested elsewhere
• Only make sure it is used well in the code you’re testing
• The solution: mocks and stubs
34. Mock objects are simulated objects that mimic
the behavior of real objects in controlled ways
A stub is a piece of code used to stand in
for some other programming functionality
41. How to isolate?
def create_invoice(contact)
invoice = Invoice.new
invoice.contact_id = contact.id
invoice.details_attributes =
[{ :description => "RER09", :price => 79 }]
invoice.save
end
class Invoice < ActiveResource::Base
self.site = "https://account.moneybird.com"
end
42. How to isolate?
def create_invoice(contact)
invoice = Invoice.new
invoice.contact_id = contact.id
invoice.details_attributes =
[{ :description => "RER09", :price => 79 }]
invoice.save
end
class Invoice < ActiveResource::Base
self.site = "https://account.moneybird.com"
end
ActiveResource is tested elsewhere +
very slow to test
43. describe "MoneyBird API" do
it "should create the invoice" do
create_invoice(contact_mock).should be_true
end
end
44. describe "MoneyBird API" do
it "should create the invoice" do
contact_mock = mock(:contact)
contact_mock.should_receive(:id).and_return(3)
create_invoice(contact_mock).should be_true
end
end
45. describe "MoneyBird API" do
it "should create the invoice" do
Invoice.should_receive(:new).and_return(invoice_mock)
contact_mock = mock(:contact)
contact_mock.should_receive(:id).and_return(3)
create_invoice(contact_mock).should be_true
end
end
46. describe "MoneyBird API" do
it "should create the invoice" do
invoice_mock = mock(:invoice)
invoice_mock.stub!(:contact_id=)
invoice_mock.stub!(:details_attributes=)
invoice_mock.should_receive(:save).and_return(true)
Invoice.should_receive(:new).and_return(invoice_mock)
contact_mock = mock(:contact)
contact_mock.should_receive(:id).and_return(3)
create_invoice(contact_mock).should be_true
end
end
49. Isolation
Isolated A B
Not isolated A B
Double
=
Extra test work +
maintenance work!
50. What to test?
Everything!
But never too much!! Be critical
51. Downside of testing
• Every test gives overhead
• Testing the obvious takes time
• Ruby library, CRUD controllers
52. Downside of testing
• Every test gives overhead
• Testing the obvious takes time
• Ruby library, CRUD controllers
But what if suddenly:
BigDecimal("10.03").to_f != 10.03
54. RSpec
• All business logic in models
• Models tested with RSpec
• Basic data model in fixtures
55. Fixtures?
• Models make use of the database
• Sometimes data in de database is needed
for the model to work
• Fixtures are easy to manage on the
filesystem (+ version control)
• Fixtures can be used for bootstrapping
application: rake db:fixtures:load
56. first_contact:
company: bluetools
name: Edwins company
contact_name: Edwin Vlieg
address1: Street 82
zipcode: 7541 XA
city: Enschede
country: NL
send_method: mail
created_at: <%= 60.days.ago.to_s :db %>
contact_hash: 1
second_contact:
company: bluetools
name: BlueTools B.V.
address1: Postbus 123
zipcode: 7500EA
city: Enschede
country: NL
send_method: post
contact_hash: 2
57. first_contact:
company: bluetools
Unique identifier for
name: Edwins company ‘row’ in database.
contact_name: Edwin Vlieg Don’t set the id column!!
address1: Street 82
zipcode: 7541 XA
city: Enschede
country: NL
send_method: mail
created_at: <%= 60.days.ago.to_s :db %>
contact_hash: 1
second_contact:
company: bluetools
name: BlueTools B.V.
address1: Postbus 123
zipcode: 7500EA
city: Enschede
country: NL
send_method: post
contact_hash: 2
58. first_contact:
company: bluetools
Unique identifier for
name: Edwins company ‘row’ in database.
contact_name: Edwin Vlieg Don’t set the id column!!
address1: Street 82
zipcode: 7541 XA
city: Enschede
country: NL
send_method: mail
created_at: <%= 60.days.ago.to_s :db %>
contact_hash: 1
second_contact:
company: bluetools
name: BlueTools B.V. Yes, you can use Ruby!
address1: Postbus 123
zipcode: 7500EA
city: Enschede
country: NL
send_method: post
contact_hash: 2
59. first_contact:
company: bluetools
Unique identifier for
name: Edwins company ‘row’ in database.
contact_name: Edwin Vlieg Don’t set the id column!!
address1: Street 82
zipcode: 7541 XA
city: Enschede
country: NL
send_method: mail
created_at: <%= 60.days.ago.to_s :db %>
contact_hash: 1
second_contact:
company: bluetools
name: BlueTools B.V. Yes, you can use Ruby!
address1: Postbus 123
zipcode: 7500EA
city: Enschede
country: NL
send_method: post
contact_hash: 2 Reference to unique identifier
in companies table
67. Feature: Homepage
Visitors at the homepage should get clear information about
our product and be able to create an account
Scenario: Create a new free account
When I visit the homepage
And I follow "pricing"
And I follow "Signup"
And I fill in the following:
| Company name | Test company |
| Your fullname | Edwin Vlieg |
| E-mail | test@test.com |
| company_domain | testcompany |
| Username | Edwin |
| Password | testtest |
| Password confirmation | testtest |
And I press "Create your account"
Then a company with name "Test company" should exist
And an e-mail with subject "Welcome to MoneyBird" should have been sent
And I should see "Thanks for signing up!"
68. Cucumber stories
• Each line is parsed and matched on a step
• Step contains actual execution of code
• 3 types of steps: Given, When and Then.
69. homepage.feature
When I follow "Signup"
webrat_steps.rb
When /^I follow "([^"]*)"$/ do |link|
click_link(link)
end
72. Webrat
• Webrat gives you control over the user
interface (almost) like an end user has
• But doesn’t emulate a browser like
Selenium or Watir (= no JavaScript)
73. Web-what?
Web browser
Apache
Mongrel / Passenger Webrat
ActionController
74. When I follow "Signup"
1. Locate the link on the page
<a href="/signup">Signup</a>
<a href="/signup" title="Signup"><img src="..." /></a>
<a href="/signup" id="Signup" title="Click to signup"><img src="..."></a>
75. When I follow "Signup"
1. Locate the link on the page
<a href="/signup">Signup</a>
<a href="/signup" title="Signup"><img src="..." /></a>
<a href="/signup" id="Signup" title="Click to signup"><img src="..."></a>
76. When I follow "Signup"
1. Locate the link on the page
<a href="/signup">Signup</a>
<a href="/signup" title="Signup"><img src="..." /></a>
<a href="/signup" id="Signup" title="Click to signup"><img src="..."></a>
2. ‘Click’ the link
Grab the ‘href’ attribute from the element and feed it to the
Rails application. HTML is replaced: next search of element
will be in new page.
77. Cucumber & Webrat
Cucumber comes with default Webrat steps to:
• Visit pages
• Click links
• Fill in forms
• Submit forms
• Assert the content of the page
79. Testability
Webrat doesn’t execute JavaScript, so write
unobtrusive JavaScript to keep it testable.
HTML
<a href="/popup.html" id="open">Open popup</a>
Link opens popup, even without JavaScript
80. Testability
Webrat doesn’t execute JavaScript, so write
unobtrusive JavaScript to keep it testable.
HTML
<a href="/popup.html" id="open">Open popup</a>
Link opens popup, even without JavaScript
JavaScript
$('open').click(...);
JavaScript adds extra behaviour to link
81. Testability
Webrat doesn’t execute JavaScript, so write
unobtrusive JavaScript to keep it testable.
HTML
<a href="/popup.html" id="open">Open popup</a>
Link opens popup, even without JavaScript
JavaScript
$('open').click(...);
Rails 3
JavaScript adds extra behaviour to link
82. Common steps
Database steps:
Given I've created an invoice with invoice id "2008-0100"
Then a contact with name "Test company" should exist
Mailer steps:
Then an e-mail with subject "Invoice 2008-0100 from
Bluetools" should have been sent
Full source: http://pastie.org/667777
83. Database steps
Given I've created an invoice with invoice id "2008-0100"
Should create a new invoice with invoice id
“2008-0100”, but what about the rest of the attributes?
84. FactoryGirl
• Makes it easy to create records in the
database
• Define default attributes for a record:
Factory.define :contact do |c|
c.company_id { |c| Company.find_by_domain($subdomain).id }
c.name "Test company"
c.contact_name "Edwin Vlieg"
c.address1 "Hengelosestraat 538"
c.zipcode "7500AG"
c.city "Enschede"
c.country "NLD"
c.email "test@moneybird.nl"
end
85. FactoryGirl
• Easy instantiation of records in database:
Factory(:contact, :name => "Foobar")
Factory name Override default
attributes
More information:
http://github.com/thoughtbot/factory_girl
86. Downside
When I follow "Signup"
What if we want to change “Signup”
to “Create account”?
Test breaks, but application is functionally correct.
89. Don’t stare blindly at TDD or BDD
Creating mesmerizing products needs creativity,
this doesn’t always fit into the ‘test-first’ approach,
but know the ideas behind the approaches,
so you can use them when needed!
90. Creating a good test environment takes time:
it just doesn’t end with RSpec or Cucumber
Mocks, stubs, fixtures and factories are your friends!