# integration testing

Published articles for integration testing.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Designing Android's missing WorkManager test rule

DevFeed: [Designing Android's missing WorkManager test rule](<https://devfeed.tech/articles/designing-android-s-missing-workmanager-test-rule-25830.md>)

Original publisher: [Read original article](<https://segunfamisa.com/posts/androids-missing-work-manager-test-rule>)

Author: Segun Famisa

Published: 2026-08-30T06:00:00Z

Content type: tutorial

Language: en

Sources: [Segun Famisa](<https://devfeed.tech/sources/segun-famisa.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Library](<https://devfeed.tech/topics/library.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [guide](<https://devfeed.tech/tags/guide.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [library](<https://devfeed.tech/tags/library.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article presents a WorkManager test rule intended to reduce repeated setup, cleanup, state retrieval, and API calls when testing Android work. It discusses the androidx.work:work-testing library, integration-style testing with TestDriver, and a proposed WorkManagerTestRule.

### Source excerpt

TL;DR - create a work manager rule to make your tests easier to write. It's not hard to do, and it pays off. I have been working quite a bit with WorkManager stuff these days, and while attempting to write tests for them, I realised there were things I was doing repeatedly. Work Manager provides a helpful testing library - androidx.work:work-testing and they have a very nice guide on how to write tests for work manager - both integration tests, and testing worker implementation details1, and despite this, I found myself writing a couple of things over and over again. This post is somewhere between bringing awareness to testing APIs available for WorkManager, and showcasing a test rule that I think can help lower the barrier to testing. Before Say I have a SyncDispatcher class that does sync, and sometimes, I want to keep existing work, and other times, I want to replace the existing work. class SyncDispatcher(val workManager: WorkManager) { fun sync(params: SyncParams) { val existingWorkPolicy = if (params.syncAll) { ExistingWorkPolicy.REPLACE } else { ExistingWorkPolicy.APPEND_OR_REPLACE } val workRequest = OneTimeWorkRequestBuilder<SyncWorker>() .setConstraints(Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()) .build() workManager.beginUniqueWork("sync-work", existingWorkPolicy, workRequest) .enqueue() } } If I wanted to test this behaviour in an "integration-testing" style, I could use the TestDriver API2 of work manager to instrument the constraints that my work depends on, be it initial delay, network condition, period delay (for perioidic work), stopping the work with a reason, and so on. // SyncDispatcherTest.kt @Before { val config = Configuration.Builder().setExecutor(SynchronousExecutor()).build() WorkManagerTestInitHelper.initializeTestWorkManager(testContext, config) } @Test fun `sync all drops all prior sync requests`() = runTest() { // given that we have previous sync work enqueued dispatch.sync(syncPartialParams) // when we

## What is the future of software engineering with Adam Bender, Principal Software Engineer at Google

DevFeed: [What is the future of software engineering with Adam Bender, Principal Software Engineer at Google](<https://devfeed.tech/articles/what-is-the-future-of-software-engineering-with-adam-bender-principal-software-engineer-at-google-38698.md>)

Original publisher: [Read original article](<https://newsletter.techworld-with-milan.com/p/what-is-the-future-of-software-engineering>)

Author: Dr Milan Milanović

Published: 2026-07-02T15:01:06Z

Content type: opinion

Language: en

Sources: [Tech World With Milan Newsletter](<https://devfeed.tech/sources/tech-world-with-milan-newsletter.md>)

Topics: [future of software](<https://devfeed.tech/topics/future-of-software.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [code-generation](<https://devfeed.tech/tags/code-generation.md>), [conway-s-law](<https://devfeed.tech/tags/conway-s-law.md>), [future-of-software](<https://devfeed.tech/tags/future-of-software.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

The article discusses Adam Bender's view that the AI coding debate focuses too narrowly on speed. It argues that faster code generation increases pressure on testing, review, engineering culture, system understanding, and long-term maintainability, with integration testing becoming a particular challenge.

### Source excerpt

Most of the AI coding debate is about speed.

## A new era for software testing

DevFeed: [A new era for software testing](<https://devfeed.tech/articles/a-new-era-for-software-testing-20659.md>)

Original publisher: [Read original article](<http://antirez.com/news/168>)

Published: 2026-06-07T09:46:06Z

Content type: opinion

Language: en

Sources: [Antirez](<https://devfeed.tech/sources/antirez.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Software Testing](<https://devfeed.tech/topics/software-testing.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>)

Tags: [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [llms](<https://devfeed.tech/tags/llms.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [software-testing](<https://devfeed.tech/tags/software-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article argues that large language models can extend conventional software QA and testing by having an AI agent perform manual checks described in a Markdown file. It contrasts locally scoped tests, integration tests, and manual QA passes, and gives DwarfStar, an inference engine for open-weight LLMs, as an example.

### Source excerpt

Automatic programming dramatically speeds up writing software in certain use cases and in the right hands. In my experience the output does not reach the structural quality and economy of complexity of the best hand-written software. However, not all the software is stellar, and my feeling is that automatic programming surpasses most of the times (and if well managed) the quality of decently developed hand-written code. Yet, there is a tradeoff between quality and time, in the case of writing new software with AI. This tradeoff in certain projects I developed can be brutal, that is, completing projects that may take many months in a few weeks. However, there are domains where LLMs simply open new strictly more powerful ways to automate processes, without any compromise on quality. One of those domains is software QA and testing. Traditionally software is tested using test suites that are composed of locally-scoped tests and integration tests (think of Redis: one thing is testing if SET foo 10 will be matched by GET foo => 10, another thing is testing if replication works in this case). And then by QA passes that are usually manually executed, and that can capture holes in the runnable test suite. It is a known fact that covering all the lines of the code does not mean covering all the possible states. Moreover integration testing is structurally hard: there are a number of timing issues, setups, and certain quality outputs that can only be visually inspected and not automatically checked that leave a lot of testing opportunities not really exploited because of time or logistic constraints. LLMs offer a new way to do QA on top of the existing testing methodologies. The idea is to create a markdown file where an AI agent is asked to work as a QA engineer, performing a number of manual testings on the new release. For instance, in the case of DwarfStar (an inference engine for open weights LLMs) I use the following approach. In the markdown file, the agent is asked to

## BGP Labs: Graceful Degradation for Unsupported Devices

DevFeed: [BGP Labs: Graceful Degradation for Unsupported Devices](<https://devfeed.tech/articles/bgp-labs-graceful-degradation-for-unsupported-devices-11358.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2026/04/bgp-labs-graceful-degradation/>)

Published: 2026-04-15T05:59:00Z

Content type: article

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [BGP](<https://devfeed.tech/topics/bgp.md>), [Network](<https://devfeed.tech/topics/network.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>)

Tags: [bgp](<https://devfeed.tech/tags/bgp.md>), [devices](<https://devfeed.tech/tags/devices.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [network](<https://devfeed.tech/tags/network.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article explains how netlab's online BGP labs handle unsupported device capabilities. A generic plugin adjusts lab topologies and validation tests based on available features, allowing affected labs to start with warnings and explanations instead of failing immediately.

### Source excerpt

A few weeks ago, I described the changes in the online BGP labs that allow you to use most of the common network operating systems as "external" routers1. However, while we keep improving it, netlab still can't configure all BGP features on all supported devices (PRs from Nokia and Mikrotik fans would be highly appreciated 😎), which means that it's possible to configure your environment in a way where some of the more complex labs would simply fail to start. The limited choice of devices for external routers was always well-documented (example), but if you insisted on using unsupported devices, the lab would fail to start with an error message, and you'd have to tweak the lab topology (example). Wouldn't it be better to start the lab with a warning? Read more ...

## The best way to clean up test data with Spring and Hibernate

DevFeed: [The best way to clean up test data with Spring and Hibernate](<https://devfeed.tech/articles/the-best-way-to-clean-up-test-data-with-spring-and-hibernate-21982.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/clean-up-test-data-spring/>)

Author: vladmihalcea

Published: 2025-11-11T08:05:24Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Java](<https://devfeed.tech/topics/java.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [schema](<https://devfeed.tech/tags/schema.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [test-data](<https://devfeed.tech/tags/test-data.md>), [testing](<https://devfeed.tech/tags/testing.md>), [truncatemappedobjects](<https://devfeed.tech/tags/truncatemappedobjects.md>)

### AI overview

This tutorial examines how to clean up test data in Spring and Hibernate integration tests. It argues that relying on @DataJpaTest for automatic transaction rollback is not always appropriate and discusses limitations of its SQL logging, including its inability to show bind parameter values or indicate whether batching is used.

### Source excerpt

Introduction In this article, I'm going to show you the best way to clean up test data when using Spring and Hibernate. While it's very common to use the @DataJpaTest annotation when implementing integration tests, in this blog post, you will see why you are better off avoiding using this annotation. Why I don't use @DataJpaTest As explained by the manual, Spring Boot provides the @DataJpaTest annotation for Spring Data JPA integration testing. Once the @DataJpaTest annotation is added to an integration test, Spring Boot will make the following changes to the... Read More The post The best way to clean up test data with Spring and Hibernate appeared first on Vlad Mihalcea.

## SwiNOG 40: When a Routing Control Functions Is Too Fresh

DevFeed: [SwiNOG 40: When a Routing Control Functions Is Too Fresh](<https://devfeed.tech/articles/swinog-40-when-a-routing-control-functions-is-too-fresh-11249.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/09/swinog40-arista-rcf-bug/>)

Published: 2025-09-17T05:33:00Z

Content type: article

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [bug](<https://devfeed.tech/topics/bug.md>), [BGP](<https://devfeed.tech/topics/bgp.md>), [Routing Security](<https://devfeed.tech/topics/routing-security.md>), [Network](<https://devfeed.tech/topics/network.md>)

Tags: [bgp](<https://devfeed.tech/tags/bgp.md>), [bug](<https://devfeed.tech/tags/bug.md>), [integration](<https://devfeed.tech/tags/integration.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [routing](<https://devfeed.tech/tags/routing.md>), [routing-security](<https://devfeed.tech/tags/routing-security.md>), [rpki](<https://devfeed.tech/tags/rpki.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

The article highlights a bug encountered during integration testing of network devices: applying a newly defined Routing Control Function to BGP routing updates in the same Arista EOS configuration session can produce unexpected behavior. The related SwiNOG 40 video presentation notes that the bug has since been fixed.

### Source excerpt

During integration testing, I find unexpected quirks in network devices way too often. However, that's infinitely better than experiencing them in production (even after thoroughly testing stuff) while discovering that your peers don't care about routing security, RPKI, and similar useless stuff. For example, what happens if you define a new Routing Control Function (RFC) on Arista EOS and apply it to BGP routing updates in the same configuration session? You'll find out in the Sorry We Messed Up (video) presentation Stefan Funke had at SwiNOG 40 (note: the bug has been fixed in the meantime).

## IPv6 Router Advertisement Forwarding Disrupts netlab VRRPv3 Integration Tests

DevFeed: [IPv6 Router Advertisement Forwarding Disrupts netlab VRRPv3 Integration Tests](<https://devfeed.tech/articles/ipv6-and-the-revenge-of-the-stupid-bridges-11159.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/03/stupid-bridges-strike-again/>)

Published: 2025-03-24T07:08:00Z

Content type: article

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [networking](<https://devfeed.tech/topics/networking.md>), [Networks](<https://devfeed.tech/topics/networks.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>)

Tags: [bridging](<https://devfeed.tech/tags/bridging.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [container](<https://devfeed.tech/tags/container.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [ipv6](<https://devfeed.tech/tags/ipv6.md>), [linux](<https://devfeed.tech/tags/linux.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [networks](<https://devfeed.tech/tags/networks.md>)

### AI overview

This technical blog post investigates VRRPv3 IPv6 integration-test failures in netlab. It finds that an Arista cEOS container forwarded IPv6 router advertisements between two LAN segments because newly appearing interfaces were enabled in VLAN 1, causing some hosts to treat both prefixes as directly connected. A workaround was implemented in netlab 1.9.4.

### Source excerpt

This blog post describes another "OMG, this cannot possibly be true" scenario discovered during the netlab VRRP integration testing. I wanted to test whether we got the nasty nuances of VRRPv3 IPv6 configuration right on all supported platforms and created a simple lab topology in which the device-under-test and an Arista cEOS container would be connected to two IPv6 networks (Arista EOS is a lovely device to use when testing a VRRP cluster because it produces JSON-formatted show vrrp printouts). Most platforms worked as expected, but Aruba CX, Cumulus Linux with NVUE, and Dell OS10 consistently failed the tests. We were stumped until Jeroen van Bemmel discovered that the Arista container forwards IPv6 router advertisements between the two LAN segments. Read more ...

## Arista EOS Spooky Action at a Distance

DevFeed: [Arista EOS Spooky Action at a Distance](<https://devfeed.tech/articles/arista-eos-spooky-action-at-a-distance-11147.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/03/arista-spooky-action-distance/>)

Published: 2025-03-17T08:10:00Z

Content type: article

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Ethernet](<https://devfeed.tech/topics/ethernet.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [ipv4](<https://devfeed.tech/tags/ipv4.md>), [json](<https://devfeed.tech/tags/json.md>), [lan](<https://devfeed.tech/tags/lan.md>), [linux](<https://devfeed.tech/tags/linux.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [validation](<https://devfeed.tech/tags/validation.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

This blog post investigates unexpected Arista EOS behavior found during netlab VRRP integration testing. In a minimal lab, shutting down one switch interface caused the other switch's Ethernet line protocol to go down and stopped responses from the VRRP backup. Packet capture indicated that the first switch sent a packet instructing the peer to emulate remote link loss.

### Source excerpt

This blog post describes yet another bizarre behavior discovered during the netlab integration testing. It started innocently enough: I was working on the VRRP integration test and wanted to use Arista EOS as the second (probe) device in the VRRP cluster because it produces nice JSON-formatted results that are easy to use in validation tests. Everything looked great until I ran the test on all platforms on which netlab configures VRRP, and all of them passed apart from Arista EOS (that was before we figured out how Sturgeon's Law applies to VRRPv3) - a "That's funny" moment that was directly responsible for me wasting a few hours chasing white rabbits down this trail. Read more ...

## Configuring IP Addresses Won't Make You an Expert

DevFeed: [Configuring IP Addresses Won't Make You an Expert](<https://devfeed.tech/articles/configuring-ip-addresses-won-t-make-you-an-expert-11118.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/01/common-labbing-misconceptions/>)

Published: 2025-01-09T05:39:00Z

Content type: opinion

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Networks](<https://devfeed.tech/topics/networks.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [networking](<https://devfeed.tech/topics/networking.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Containers](<https://devfeed.tech/topics/containers.md>)

Tags: [art](<https://devfeed.tech/tags/art.md>), [container](<https://devfeed.tech/tags/container.md>), [containers](<https://devfeed.tech/tags/containers.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [ospf](<https://devfeed.tech/tags/ospf.md>), [production](<https://devfeed.tech/tags/production.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [routing](<https://devfeed.tech/tags/routing.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This opinion argues that repeatedly configuring routine networking details in labs does not by itself build expertise. The author describes using netlab to automate familiar setup, reuse lab designs, create new topologies quickly, and focus on unfamiliar networking concepts, while noting that adapting existing topologies can still be useful for engineers who work on running networks.

### Source excerpt

A friend of mine recently wrote a nice post explaining how netlab helped him set up a large network topology in a reasonably short timeframe. As expected, his post attracted a wide variety of comments, from "netlab is a gamechanger" (thank you 😎) to "I prefer traditional labs." Instead of writing a bunch of replies into a walled-garden ecosystem, I decided to address some of those concerns in a public place. Let's start with: Read more ...

## How to Run NixOS Integration Tests for a Python Service with GitHub Actions

DevFeed: [How to Run NixOS Integration Tests for a Python Service with GitHub Actions](<https://devfeed.tech/articles/test-your-apps-and-services-with-github-actions-quickly-and-for-free-32442.md>)

Original publisher: [Read original article](<https://nixcademy.com/posts/nixos-integration-test-on-github/>)

Author: Jacek Galowicz

Published: 2024-03-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Nixcademy Blog](<https://devfeed.tech/sources/nixcademy-blog.md>)

Topics: [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Python](<https://devfeed.tech/topics/python.md>), [systemd](<https://devfeed.tech/topics/systemd.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [python](<https://devfeed.tech/tags/python.md>), [server](<https://devfeed.tech/tags/server.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A beginner-focused tutorial that builds a minimal Python TCP echo server, packages it as a NixOS systemd service, tests it with the NixOS integration test driver, and runs the tests on GitHub Actions.

### Source excerpt

Discover how to set up, test, and deploy an example application server using NixOS and GitHub Actions for seamless CI. Unlock powerful integration testing now!

## Testing libraries for the Decentralized Web

DevFeed: [Testing libraries for the Decentralized Web](<https://devfeed.tech/articles/testing-libraries-for-the-decentralized-web-19052.md>)

Original publisher: [Read original article](<https://httptoolkit.com/blog/decentralized-web-testing-libraries/>)

Author: HTTP Toolkit; Tim Perry

Published: 2022-10-24T17:00:00Z

Content type: tutorial

Language: en

Sources: [HTTP Toolkit](<https://devfeed.tech/sources/http-toolkit.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [IPFS](<https://devfeed.tech/topics/ipfs.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [ci](<https://devfeed.tech/topics/ci.md>), [WebRTC](<https://devfeed.tech/topics/webrtc.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [P2P](<https://devfeed.tech/topics/p2p.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [decentralized-web](<https://devfeed.tech/tags/decentralized-web.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [testing](<https://devfeed.tech/tags/testing.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>), [webrtc](<https://devfeed.tech/tags/webrtc.md>)

### AI overview

This article introduces MockIPFS and Mockthereum, network interception libraries for IPFS and Ethereum. It explains how they support automated integration testing and CI workflows while also serving as foundations for network proxy tools for decentralized web applications.

### Source excerpt

The world of decentralized web applications is an exciting place that has exploded in recent years, with technologies such as IPFS and Ethereum opening up possibilities for a peer-to-peer web - creating applications that live outside the traditional client/server model, where users to interact and control their own data directly. At the same time, it's still immature, and for software developers it lacks a lot of the affordances & ecosystem of the traditional HTTP-based web app world. There's far fewer tools and libraries for developers working in this space. I've been working on improving this over the last year (as one part of a project funded by EU Horizon's Next Generation Internet initiative), by building network interception libraries for both IPFS & Ethereum: MockIPFS & Mockthereum. These each act as both an immediately useful automated testing library, to support modern integration testing & CI workflows, and a base for building more general network proxy tools for web applications using either (or both) technologies. If that sounds cool and you just want to jump straight in and try these for yourself, you can get started at github.com/httptoolkit/mockipfs/ and github.com/httptoolkit/mockthereum/. On the other hand, if you want to hear what this can do in practice, and learn a little about how it works under the hood, read on: A new way to build web apps Decentralized web apps often use a mix of many different technologies, at various layers of the stack, such as: IPFS - for decentralized static content hosting & data storage Ethereum - for decentralized consistent global state, computation on that state, and financial transactions Filecoin/Storj - for paid decentralized long-term content storage WebRTC - for peer-to-peer raw data transfer, and video/audio connections Service workers - a JavaScript API allowing fully offline web apps Handshake (HNS)/Ethereum Name System (ENS) - to map domain names to web applications GunDB - a decentralized database for the

## How to Integration Test Stored Procedures with jOOQ

DevFeed: [How to Integration Test Stored Procedures with jOOQ](<https://devfeed.tech/articles/how-to-integration-test-stored-procedures-with-jooq-28942.md>)

Original publisher: [Read original article](<https://blog.jooq.org/how-to-integration-test-stored-procedures-with-jooq/>)

Author: lukaseder

Published: 2022-08-22T12:36:00Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Database](<https://devfeed.tech/topics/database.md>), [Testcontainers](<https://devfeed.tech/topics/testcontainers.md>), [Java](<https://devfeed.tech/topics/java.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [code-generation](<https://devfeed.tech/tags/code-generation.md>), [database](<https://devfeed.tech/tags/database.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [java](<https://devfeed.tech/tags/java.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [junit](<https://devfeed.tech/tags/junit.md>), [maven](<https://devfeed.tech/tags/maven.md>), [stored-procedures](<https://devfeed.tech/tags/stored-procedures.md>), [testcontainers](<https://devfeed.tech/tags/testcontainers.md>), [unit-test](<https://devfeed.tech/tags/unit-test.md>)

### AI overview

This tutorial explains how to integration-test database stored procedures and functions with Java, jOOQ, Testcontainers, and JUnit. It shows how to run PostgreSQL in Testcontainers, generate jOOQ classes for stored procedures, and reuse Java test infrastructure instead of manually binding to procedures through JDBC.

### Source excerpt

When you write stored procedures and functions in your database, you want to ensure their correctness, just like with your Java code. In Java, this is done with unit tests, typically with JUnit. For example, if you have the following code in Java: Then, you might write a test like this: But how do we ... Continue reading How to Integration Test Stored Procedures with jOOQ ->

## Using H2 as a Test Database Product with jOOQ

DevFeed: [Using H2 as a Test Database Product with jOOQ](<https://devfeed.tech/articles/using-h2-as-a-test-database-product-with-jooq-28969.md>)

Original publisher: [Read original article](<https://blog.jooq.org/using-h2-as-a-test-database-product/>)

Author: lukaseder

Published: 2022-08-19T07:25:43Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [in-memory database](<https://devfeed.tech/topics/in-memory-database.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Java](<https://devfeed.tech/topics/java.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [sql-server](<https://devfeed.tech/topics/sql-server.md>)

Tags: [compatibility-mode](<https://devfeed.tech/tags/compatibility-mode.md>), [database](<https://devfeed.tech/tags/database.md>), [h2](<https://devfeed.tech/tags/h2.md>), [in-memory-database](<https://devfeed.tech/tags/in-memory-database.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [java](<https://devfeed.tech/tags/java.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>), [testcontainers](<https://devfeed.tech/tags/testcontainers.md>), [testing](<https://devfeed.tech/tags/testing.md>), [vendor-agnosticity](<https://devfeed.tech/tags/vendor-agnosticity.md>)

### AI overview

This article explains the trade-offs of using H2 as a test database for Java applications with jOOQ. It shows why SQL that works on H2 may require syntax changes on SQL Server, describes H2 compatibility modes, and notes that jOOQ generates SQL for H2's native dialect rather than its compatibility modes.

### Source excerpt

The H2 database is an immensely popular in-memory database product mostly used by Java developers for testing. If you check out the DB-Engines ranking, it ranks 50th, which is quite impressive, as this rank outperforms products like: CockroachDB Ignite Single Store (previously MemSQL) Interbase (which was forked as Firebird) Ingres (which is a predecessor to ... Continue reading Using H2 as a Test Database Product with jOOQ ->

## Traits for testing in Kotlin

DevFeed: [Traits for testing in Kotlin](<https://devfeed.tech/articles/traits-for-testing-in-kotlin-39385.md>)

Original publisher: [Read original article](<https://kt.academy/article/traits-testing>)

Published: 2021-08-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [backend-development](<https://devfeed.tech/topics/backend-development.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [backend-development](<https://devfeed.tech/tags/backend-development.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [testing](<https://devfeed.tech/tags/testing.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains how to use Kotlin traits for integration testing, especially in backend applications. It presents an interface-based technique that lets traits access fake objects defined by a base integration test class.

### Source excerpt

A trick needed when using traits for testing in Kotlin.

## Система под контролем: как автоматизировать интеграционные тесты

DevFeed: [Система под контролем: как автоматизировать интеграционные тесты](<https://devfeed.tech/articles/article-23625.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/badoo/articles/525456/>)

Author: irrational (Badoo)

Published: 2020-10-29T13:21:54Z

Content type: tutorial

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [C](<https://devfeed.tech/topics/c.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>)

Tags: [automatization](<https://devfeed.tech/tags/automatization.md>), [c](<https://devfeed.tech/tags/c.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [docker](<https://devfeed.tech/tags/docker.md>), [go](<https://devfeed.tech/tags/go.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [quality-control](<https://devfeed.tech/tags/quality-control.md>), [tag-622612a5798e](<https://devfeed.tech/tags/tag-622612a5798e.md>), [tag-e95ee8b94dca](<https://devfeed.tech/tags/tag-e95ee8b94dca.md>)

### AI overview

The article explains how a Badoo and Bumble backend team automated integration testing for a distributed system composed of C and Go services, Kafka, and Consul. It discusses the system's growing complexity, the risks of manual verification, and the motivation for building an integration-testing framework to detect service-integration errors before production.

### Source excerpt

Привет! Меня зовут Ксения Якиль. Я пишу core-сервисы на C и Go в бэкенд-отделе Badoo и Bumble. Наш бэкенд -- это высоконагруженная распределённая система, обслуживающая пользователей по всему миру. Она оперирует большими массивами данных и делает всю ту магию, благодаря которой люди находят друг друга. В этой статье я не буду концентрироваться на специфике наших сервисов, а расскажу, как мы реализовали автоматизированные интеграционные тесты в распределённой системе, поделюсь общими принципами и нюансами создания фреймворка для них. В тексте будут встречаться отсылки к реализации на Go, так как мы использовали именно этот язык, но понять основную мысль это не помешает. Читать далее

## Integration Testing in Go: Part II - Set-up and Writing Tests

DevFeed: [Integration Testing in Go: Part II - Set-up and Writing Tests](<https://devfeed.tech/articles/integration-testing-in-go-part-ii-set-up-and-writing-tests-22151.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2019/10/integration-testing-in-go-set-up-and-writing-tests.html>)

Published: 2019-10-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [bug](<https://devfeed.tech/topics/bug.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [database](<https://devfeed.tech/tags/database.md>), [examples](<https://devfeed.tech/tags/examples.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [integration](<https://devfeed.tech/tags/integration.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [post](<https://devfeed.tech/tags/post.md>), [programming](<https://devfeed.tech/tags/programming.md>), [repo](<https://devfeed.tech/tags/repo.md>), [sql](<https://devfeed.tech/tags/sql.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This second installment in a two-part series explains how to prepare external systems for integration tests in Go. It focuses on configuring and seeding a Postgres database, using Go data structures for seed data, and writing and running tests against the database.

### Source excerpt

Prelude This post is the 2nd installment of a 2 part series about integration testing. You can read the first installment, which is about executing tests in a restricted environment using Docker. The example repository that this post draws it examples from can be found in the integration-tests-example repo. Introduction "More than the act of testing, the act of designing tests is one of the best bug preventers known." - Boris Beizer

## Basic Integration Testing with Serverless Framework

DevFeed: [Basic Integration Testing with Serverless Framework](<https://devfeed.tech/articles/basic-integration-testing-with-serverless-framework-14394.md>)

Original publisher: [Read original article](<https://www.serverless.com/blog/serverless-test-framework>)

Author: Maciej Skierkowski

Published: 2019-07-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Serverless Blog](<https://devfeed.tech/sources/serverless-blog.md>)

Topics: [serverless framework](<https://devfeed.tech/topics/serverless-framework.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [aws](<https://devfeed.tech/tags/aws.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [faas](<https://devfeed.tech/tags/faas.md>), [function-as-a-service](<https://devfeed.tech/tags/function-as-a-service.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [integration](<https://devfeed.tech/tags/integration.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [news](<https://devfeed.tech/tags/news.md>), [release](<https://devfeed.tech/tags/release.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [serverless-architecture](<https://devfeed.tech/tags/serverless-architecture.md>), [serverless-framework](<https://devfeed.tech/tags/serverless-framework.md>)

### AI overview

The latest Serverless Framework release makes it easier to perform integration testing for APIs built with the Serverless Framework.

### Source excerpt

With the latest Serverless Framework release, we made it easier to test APIs built with the Serverless Framework.

## Integration Testing in Go: Part I - Executing Tests with Docker

DevFeed: [Integration Testing in Go: Part I - Executing Tests with Docker](<https://devfeed.tech/articles/integration-testing-in-go-part-i-executing-tests-with-docker-22143.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2019/03/integration-testing-in-go-executing-tests-with-docker.html>)

Published: 2019-03-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Software Testing](<https://devfeed.tech/topics/software-testing.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Messaging](<https://devfeed.tech/topics/messaging.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [compose](<https://devfeed.tech/tags/compose.md>), [databases](<https://devfeed.tech/tags/databases.md>), [docker](<https://devfeed.tech/tags/docker.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [messaging](<https://devfeed.tech/tags/messaging.md>), [programming](<https://devfeed.tech/tags/programming.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A tutorial on integration testing in Go. It explains how to use Docker and Docker Compose to run Go tests alongside application dependencies such as databases and messaging systems in a restrictive environment without Go pre-installed.

### Source excerpt

Introduction "Testing leads to failure, and failure leads to understanding." - Burt Rutan Burt Rutan is an aerospace engineer who designed Voyager, the first plane to fly around the world without stopping or refueling. Although Rutan was not a software engineer, his words speak volumes to the importance of testing, even testing software. Testing software in all forms is extremely important, whether it be unit, integration, system, or acceptance testing. However, depending on the project, one form of testing can be more valuable than the others. In other words, sometimes one form of testing can lead to better understanding about the health and integrity of the software than the other forms.

## Introducing Exemplar for Automated Samples Testing

DevFeed: [Introducing Exemplar for Automated Samples Testing](<https://devfeed.tech/articles/introducing-exemplar-for-automated-samples-testing-24614.md>)

Original publisher: [Read original article](<https://blog.gradle.org/documentation-samples-testing-exemplar>)

Author: Eric Wendelin

Published: 2018-10-09T04:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [cURL](<https://devfeed.tech/topics/curl.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [curl](<https://devfeed.tech/tags/curl.md>), [docs](<https://devfeed.tech/tags/docs.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [github](<https://devfeed.tech/tags/github.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [logging](<https://devfeed.tech/tags/logging.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article introduces Exemplar, a library for automated testing of documentation samples and integration-test examples. It supports sample discovery, output normalization, flexible verification, command-line execution, embedded samples in structured documents, and configuration through a JUnit test runner or APIs. Gradle uses it to verify examples in documentation and guides while reducing integration-test boilerplate.

### Source excerpt

This post introduces a new library called Exemplar. The goal of Exemplar is to ensure that users get outputs that you expect them to see. It handles sample discovery, normalization (semantically equivalent results, perhaps from different environments), and flexible output verification. It invokes any command-line tool in the environment to be invoked. You can also invoke curl, for example, to verify service API responses. Gradle uses this library to verify examples in docs and guides, and remove boilerplate from integration tests. Exemplar can be configured using a JUnit test runner (recommended) or using its APIs. See examples below and in the Exemplar GitHub repo. Use cases for Exemplar It's important that documentation samples are accurate. Imagine the frustration, trying to learn something new and having the examples fail to work. We think Exemplar works best as a documentation checking mechanism. It is not meant to substitute other forms of integration testing however. Exemplar is unique because it allows discovery of samples embedded in structured documents, as well as OutputNormalizers (bundled and custom ones), conveniences for using sample projects in "more traditional" integration tests (via @UsesSample("path/to/sample")), and allows samples to be programmatically modified (for extra environment setup, perhaps) before execution (SampleModifier). Exemplar is focused on logging and exit code outputs, and verifying other side effects is cumbersome (checking created files may require extra commands). Furthermore, although Exemplar can be used for any tool, it only has APIs for JVM projects. Sample project testing primer The sample-discovery library in Exemplar will consider any directory containing a *.sample.conf file under the samples root as a sample project. A sample config file is written in HOCON and tells sample-check how to run the sample project. It can be simple: executable: echo args: "Hello World" ... or more complex, with multiple steps: commands: [

## Creating an Integration test in Ember.js (Screencast)

DevFeed: [Creating an Integration test in Ember.js (Screencast)](<https://devfeed.tech/articles/creating-an-integration-test-in-ember-js-screencast-40630.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2014-06-27-integration-testing/>)

Published: 2014-06-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Ember](<https://devfeed.tech/topics/ember.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [boilerplate](<https://devfeed.tech/tags/boilerplate.md>), [ember](<https://devfeed.tech/tags/ember.md>), [ember-cli](<https://devfeed.tech/tags/ember-cli.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [js](<https://devfeed.tech/tags/js.md>)

### AI overview

A screencast tutorial explains how to set up integration testing in an Ember.js application with ember-cli, including the boilerplate required at the top of integration test files.

### Source excerpt

Once upon a time it used to be difficult to create integration tests in Ember.js. Fortunately, the framework has come a long way and it's now really easy to get integration testing working in your application. This screencast shows how to set it up with ember-cli: There is some boilerplate code required that you'll need at the top of your integration test files if you want to do it yourself. Here it is:

## Talk: Tooling & The Webapp Development Stack

DevFeed: [Talk: Tooling & The Webapp Development Stack](<https://devfeed.tech/articles/talk-tooling-the-webapp-development-stack-21674.md>)

Original publisher: [Read original article](<https://paulirish.com/2012/talk-tooling-the-webapp-development-stack/>)

Author: Paul Irish

Published: 2012-05-01T16:57:00Z

Content type: article

Language: en

Sources: [Paul Irish](<https://devfeed.tech/sources/paul-irish.md>)

Topics: [Tooling](<https://devfeed.tech/topics/tooling.md>), [Development](<https://devfeed.tech/topics/development.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Boilerplate](<https://devfeed.tech/topics/boilerplate.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [tools](<https://devfeed.tech/tags/tools.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This article presents a talk about the tooling ecosystem for front-end web application development. It organizes tools by development phase, covering boilerplate, authoring abstractions, frameworks and application stacks, iteration and testing, performance tuning, build optimization, and deployment.

### Source excerpt

One of the things I recognize at Google is how productive developers surround themselves with powerful tools for iterative development and debugging. For us front-end developers, the ecosystem of tools has exploded in the past two years, as we have a lot more software and libraries beyond Firebug and jQuery to help us build webapps. In the talk below I walk through the current ecosystem of tools and how they can make your development experience a more enjoyable one. My slides: Because there are so many tools around, I wanted to break them down somehow. I think contextualizing the tools as to what phase of development that assist with works well: (You could think of the Y-axis here as the amount of code in a project..) Looking at our tools this way we end up with: Boilerplate You likely start a project with more than a single blank text file. Authoring Abstractions CSS preprocessors, Languages that transpile to JS, Templating Frameworks and Application Stack Clientside MVC, UI Components, Widgets Iteration Workflow Browser Devtools, Browser/Unit/Integration Testing Performance Tuning Profiling, Memory mgmt, browser instrumentation Build & Optimization Minifiers, Concat, Image compression... Deploy Continuous Integration, Continuous deployment I've been thinking a lot about workflow and integrating these tools together. Screencasts like Andrey Tarantsov's Sublime Text Workflow really excite me and I'm eager to see more people exploring a robust development setup. 2012.05.16: Mr Jon Kemp wrote up an outline of my talk with all the links, for easy clickability: https://gist.github.com/2713513

## iOS Integration Testing, Part 2

DevFeed: [iOS Integration Testing, Part 2](<https://devfeed.tech/articles/ios-integration-testing-part-2-15726.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/ios-integration-testing-part-2>)

Author: Square Engineering

Published: 2011-11-04T16:00:00Z

Content type: release

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Jenkins](<https://devfeed.tech/topics/jenkins.md>), [Git](<https://devfeed.tech/topics/git.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [RSS](<https://devfeed.tech/topics/rss.md>)

Tags: [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [git](<https://devfeed.tech/tags/git.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [ios](<https://devfeed.tech/tags/ios.md>), [jenkins](<https://devfeed.tech/tags/jenkins.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rss](<https://devfeed.tech/tags/rss.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article announces Zapp, an open-source continuous integration server for running KIF iOS integration tests on each commit. It describes its setup, Xcode requirement, Jenkins-compatible RSS output, repository polling, build queuing, and test-result status.

### Source excerpt

A continuous integration server for running your tests on every commit.

## iOS Integration Testing

DevFeed: [iOS Integration Testing](<https://devfeed.tech/articles/ios-integration-testing-15725.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/ios-integration-testing>)

Author: Square Engineering

Published: 2011-07-14T16:00:00Z

Content type: release

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [ci](<https://devfeed.tech/tags/ci.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [framework](<https://devfeed.tech/tags/framework.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [ios](<https://devfeed.tech/tags/ios.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [release](<https://devfeed.tech/tags/release.md>), [testing](<https://devfeed.tech/tags/testing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Square introduces KIF, an Objective-C framework for iOS integration testing through simulated user interaction. It supports tests on the simulator or device, includes built-in test steps, has no external dependencies after Xcode configuration, and can run in continuous integration.

### Source excerpt

A framework for integration testing iOS by simulating user interaction.

## Integration Testing Resque with Cucumber

DevFeed: [Integration Testing Resque with Cucumber](<https://devfeed.tech/articles/integration-testing-resque-with-cucumber-15696.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/integration-testing-resque-with-cucumber>)

Author: Square Engineering

Published: 2010-08-16T16:00:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Cucumber](<https://devfeed.tech/topics/cucumber.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [race-condition](<https://devfeed.tech/topics/race-condition.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>)

Tags: [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [integration](<https://devfeed.tech/tags/integration.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [process](<https://devfeed.tech/tags/process.md>), [processes](<https://devfeed.tech/tags/processes.md>), [queue](<https://devfeed.tech/tags/queue.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

This article explains how Square integration-tests Resque asynchronous background jobs with Cucumber. It addresses race conditions by forking a Resque worker from the Cucumber process, pausing the worker, and using signal handling to release it, wait for queued jobs to finish, and pause it again.

### Source excerpt

Processing asynchronous jobs deterministically