Unit testing involves writing automated tests to test code. Automated tests are repeatable and help catch bugs before deploying code. The main benefits of unit testing are that it allows developers to test code frequently and in less time, catch bugs before deploying, deploy with confidence, reduce bugs in production, and refactor code with confidence.
There are different types of tests including unit tests, integration tests, and end-to-end tests. Unit tests isolate a unit of code without external dependencies and execute fast but provide less confidence. Integration tests involve external dependencies and provide more confidence but take longer. End-to-end tests drive the application through its UI and provide great confidence but are slow.
Good unit tests
Agile Software Testing the Agilogy WayJordi Pradel
At Agilogy we have a curated way of testing software. In these slides we share basic Principles, Patterns and Strategies to test software in Hexagonal Architectures.
Defying the typical test pyramid, we focus our testing strategy on testing the whole domain. To do so, we avoid the abuse of mocks and stubs and, instead, we use hand-crafted test fakes that behave like their production counterparts. We make sure they actually do so by testing both the production driven adapters and their fakes with the very same test suite.
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...OlyaSurits
Cloud native applications can benefit greatly from end-to-end testing before deployment, but integration testing of microservices is often discouraged because it's costly and difficult.
This talk proposes a modern blueprint for cloud native application testing, focusing on pre-production testing and in particular integration testing. Topics discussed include how to handle common challenges with end-to-end and integration testing, such as:
Dealing with state
How to speed up tests runs for improved developer feedback loops
How to test the configuration of a whole system in the era of Infrastructure-as-Code
We will also discuss other types of testing (such as testing in production), and pre-production workarounds often used as an alternative to integration testing (such as contract testing and test doubles), evaluating the pros and cons of each approach, and how they can complement each other.
Static analysis is a technique that analyzes source code without executing it to find useful information. It works by using tools to capture how code is compiled and then analyzes every path through the code using checkers to find defects like crashes, memory issues and security vulnerabilities. It is beneficial because it can find problems early in the development process when they are cheaper to fix, and the analysis can be done continuously even when developers are not working. Static analysis fits into the software development lifecycle by integrating with activities like code checking, nightly builds, testing and security audits to surface defects.
8 cloud design patterns you ought to know - Update Conference 2018Taswar Bhatti
This document discusses 8 cloud design patterns: External Configuration, Cache Aside, Federated Identity, Valet Key, Gatekeeper, Circuit Breaker, Retry, and Strangler. It provides an overview of each pattern, including what problem it addresses, when to use it, considerations, and examples of cloud offerings that implement each pattern. It aims to help developers understand and apply common best practices for cloud application design.
Cloud Design Patterns - Hong Kong CodeaholicsTaswar Bhatti
Talk on Cloud Design Patterns at Hong Kong Codeaholics Meetup Group. Talk includes External Config Pattern, Cache Aside, Federated Identity Pattern, Valet Key Pattern, Gatekeeper Pattern, Circuit Breaker Pattern, Retry Pattern and the Strangler Pattern. These patterns depicts common problems in designing cloud-hosted applications and design patterns that offer guidance.
Unit testing involves writing automated tests to test code. Automated tests are repeatable and help catch bugs before deploying code. The main benefits of unit testing are that it allows developers to test code frequently and in less time, catch bugs before deploying, deploy with confidence, reduce bugs in production, and refactor code with confidence.
There are different types of tests including unit tests, integration tests, and end-to-end tests. Unit tests isolate a unit of code without external dependencies and execute fast but provide less confidence. Integration tests involve external dependencies and provide more confidence but take longer. End-to-end tests drive the application through its UI and provide great confidence but are slow.
Good unit tests
Agile Software Testing the Agilogy WayJordi Pradel
At Agilogy we have a curated way of testing software. In these slides we share basic Principles, Patterns and Strategies to test software in Hexagonal Architectures.
Defying the typical test pyramid, we focus our testing strategy on testing the whole domain. To do so, we avoid the abuse of mocks and stubs and, instead, we use hand-crafted test fakes that behave like their production counterparts. We make sure they actually do so by testing both the production driven adapters and their fakes with the very same test suite.
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...OlyaSurits
Cloud native applications can benefit greatly from end-to-end testing before deployment, but integration testing of microservices is often discouraged because it's costly and difficult.
This talk proposes a modern blueprint for cloud native application testing, focusing on pre-production testing and in particular integration testing. Topics discussed include how to handle common challenges with end-to-end and integration testing, such as:
Dealing with state
How to speed up tests runs for improved developer feedback loops
How to test the configuration of a whole system in the era of Infrastructure-as-Code
We will also discuss other types of testing (such as testing in production), and pre-production workarounds often used as an alternative to integration testing (such as contract testing and test doubles), evaluating the pros and cons of each approach, and how they can complement each other.
Static analysis is a technique that analyzes source code without executing it to find useful information. It works by using tools to capture how code is compiled and then analyzes every path through the code using checkers to find defects like crashes, memory issues and security vulnerabilities. It is beneficial because it can find problems early in the development process when they are cheaper to fix, and the analysis can be done continuously even when developers are not working. Static analysis fits into the software development lifecycle by integrating with activities like code checking, nightly builds, testing and security audits to surface defects.
8 cloud design patterns you ought to know - Update Conference 2018Taswar Bhatti
This document discusses 8 cloud design patterns: External Configuration, Cache Aside, Federated Identity, Valet Key, Gatekeeper, Circuit Breaker, Retry, and Strangler. It provides an overview of each pattern, including what problem it addresses, when to use it, considerations, and examples of cloud offerings that implement each pattern. It aims to help developers understand and apply common best practices for cloud application design.
Cloud Design Patterns - Hong Kong CodeaholicsTaswar Bhatti
Talk on Cloud Design Patterns at Hong Kong Codeaholics Meetup Group. Talk includes External Config Pattern, Cache Aside, Federated Identity Pattern, Valet Key Pattern, Gatekeeper Pattern, Circuit Breaker Pattern, Retry Pattern and the Strangler Pattern. These patterns depicts common problems in designing cloud-hosted applications and design patterns that offer guidance.
This document discusses using microservices for testing and provides examples of potential test-related microservices. It describes decomposing test activities like planning, implementation, automation, execution, triage, and reporting into discrete microservices. Examples of microservices are provided for various test activities like the Core Analytics Service, Test Generation Service, BenchEngine, Results Analytics Service, and Results Comparison Service. The document argues that a microservices approach can help share functionality across products and simplify testing processes.
SpringOne 2021
Session Title: Microservices Testing at Scale
Speakers: Kishore Kota, Sr Architect at Discover Financial Services; Sindhu Nair, Principal Value Stream Architect at Discover Financial Services; Ying Zhe, Director, Application Development at Discover Financial Services
Introduction to cypress in Angular (Chinese)Hong Tat Yew
Cypress framework is a JavaScript-based end-to-end testing framework built on top of Mocha – a feature-rich JavaScript test framework running on and in the browser, making asynchronous testing simple and convenient. Cypress is like Protractor for Angular. In this talk, we will talk about how to write cypress test from scratch and some best practice.
An overview of how to structure your Lumen APIs to make them awesome. Topics covered: requests, responses, logging, documentation and testing.
Slides assume some background in Laravel.