Beyond Agile Testing to Lean Development — Rakuten Technology ConferenceJames Coplien
The document discusses moving beyond traditional agile testing approaches to lean testing. It argues that most unit tests are unnecessary and test scenarios that will never occur. It promotes exploratory and experience-based testing over unit testing alone. The document also advocates for shipping tests with code to catch bugs in the field, using assertions to make code more readable, and taking a lean approach where fixing testing processes is prioritized over fixing individual bugs.
These are the slides from my well-received keynote at the Finnish Software Testing Board's FiSTB 2014 conference, held in Helsinki on 25 September 2014. This was a great event with many fantastic talks — see more at http://testingassembly.fistb.fi.
It is widely accepted that AI is the future of testing. However, because a fault lies in the eye of the beholder, it is pretty unclear how to apply AI to testing—called the Oracle problem.
There are literally thousands of UI test automation tools. But due to high efforts for creation and maintenance, together with the brittleness and unreliability of the resulting tests, testing often remains a manual task (confirming the testing pyramid). Meanwhile Software testing accounts for 30%-40% of the budget of a typical software project.
However, there is a way to circumvent the oracle problem and use AI to not only find technical errors (i.e. crashes), but to generate tests for business functionality—autonomous automation. See how AI can be trained to generate tests that are optimized towards several goals and are even better than manually created ones.
Visit the future of testing and see how AI can help us create better software!
Meetup of test mini conference on ai in testingKai Lepler
this presentation is intended to start thinking about the benefits AI can bring to the testing profession.
Just randomly replacing human brains with machines will not do the trick...
QA Fest 2017. Jeremias Rößler. Applying AI to testingQAFest
If the future of testing is AI, I will show you how.
Various automation tools are available, but due to high creation and maintenance efforts for tests, GUI-Testing is still mainly a manual task. Meanwhile overall testing effort has risen to make up 30% of a typical software budget. Is crowd-testing the answer? What if we could have automated test cases be created automatically?
Monkey Testing is not a new idea. But combined with a manually trainable AI and an innovative new testing approach (dubbed ""difference testing""), we can now not only have the monkey search for technical bugs (i.e. crashes) but generate functional test cases that are optimized towards several goals and are even better than manually created ones.
Visit the future of testing and see how AI can help us create better software!
This document discusses how AI can be used to assist with software testing and development. It suggests that AI may one day be able to understand complex problems, automatically generate error-free code, and even replace testers. However, AI tools also need to be intuitive, easy to use, and help improve workflows. The document promotes using AI to enhance activities like automated regression testing and program compilation. Overall, the document explores the potential for AI to both automate certain testing tasks and help testers work more efficiently.
Recheck-web ( https://github.com/retest/recheck-web) is a free Open Source test automation tool on basis of Selenium. It implements Golden Master testing, which makes for
– easy to create and maintain tests
– that are more complete
– and less fragile.
And on top of that it can make your test almost unbreakable and elements easy to address with a constant virtual id.
Learn how recheck-web works and train hands-on with some examples.
https://www.hustef.hu/speakerslist2019/speaker_dr-jeremias-rosler/
Automating Strategically or Tactically when TestingAlan Richardson
"Test Automation" can be viewed as strategic or tactical.
This presentation describes reasons for making this distinction and how you know if you are working strategically or tactically when you automate as part of your test approach.
Exactpro FinTech Webinar - Global Exchanges Test OraclesIosif Itkin
The document discusses test oracles, which are mechanisms for determining whether a test has passed or failed. It describes how oracles work by comparing the actual output of a system under test to the expected output determined by the oracle. Several types of oracles are discussed, including hand-crafted oracles, specification-based oracles, and independent implementation oracles. The document emphasizes that all oracles are partial, as it is impossible to create a perfect oracle that evaluates all possible outputs of a system.
This document provides 5 insights to revolutionize software testing: 1) There are two types of code (experience and infrastructure) that require different testing approaches; 2) Testing should focus on capabilities rather than features; 3) Focus on testing techniques rather than individual test cases; 4) Testing should improve development rather than just find bugs; 5) Testing needs innovation to engage talent and avoid repetitive work. The author advocates shifting testing strategy to higher levels of abstraction and partnering with development to build quality in from the start.
Lightening Talk I gave at Inaka in May 2014.
This is sort of the continuation of my previous iOS TDD talk.
Since TDD and DI go quite hand in hand and they are both extend concepts to learn in one shot, I had to prepare a completely separated talk for spreading to my fellows the DI knowledge I had acquired.
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
This document discusses automated testing in Flex. It begins by explaining why automated testing is important, such as reducing costs from software errors and allowing developers to change code without fear of breaking other parts of the project. It then covers topics like writing unit tests, using theories and data points to test over multiple values, and writing integration tests. The document emphasizes that writing testable code is key, and provides some principles for doing so, such as separating construction from application logic and using interfaces. It also discusses using fakes, stubs and mocks to isolate units for testing.
The document discusses pushing functional testing further by exploring the technology used to build systems. It presents models for technical testing that involve modeling, observing, interrogating, and manipulating systems at different levels. Examples are given of technical testing approaches for a Java application and web application. The document notes overlap between technical testing and security testing. It provides suggestions for testers to increase their technical abilities, such as learning about technologies through books, online courses, and hands-on experience.
Software Testing Terms Defined. Answering the FAQ "What is Regression Testing?"
- What is Regression Testing?
- How to do Regression Testing?
- Why do we do Regression Testing?
- How to re-think Regression Testing in terms of Risk?
The document discusses exploratory testing in an agile context. It describes exploratory testing as simultaneously learning about a system while designing and executing tests, using feedback from the last test to inform the next. It also discusses that agile teams do both checking of requirements through automated tests as well as exploring to discover unintended consequences. Finally, it provides an example charter for exploratory testing of editing user profiles on a system.
1) Unit testing involves writing test code to validate the functionality of individual units or components in isolation from the rest of the system. This helps identify bugs and ensures code works as intended even when other code changes.
2) When refactoring code, unit tests allow developers to make many small incremental changes safely without using a debugger since the tests will fail if changes break existing functionality. Adding new code is riskier as tests need to be added and may initially break existing tests.
3) Key principles of unit testing include single responsibility, dependency injection to isolate units, and following the "FIRST" criteria of tests being fast, isolated, repeatable, self-validating, and timely. Tests should validate expected behavior
Joy of Coding Conference 2019 slides - Alan RichardsonAlan Richardson
Adventures in Testing, Programming, Teaching, Automating and Marketing
When you already know how to code, it's easy to forget how hard some of that learning was... until you have to teach people. And if all you've ever built are applications, you don't know really know the nuances of writing code to automate them. And if you've written the code but never had to market the applications then you've not really experienced the full joy of coding.
In this presentation Alan will revisit many of his past projects to identify lessons learned. Lessons from: writing commercial and open source tools, multi-user adventure games, REST APIs, test automation, automating applications to make them do things they are not supposed to do, and coding for technical marketing.
Some lessons we will learn:
* The 'install' is the hardest part
* Writing frameworks is too much fun and should be banned
* Applications are just "code calling other libraries"
* Writing a Text Adventure s the most fun and educational thing you'll ever code
* The Dangers of knowing how to code
We will also learn the dangers of knowing how to code and discover how our coding skills can give us an edge, in business and online live in general, if we choose to harness our skills to improve our daily experiences.
# Automating Pragmatically
Testival Meetup 20190604
## Alan Richardson
- EvilTester.com
- @EvilTester
- compendiumdev.co.uk
- digitalonlinetactics.com
---
~~~~~~~~
Title: Automating Pragmatically
The online discussions of automating can leave me confused.
- Should you automate through the GUI?
- Should GUI automating be banned?
- Do all testers need to code? Is automating part of testing
or not?
- Do we need to automate to get a job?
In this short session Alan will discuss automating
from a pragmatic and contextual position and
share how he thinks about automating.
~~~~~~~~
The document discusses various .NET debugging techniques, including:
1. The importance of debugging and the tools available for debugging .NET applications, such as Visual Studio and Debugging Tools for Windows.
2. Basic debugging tasks like setting breakpoints, stepping through code, and examining variables and call stacks.
3. Advanced techniques like debugging managed code, threads, and memory issues.
How to Deliver the Right Software (Specification by example)Asier Barrenetxea
Talk about Specification by Example. What's the problems it tries to tackle and how to solve them.
I gave this talk at findmypast.com on a "lunch and learn" weekly meeting for the company.
This is a new version of my previous presentation about "Specification by example"
http://www.slideshare.net/AsierBarrenetxea1/specification-by-example-33594438
This document outlines Alan Richardson's webinar on technical testing. It discusses why technical testing is important given increasing technical complexity. It describes what technical testing entails, such as understanding databases and code. The document provides examples of technical testing concepts like boundary value analysis. It also discusses how to identify technical testing and what barriers may exist, emphasizing personal motivation. Finally, it suggests that with the right approach, anyone can learn technical testing and offers resources for further reading.
The document discusses automating exploratory testing by creating an app crawler that can emulate user interactions, test across different platforms, languages, resolutions and orientations. Some key points:
- Automated exploratory testing is needed due to shorter release cycles and less manual testing time.
- The author created an app crawler that can capture elements, images, errors, exceptions, performance data and replay tests across platforms.
- Challenges include handling authentication, detecting unique locators, and rescuing apps that get stuck.
- The crawler detects languages, monitors logs and exceptions, and uses Applitools for image validation to further automate the process.
- The goal is to help fill quality gaps
Test Driven Development (TDD) is a software development process that involves writing tests before code. The TDD cycle involves three steps: 1) writing a failing test for the next piece of functionality, 2) writing just enough code to pass that test, and 3) refactoring the new and old code. TDD provides benefits like validated systems, code coverage, enabling refactoring, and documenting behavior. It promotes writing isolated, modular unit tests and designing code in a test-driven manner. While TDD has benefits, potential pitfalls include focusing on coverage over quality, neglecting refactoring steps, and writing overly broad tests.
Your Automated Execution Does Not Have to be FlakyAlan Richardson
Alan Richardson will present on how to remove intermittent failures from automated test execution. Common causes of intermittency include lack of synchronization, parallel test interference, long running tests, difficulty automating the system under test, outdated tools, uncontrolled test preconditions, incorrect assumptions in assertions, and uncontrolled data. Richardson will provide examples of each cause and recommend solutions such as adding synchronization, isolating test environments, controlling data, and investigating failures rather than assuming tests are "flaky". The goal is to convince attendees that intermittent failures are a result of unresolved issues, not flaws in tests, and can be addressed through proper testing practices.
No, it is not necessarily a bug. The code is skipping file names that start with a period, which is common for hidden or system files in some operating systems. Without more context on the intended behavior, this alone does not indicate a bug.
Effective Software Testing for Modern Software DevelopmentAlan Richardson
The document discusses modern software development and testing. It argues that testing is not a separate phase but rather a process that is customized and integrated into the overall development system to mitigate risks. Modern development processes build in safety controls like automated testing, but there are still risks to address like integration testing and exploring edge cases. The document advocates adapting methods to people and focusing testing on risks and uncertainties rather than definitions or roles.
Unit testing in Android involves testing individual units or components of an Android application to verify their correctness. This is done during development by the developer. The document discusses what unit testing involves, provides examples of unit tests for a number validator class and interval overlapping detector class, and discusses test doubles, constraints of unit testing in Android, where to unit test in an Android app, and test-driven development.
Ever tried doing Test First Test Driven Development? Ever failed? TDD is not easy to get right. Here's some practical advice on doing BDD and TDD correctly. This presentation attempts to explain to you why, what, and how you should test, tell you about the FIRST principles of tests, the connections of unit testing and the SOLID principles, writing testable code, test doubles, the AAA of unit testing, and some practical ideas about structuring tests.
Automating Strategically or Tactically when TestingAlan Richardson
"Test Automation" can be viewed as strategic or tactical.
This presentation describes reasons for making this distinction and how you know if you are working strategically or tactically when you automate as part of your test approach.
Exactpro FinTech Webinar - Global Exchanges Test OraclesIosif Itkin
The document discusses test oracles, which are mechanisms for determining whether a test has passed or failed. It describes how oracles work by comparing the actual output of a system under test to the expected output determined by the oracle. Several types of oracles are discussed, including hand-crafted oracles, specification-based oracles, and independent implementation oracles. The document emphasizes that all oracles are partial, as it is impossible to create a perfect oracle that evaluates all possible outputs of a system.
This document provides 5 insights to revolutionize software testing: 1) There are two types of code (experience and infrastructure) that require different testing approaches; 2) Testing should focus on capabilities rather than features; 3) Focus on testing techniques rather than individual test cases; 4) Testing should improve development rather than just find bugs; 5) Testing needs innovation to engage talent and avoid repetitive work. The author advocates shifting testing strategy to higher levels of abstraction and partnering with development to build quality in from the start.
Lightening Talk I gave at Inaka in May 2014.
This is sort of the continuation of my previous iOS TDD talk.
Since TDD and DI go quite hand in hand and they are both extend concepts to learn in one shot, I had to prepare a completely separated talk for spreading to my fellows the DI knowledge I had acquired.
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
This document discusses automated testing in Flex. It begins by explaining why automated testing is important, such as reducing costs from software errors and allowing developers to change code without fear of breaking other parts of the project. It then covers topics like writing unit tests, using theories and data points to test over multiple values, and writing integration tests. The document emphasizes that writing testable code is key, and provides some principles for doing so, such as separating construction from application logic and using interfaces. It also discusses using fakes, stubs and mocks to isolate units for testing.
The document discusses pushing functional testing further by exploring the technology used to build systems. It presents models for technical testing that involve modeling, observing, interrogating, and manipulating systems at different levels. Examples are given of technical testing approaches for a Java application and web application. The document notes overlap between technical testing and security testing. It provides suggestions for testers to increase their technical abilities, such as learning about technologies through books, online courses, and hands-on experience.
Software Testing Terms Defined. Answering the FAQ "What is Regression Testing?"
- What is Regression Testing?
- How to do Regression Testing?
- Why do we do Regression Testing?
- How to re-think Regression Testing in terms of Risk?
The document discusses exploratory testing in an agile context. It describes exploratory testing as simultaneously learning about a system while designing and executing tests, using feedback from the last test to inform the next. It also discusses that agile teams do both checking of requirements through automated tests as well as exploring to discover unintended consequences. Finally, it provides an example charter for exploratory testing of editing user profiles on a system.
1) Unit testing involves writing test code to validate the functionality of individual units or components in isolation from the rest of the system. This helps identify bugs and ensures code works as intended even when other code changes.
2) When refactoring code, unit tests allow developers to make many small incremental changes safely without using a debugger since the tests will fail if changes break existing functionality. Adding new code is riskier as tests need to be added and may initially break existing tests.
3) Key principles of unit testing include single responsibility, dependency injection to isolate units, and following the "FIRST" criteria of tests being fast, isolated, repeatable, self-validating, and timely. Tests should validate expected behavior
Joy of Coding Conference 2019 slides - Alan RichardsonAlan Richardson
Adventures in Testing, Programming, Teaching, Automating and Marketing
When you already know how to code, it's easy to forget how hard some of that learning was... until you have to teach people. And if all you've ever built are applications, you don't know really know the nuances of writing code to automate them. And if you've written the code but never had to market the applications then you've not really experienced the full joy of coding.
In this presentation Alan will revisit many of his past projects to identify lessons learned. Lessons from: writing commercial and open source tools, multi-user adventure games, REST APIs, test automation, automating applications to make them do things they are not supposed to do, and coding for technical marketing.
Some lessons we will learn:
* The 'install' is the hardest part
* Writing frameworks is too much fun and should be banned
* Applications are just "code calling other libraries"
* Writing a Text Adventure s the most fun and educational thing you'll ever code
* The Dangers of knowing how to code
We will also learn the dangers of knowing how to code and discover how our coding skills can give us an edge, in business and online live in general, if we choose to harness our skills to improve our daily experiences.
# Automating Pragmatically
Testival Meetup 20190604
## Alan Richardson
- EvilTester.com
- @EvilTester
- compendiumdev.co.uk
- digitalonlinetactics.com
---
~~~~~~~~
Title: Automating Pragmatically
The online discussions of automating can leave me confused.
- Should you automate through the GUI?
- Should GUI automating be banned?
- Do all testers need to code? Is automating part of testing
or not?
- Do we need to automate to get a job?
In this short session Alan will discuss automating
from a pragmatic and contextual position and
share how he thinks about automating.
~~~~~~~~
The document discusses various .NET debugging techniques, including:
1. The importance of debugging and the tools available for debugging .NET applications, such as Visual Studio and Debugging Tools for Windows.
2. Basic debugging tasks like setting breakpoints, stepping through code, and examining variables and call stacks.
3. Advanced techniques like debugging managed code, threads, and memory issues.
How to Deliver the Right Software (Specification by example)Asier Barrenetxea
Talk about Specification by Example. What's the problems it tries to tackle and how to solve them.
I gave this talk at findmypast.com on a "lunch and learn" weekly meeting for the company.
This is a new version of my previous presentation about "Specification by example"
http://www.slideshare.net/AsierBarrenetxea1/specification-by-example-33594438
This document outlines Alan Richardson's webinar on technical testing. It discusses why technical testing is important given increasing technical complexity. It describes what technical testing entails, such as understanding databases and code. The document provides examples of technical testing concepts like boundary value analysis. It also discusses how to identify technical testing and what barriers may exist, emphasizing personal motivation. Finally, it suggests that with the right approach, anyone can learn technical testing and offers resources for further reading.
The document discusses automating exploratory testing by creating an app crawler that can emulate user interactions, test across different platforms, languages, resolutions and orientations. Some key points:
- Automated exploratory testing is needed due to shorter release cycles and less manual testing time.
- The author created an app crawler that can capture elements, images, errors, exceptions, performance data and replay tests across platforms.
- Challenges include handling authentication, detecting unique locators, and rescuing apps that get stuck.
- The crawler detects languages, monitors logs and exceptions, and uses Applitools for image validation to further automate the process.
- The goal is to help fill quality gaps
Test Driven Development (TDD) is a software development process that involves writing tests before code. The TDD cycle involves three steps: 1) writing a failing test for the next piece of functionality, 2) writing just enough code to pass that test, and 3) refactoring the new and old code. TDD provides benefits like validated systems, code coverage, enabling refactoring, and documenting behavior. It promotes writing isolated, modular unit tests and designing code in a test-driven manner. While TDD has benefits, potential pitfalls include focusing on coverage over quality, neglecting refactoring steps, and writing overly broad tests.
Your Automated Execution Does Not Have to be FlakyAlan Richardson
Alan Richardson will present on how to remove intermittent failures from automated test execution. Common causes of intermittency include lack of synchronization, parallel test interference, long running tests, difficulty automating the system under test, outdated tools, uncontrolled test preconditions, incorrect assumptions in assertions, and uncontrolled data. Richardson will provide examples of each cause and recommend solutions such as adding synchronization, isolating test environments, controlling data, and investigating failures rather than assuming tests are "flaky". The goal is to convince attendees that intermittent failures are a result of unresolved issues, not flaws in tests, and can be addressed through proper testing practices.
No, it is not necessarily a bug. The code is skipping file names that start with a period, which is common for hidden or system files in some operating systems. Without more context on the intended behavior, this alone does not indicate a bug.
Effective Software Testing for Modern Software DevelopmentAlan Richardson
The document discusses modern software development and testing. It argues that testing is not a separate phase but rather a process that is customized and integrated into the overall development system to mitigate risks. Modern development processes build in safety controls like automated testing, but there are still risks to address like integration testing and exploring edge cases. The document advocates adapting methods to people and focusing testing on risks and uncertainties rather than definitions or roles.
Unit testing in Android involves testing individual units or components of an Android application to verify their correctness. This is done during development by the developer. The document discusses what unit testing involves, provides examples of unit tests for a number validator class and interval overlapping detector class, and discusses test doubles, constraints of unit testing in Android, where to unit test in an Android app, and test-driven development.
Ever tried doing Test First Test Driven Development? Ever failed? TDD is not easy to get right. Here's some practical advice on doing BDD and TDD correctly. This presentation attempts to explain to you why, what, and how you should test, tell you about the FIRST principles of tests, the connections of unit testing and the SOLID principles, writing testable code, test doubles, the AAA of unit testing, and some practical ideas about structuring tests.
There's no shortage of cowboy code-slingers out there in the PHP range. Heck, I used to be one...! You know the types: buckin' bronco projects and spaghetti western logic, firing their guns as many times as they've got bullets... There's a better way, my friends, and it's not just for the yeller-bellied and quail-hearted. Sit by the fire a spell and learn a little about Unit Testing with PHPUnit (or any of them xUnits): what it is, how to do it, and how to sell it to your boss...! 'Cause we all know every cowpoke answers to the man in the big house, after all.
1. Create test classes for each item type (book, food, medical, imported, etc.) and calculate tax amounts
2. Write test methods that pass sample baskets of items to the calculation method and assert the expected tax and total amounts are returned
3. Include test cases that validate tax rounding is performed correctly for different tax rates and item prices
4. Write exception tests to ensure invalid item types or negative prices throw the expected exceptions
The document discusses various aspects of unit testing including definitions, benefits, naming standards, and best practices. It provides definitions for terms like error, defect, failure. It outlines the benefits of unit testing like finding bugs early, enabling code refactoring. It discusses what should be tested like boundaries, error conditions. It also provides examples of good test names and guidelines for structuring and naming unit tests.
The document discusses various aspects of unit testing including definitions, benefits, naming standards, and best practices. It provides definitions for terms like error, defect, failure. It outlines the benefits of unit testing like finding bugs early, enabling code refactoring. It discusses what should be tested like boundaries, error conditions. It also provides examples of good test names and guidelines for structuring and naming unit tests.
The document discusses unit testing and provides guidance on effective unit testing practices. It defines key terms like error, defect, and failure. It outlines the benefits of unit testing like finding defects earlier and maintaining stable code. It discusses naming conventions and frameworks for unit tests. It provides examples of different types of unit tests and guidelines for writing good unit tests that are independent, fast, and test all functionality. The document emphasizes testing boundary conditions and errors as well as documenting test cases.
Unit testing involves writing code to test individual units or components in isolation to determine if they are functioning as expected. Writing tests first, before production code (test-driven development or TDD) can lead to higher quality code, easier debugging, and increased confidence in changes. The TDD process involves writing a failing test, then code to pass the test, and refactoring code as needed. To apply TDD effectively, tests should focus on logical code, avoid duplications, and isolate dependencies to keep tests simple and maintainable. Both server-side and client-side code need testing, focusing on things like business rules, view models, repositories, and UI logic.
This document discusses software testing and Android testing. It covers unit testing with JUnit and mock objects in Android. Unit tests isolate classes and replace dependencies with mocks. The document provides examples of writing unit tests for an EmailValidator class. It also discusses instrumented tests and testing asynchronous functions. Best practices like writing testable code and case studies are presented.
This document discusses various techniques for rapid application testing (RAT) such as unit testing, integration testing, smoke testing, system testing, regression testing, performance testing, and test-driven development. It emphasizes automating test plans and test execution to allow tests to be run multiple times for little additional cost. The goal of testing is to balance cost and risk by reusing automated tests that are fast and good predictors of issues while throwing more tests at critical areas.
The document discusses unit testing and provides guidance on how to effectively implement unit testing. It defines unit testing as testing individual units or components of software code to verify they are functioning as intended. The document outlines best practices for unit testing such as writing test cases that cover valid, invalid, and boundary conditions. It also recommends testing frameworks like JUnit that can automate running test cases. Overall, the document advocates for developing a rigorous unit testing strategy and practicing habits like writing tests first and continuously running tests to improve code quality.
This document provides tips and best practices for unit testing code. It discusses why unit testing is important, such as guarding against bugs and enabling refactoring. It also covers different types of testing and recommends a test-first approach using test-driven development. Specific tips include breaking dependencies through dependency injection, using fakes/mocks to replace external dependencies, and following principles like single responsibility to make code more testable.
The document discusses test driven development (TDD). It defines TDD and describes the TDD cycle of writing a test, code, and refactoring. It outlines different approaches to TDD like outside-in and inside-out. It discusses the benefits of TDD like aiding design, promoting refactoring, and instilling confidence. It also covers test smells, misconceptions about TDD, and tools used for TDD.
Unit testing and end-to-end (E2E) testing are important types of automated testing for JavaScript applications. Unit tests focus on testing individual functions or components in isolation to catch bugs, while E2E tests ensure that user flows work as expected by interacting with the application through a browser. The presentation discussed setting up testing frameworks like Karma and Jasmine for unit testing and Protractor for E2E testing. It also covered writing testable code, handling dependencies through dependency injection, and selecting elements and interacting with them during E2E tests.
Automated verification is becoming increasingly important. Getting a product from idea to customer as fast as possible in a Continuous Delivery, or a Deployment pipeline is crucial in more businesses than ever before. But how do we get a product through that pipe line, with high quality? Kristian will talk about how automated verification can get you there.
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...TEST Huddle
We often claim the purpose of testing is to verify that software meets a desired level of quality. Frequently, the term “testing” is associated with checking for functional correctness. However, in large, complex software systems with an established user-base, it is also important to verify system constraints such as backward compatibility, reliability, security, accessibility, usability. Kim Herzig from Microsoft explores these issues with the latest webinar on test Huddle.
Automated and agile testing techniques and tools can help teams get software to a "DONE" state. Key aspects include:
- Writing automated unit, integration, and other tests to validate functionality and catch bugs early. This includes techniques like test-driven development.
- Leveraging continuous integration to run tests automatically on each code change to prevent regressions and catch issues quickly.
- Maintaining a balance of test types from unit to acceptance level while focusing on automation to make testing efficient and free up humans for more investigative tasks.
This document discusses how to make software more green and environmentally friendly. It defines green software as software that is carbon efficient, energy efficient, hardware efficient, and carbon aware. It provides recommendations for various roles within an organization on driving green initiatives, including focusing on efficiency for CxOs, architects, infrastructure engineers, and developers. Examples include optimizing resource usage, using public clouds effectively, prioritizing equipment standardization, and developing applications that can run more efficiently.
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...Rakuten Group, Inc.
The document proposes a knowledge-driven query expansion approach for question answering (QA)-based product attribute extraction. It trains QA models using attribute-value pairs from training data as knowledge, while mimicking imperfect knowledge at test time through techniques like knowledge dropout and token mixing. This helps induce better query representations, especially for rare and ambiguous attributes. Experiments on a cleaned product attribute dataset show the proposed approach with all techniques outperforms baseline methods in both macro and micro F1 scores.
This document summarizes Andrew Hajinikitas' work developing Rakuten's private cloud infrastructure. It describes the key components of Rakuten's infrastructure including metal instances, microservers, and GPU servers. It provides details on Rakuten's software stack and their goals to expand managed services. Currently, Rakuten operates 9 data centers in Japan and overseas providing around 30,000 servers to support their ecosystem. Their future plans include extending network self-service, making GPU resources available as a platform service, and improving efficiency through optimized hardware selection.
The document discusses the Travel & Leisure Platform Dept and its responsibilities related to data and platform management. It provides an overview of the technical stack including private/public clouds, databases, containers, and automation/monitoring tools. It then discusses recent projects involving business continuity, containerization, alert integration, and automation. Finally, it describes open roles for a DBA and DevOps position and their responsibilities related to database provisioning, backup/recovery, infrastructure as code, and providing platforms and tools for developers.
This presentation introduces the OWASP Top 10:2021.
It explains how to look at the data related to OWASP Top 10:2021, and provides detailed explanations of items with distinctive data. It also introduces the OWASP Project related to each item.
Gora API Group technology provides a microservices architecture and APIs for Rakuten's golf course reservation system, improving the user experience and increasing customer loyalty and annual golf rounds. The architecture migrates the monolithic reservation system to microservices using Kotlin, Spring Boot, and other technologies, exposing APIs for the frontend and new products while sustaining the legacy system through services, queues, continuous delivery, and operations monitoring.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxAnoop Ashok
In today's fast-paced retail environment, efficiency is key. Every minute counts, and every penny matters. One tool that can significantly boost your store's efficiency is a well-executed planogram. These visual merchandising blueprints not only enhance store layouts but also save time and money in the process.
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
6. Why doesn’t unit
testing work?
We can’t test things of business
value
Not knowing what to test, we test
many things that don’t need testing
Automated crap is still crap
7. Unit tests can’t test
things of business value
Can you demonstrate that Method X of
Object Y will ever be invoked in practice?
If a unit test fails, how does it affect ROI?
What’s amazing is that we continue to test…
Paths that will never be exercised
Methods that are never used
Naive method invocation sequences
8. Most unit tests are
unnecessary
We test scenarios that will never be
exercised in the real world
We test methods that will never be
invoked
We supply data that a real application
would never have to process
9. Automated crap is
still crap
Design requires intelligence:
intelligence cannot be automated
Autonomation instead of automation
Testing is about exploratory inference
Get manual procedures working first
and then automate the mundane parts
13. Weinberg’s Law of
Decomposition
Used Interface
Used Interface
Mu s t unit-te s t!
Must unit-test!
Must unit-test!
14. Weinberg’s Law of
Decomposition
Wasted testing effort
Use
Size
Test
Size
15. Part III: You Will Have Bugs!
Scenarios we
test in the lab
Scenarios
exhibiting
faults
Scenarios
invoked in
the field
16. Testing waste
Removing tests
leaves field faults
Scenarios we
test in the lab
Scenarios
exhibiting
faults
Scenarios
invoked in
the field
undetected!
Type 2
Muda
Type 1
Muda
Type 4
Muda
Type 1: Defects
Type 2: Stuff
customers
don’t ask for
Type 4:
Type Overprocessing
1 Muda
(field)
17. Why do we unit
test?
Because we can
It doesn’t require teamwork
We don’t have to talk with the business
We get to interact with tools instead of
people
Our decisions are emotional, not rational
18. Reduction of Waste
Type 1: Better testing (e.g., going beyond
contextual testing to exploratory & experience-based
testing) (and better yet, better analysis
and design, where the real payoffs are)
Type 2: Don’t test dead code
Type 4: Remove redundant and tautalogical
tests, and tests that give no information
Type 1 in the field: Ship your tests!
19. Don’t take the tests
out when you ship!
Remember, you will have bugs in the
field!
Deployment is your largest test driver
Ship your tests as part of the code
IN case of a failure, it saves you
from Type 9 muda (unsafe execution)
21. How Adding ASSERTS reduces work
2500000
2000000
1500000
1000000
500000
0
15 bugs p=0.01 15 bugs p=0.02
10 bugs p=0.01 10 bugs p=0.02
5 bugs p=0.01 5 bugs p=0.02
0 1 2 5 10 20 50 100
number of ASSERTS
Work, Tsinglechecks
Overload
Magazine,
October 2014
22. Defensive
Programming
… is largely the incorporation of
tests in the code
Long known for high-reliability
systems
The value of asserting the obvious
Design by Contract
23. Assertions make code
readable!
- (void) prepareForSegue: (UIStoryboardSegue*) segue
sender: (id) sender
{
assert(segue != nil);
if ([[segue identifier] isEqualToString:
@"SegueAvatarPickerToPickOneLoginPlayer"]) {
assert((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone));
// The field parentViewController_ (instance variable) is
// maybe null if we are in iPhone mode and doing a real
// segue, instead of a popover as we do on the iPad. So
// get the right object from the segue record.
KnowsyPlayerPickerCommonViewController *parentViewController =
[segue destinationViewController];
[parentViewController setKnowsyData: knowsyData_];
} else {
// iPad - no special processing - should be no popover
assert(parentViewController_ == nil);
}
}
24. Part IV: Beyond agile
testing, Lean testing
When a test finds a bug, it’s about
fixing the process — not the bug
The long-term payoff is higher!
No bug-tracking systems: we fix
problems NOW.
The tester should be the team’s
conscience
25. Other Lean-isms
Deming: Quality is inversely
proportional to the number of
testers
GM kept around its cars for 1 - 6
weeks for test and repair: Toyota
drove them off the end of the
assembly line onto the car carriers.
26. Conclusion
Be humble about what tests can accomplish
It’s not about testing, but value
Design tests to assess properties of business value
Go beyond unit testing to defensive
programming and design-by-contract
As agile testers, focus on process first and
product second
Editor's Notes
#2: BEYOND AGILE TESTING TO LEAN DEVELOPMENT - Jim Coplien
• Testing is a business function that should be focused on risk
• Lean defines testing as waste — why do it?
• Automated tests should reflect requirements, but testers shouldn't test requirements
• Testers are the team's conscience
50 Minutes
#11: http://qz.com/196200/toyota-is-becoming-more-efficient-by-replacing-robots-with-humans/ Max Niesen, April 7, 2014
James Bach: “Testing Requires Inference.” “Exploratory inference may sound like a strange idea. It means one idea leading to another in ways you can’t predict in advance” [and, therefore, can’t script].
#13: What if the methods we break them down with are private and used just to make the code more readable?
I'm sure you could pronounce it faster... And I'm sure that it takes less time to read individual sentences than to read all of Moby Dick. But readability isn't the entire story, and comprehension is a big part of that. Appreciation comes in the whole. You don't appreciate the beauty of the Mona Lisa by studying only her nose: you take in the whole. It is more than the sum of its parts, just as understanding must be more than the sum of its parts.
There are some strange loops going in the other direction, and this is where I've picked up a new tool in the past weeks: Weinberg's law of decomposition. Each part is much more than a decomposition of the whole. Because it is so much more, it is harder to understand as an entity than it is to understand when contextualized by its surroundings. So the phrase, "Frankly, dear, I don't give a damn" has some meaning in its own right but 100 times as much meaning when read in the context of "Gone With The Wind."
Poetry is about about compression: about using cultural context, and the context of the rest of the work, to amplify meaning. Great software is group poetry writing. If you're not doing that, you're just a machine automating the generation of some object code in an assembly language called Java.
#14: What if the methods we break them down with are private and used just to make the code more readable?
I'm sure you could pronounce it faster... And I'm sure that it takes less time to read individual sentences than to read all of Moby Dick. But readability isn't the entire story, and comprehension is a big part of that. Appreciation comes in the whole. You don't appreciate the beauty of the Mona Lisa by studying only her nose: you take in the whole. It is more than the sum of its parts, just as understanding must be more than the sum of its parts.
There are some strange loops going in the other direction, and this is where I've picked up a new tool in the past weeks: Weinberg's law of decomposition. Each part is much more than a decomposition of the whole. Because it is so much more, it is harder to understand as an entity than it is to understand when contextualized by its surroundings. So the phrase, "Frankly, dear, I don't give a damn" has some meaning in its own right but 100 times as much meaning when read in the context of "Gone With The Wind."
Poetry is about about compression: about using cultural context, and the context of the rest of the work, to amplify meaning. Great software is group poetry writing. If you're not doing that, you're just a machine automating the generation of some object code in an assembly language called Java.
#15: What if the methods we break them down with are private and used just to make the code more readable?
I'm sure you could pronounce it faster... And I'm sure that it takes less time to read individual sentences than to read all of Moby Dick. But readability isn't the entire story, and comprehension is a big part of that. Appreciation comes in the whole. You don't appreciate the beauty of the Mona Lisa by studying only her nose: you take in the whole. It is more than the sum of its parts, just as understanding must be more than the sum of its parts.
There are some strange loops going in the other direction, and this is where I've picked up a new tool in the past weeks: Weinberg's law of decomposition. Each part is much more than a decomposition of the whole. Because it is so much more, it is harder to understand as an entity than it is to understand when contextualized by its surroundings. So the phrase, "Frankly, dear, I don't give a damn" has some meaning in its own right but 100 times as much meaning when read in the context of "Gone With The Wind."
Poetry is about about compression: about using cultural context, and the context of the rest of the work, to amplify meaning. Great software is group poetry writing. If you're not doing that, you're just a machine automating the generation of some object code in an assembly language called Java.
#17: Type 2: Weinberg’s Law of Decomposition
Type 4: Keeping tests that never fail
#18: Last point: Most tests are irrational: i.e., you can never presume software correctness from the tests. But we do feel better by having checked, so we test anyhow.