Best of TestingNovember 2024

  1. 1
    Article
    Avatar of filiphricFilip Hric·1y

    Test like a developer, develop like a tester

    Exploring the dual role of being both a developer and tester, this piece emphasizes the importance of collaboration between the two roles. It discusses the benefits of understanding and bridging the gap between development and testing, and suggests ways testers and developers can work together to enhance software quality. Concepts like test automation, shifting left, and the DRY principle are highlighted as key strategies for better integration and effective testing practices.

  2. 2
    Article
    Avatar of communityCommunity Picks·1y

    the only web developers in the world who love finding bugs

    An educational tool has been introduced to help teams explore risk analysis and quality strategy building. The focus is on continuous quality over the traditional shift-left approach. A community radio show hosted by Simon Tomes debriefs the week's testing activities, promoting community engagement.

  3. 3
    Article
    Avatar of communityCommunity Picks·1y

    TDD - Rewriting 3 million lines of code

    Andreas Frömer, Head of Software Development at Finanztip, successfully used TDD to rewrite a legacy application consisting of 3 million lines of code. Key lessons include starting with system level tests to avoid regression bugs and using feature flags to replace old code while retaining system behavior. The approach emphasizes starting with system level tests before moving to component tests and applying TDD for both rewriting and refactoring.

  4. 4
    Article
    Avatar of htmxhtmx·1y

    > htmx ~ Codin' Dirty

    The post discusses an alternative approach to writing code that goes against some of the principles of Clean Code. The author argues that it's possible to write successful software using 'dirty' coding practices, such as using larger functions, focusing on integration tests over unit tests, and minimizing the number of classes and interfaces. These practices, according to the author, can lead to more maintainable and understandable code in certain contexts, and they provide a different perspective for developers, especially those who are new to the field.

  5. 5
    Article
    Avatar of storybookStorybook·1y

    Storybook 8.4

    Storybook 8.4 introduces significant improvements for developers working with UI components. Key features include one-click component testing in the browser through Vitest, a bundle size reduction of over 50%, and enhanced support for Svelte 5 and React Native. Additionally, the update includes a tagging and filtering mechanism for stories, numerous bug fixes, and other improvements.

  6. 6
    Article
    Avatar of communityCommunity Picks·1y

    How to Make Software Engineers Do the 'Right Thing'

    To ensure software engineers do the right thing, focus on building a culture of ownership and accountability. Prioritize recording and monitoring production bugs, conduct root cause analyses, and establish a continuous green build in CI. Get your team to care about system health and logs while instilling a practice of continuous improvement.

  7. 7
    Article
    Avatar of lambdatestLambdaTest·1y

    8 Useful pytest Plugins for Python Automation

    Explore eight useful pytest plugins that can enhance your Python automation testing processes. These plugins include pytest-check for advanced assertions, pytest-bdd for BDD integration, pytest-xdist for parallel test execution, pytest-randomly for random test order, pytest-html for HTML reports, pytest-datafiles for external data file integration, pytest-cov for code coverage reports, and pytest-mock for managing mocks. Learn how to install each plugin and see examples of how they can optimize your testing workflow.

  8. 8
    Article
    Avatar of semaphoreSemaphore·1y

    Top 10 Rules of Continuous Integration

    Continuous Integration (CI) is crucial in modern software development, enhancing collaboration, speeding up releases, and aligning software with business needs. Key practices include using version control for a shared core repository, committing code frequently, automating builds and tests, implementing smart triggers and branch-specific pipelines, automating code and security checks, and mirroring production environments for testing. Additionally, monitoring and measuring CI performance and optimizing build and test performance are essential for efficiency. These best practices ensure a reliable, efficient CI pipeline, improving overall development processes.

  9. 9
    Article
    Avatar of webtoolsweeklyWeb Tools Weekly·1y

    JS Utilities, Testing Tools, Uncats

    Explore various JavaScript utilities including a recursive form data assigner, a parallel DOM operations library, and tools for component library usage. Discover testing and debugging tools such as an HTTP(S) benchmarking tool, atomic CSS DevTools, and a tool for detecting code smells in Vue.js projects. Additionally, learn about a no-code platform, versioning systems, APIs for IP info, and innovative commercial apps.

  10. 10
    Article
    Avatar of communityCommunity Picks·1y

    99 essential resources to help software testers

    Over 99 essential resources for software testers, encompassing theories, practical applications, automation, AI, free tools, GitHub repositories, blogs, community support, conferences, ebooks, storytelling, and advocacy. Each section provides curated tools, courses, and materials to elevate your testing skills, from basics to advanced levels.

  11. 11
    Article
    Avatar of pyimagesearchPyImageSearch·1y

    Enhancing GitHub Actions CI for FastAPI: Build, Test, and Publish

    This tutorial enhances the GitHub Actions CI pipeline for FastAPI applications by guiding through the building, testing, and publishing stages. It is part of a series focused on automating essential CI steps for Python projects. The guide covers development environment configuration, project structure setup, and detailed build-and-test job using PyTest for testing and Flake8 for linting. It also includes steps for publishing test results and creating release packages, aiming to optimize the CI/CD pipeline for streamlined FastAPI deployment.

  12. 12
    Article
    Avatar of itnextITNEXT·1y

    Avoid the Go init function

    Init functions in Go are executed during package initialization, which can complicate testing. Overusing init functions for activities like struct instantiation or dependency initialization can result in code that is hard to test and maintain. It's recommended to use a constructor like New() instead.

  13. 13
    Video
    Avatar of gotoGOTO Conferences·1y

    97 Things Every Java Prog. Should Know • Trisha Gee & Kevlin Henney ft. Emily & Holly • GOTO 2024

    The session discusses the book '97 Things Every Java Programmer Should Know,' highlighting its diverse contributions and themes. Authors Trisha Gee and Kevlin Henney present key insights alongside Emily and Holly, focusing on the importance of IDE usage, good unit tests, effective garbage collection, and approval testing. The book aims to provoke thought and conversation, offering contradictory perspectives and fostering discussions on various programming practices.

  14. 14
    Article
    Avatar of baeldungBaeldung·1y

    Mockito Answer API: Returning Values Based on Parameters

    This post discusses how to use Mockito's Answer API for testing role-based authentication services. It starts with mock creation using the mock() method, followed by method stubbing with thenAnswer(). The post explains how method invocation interception works in Mockito and provides examples of implementing the Answer API for different user roles in a content management system. Lastly, it outlines verifying the implementation through tests, ensuring proper role-based access.

  15. 15
    Article
    Avatar of baeldungBaeldung·1y

    Testing the Main Class of a Spring Boot Application

    Testing the main class of a Spring Boot application is crucial to ensure the application starts correctly. The post covers different strategies for testing, from basic context loading tests to mocking SpringApplication.run(), and explains how to handle application arguments and exclude the main class from code coverage. These methods help catch potential issues early and improve the reliability of the application startup process.

  16. 16
    Video
    Avatar of lowlevellearningLow Level Learning·1y

    i found thousands of errors in this program. (you've probably used it)

    A deep dive into a vulnerability found in the szip program, highlighting the steps taken to identify and triage over a thousand crashes. The author explains the process of fuzzing, the details of the integer underflow vulnerability, and the resulting potential for remote code execution. The bug was fixed in 7zip version 2407, and users are advised to update to this or a newer version to mitigate the security risk.

  17. 17
    Article
    Avatar of appsignalAppSignal·1y

    Avoiding False Positives in Node.js Tests

    False positives in test suites can lead to hidden bugs and unreliable applications. This post highlights several common patterns that result in false positives in Node.js tests, such as using loose equality assertions (`equal()` vs. `strictEqual()`), overly general assertions, shallow equality for deep comparisons, misunderstanding assertion behaviors, forgetting to call matchers, misusing mocks, incorrect use of regex, copy-paste errors, incorrect properties in configuration objects, and misusing snapshot tests. Careful attention to these pitfalls can improve the reliability of your tests.

  18. 18
    Article
    Avatar of communityCommunity Picks·1y

    Behat — a php framework for autotesting your business expectations.

    Behat is an open source Behavior-Driven Development (BDD) framework for PHP, designed to facilitate better communication around requirements, ensuring the right system is built. It is highly extensible, leverages Symfony components, adheres to strict coding standards, and integrates seamlessly into PHP development environments.

  19. 19
    Article
    Avatar of iosdevweeklyiOS Dev Weekly·1y

    The best iOS development links, every Friday

    Explore iOS development highlights including a Black Friday offer for Senior iOS Developer training, security insights on Private Cloud Compute, tools like Testpiler and resolving Swift package fetching issues in Xcode 16.1. Learn about testing randomness in LLM output, building a chess app with SwiftUI, understanding actors in Swift, and discovering hidden APIs in Foundation. Also includes a course on Apple's Instruments profiler and job opportunities for iOS developers.

  20. 20
    Article
    Avatar of hnHacker News·1y

    Why I love Rust for tokenising and parsing

    The post discusses the author's development of a SQL analysis tool using Rust, emphasizing its benefits, including syntax checks, embedded runtime, and high-quality error messages. It highlights Rust's macros for reducing code duplication, table-driven tests similar to Go, and showcases efficient error handling and character matching using Rust’s features. The author plans to create an LSP server for SQL after completing the static analysis part of the project.

  21. 21
    Article
    Avatar of appsignalAppSignal·1y

    Streamlined Contract Testing in Node.js: A Simple and Achievable Approach

    Learn a simplified approach to contract testing in Node.js that drastically reduces effort while maintaining benefits. This guide demonstrates setting up contract tests for REST APIs using Jest, Axios, and JSON schemas. It also explores mocking databases and message queues to enhance the speed and efficiency of automated tests. This practical method can be integrated into CI/CD pipelines without requiring significant changes to infrastructure or processes.

  22. 22
    Article
    Avatar of ontestautomationOn Test Automation·1y

    Contract testing - what (not) to test for - part 1

    Contract testing is a complementary technique to functional testing and replaces some integration and end-to-end tests, not tests for individual services. This post explains the fine line between contract testing and testing the implementation of a provider service. It focuses on scenarios in HTTP-based integrations, highlighting what should and should not be included in contract tests to avoid brittle tests and misalignments in expectations between consumers and providers. The discussion emphasizes only asking for necessary properties to maintain flexibility and adaptability.

  23. 23
    Article
    Avatar of communityCommunity Picks·1y

    Testing with Go and PostgreSQL: ephemeral DBs

    Using ephemeral PostgreSQL instances can simplify testing for Go programs by avoiding configuration and setup problems. This method ensures that tests start with an empty database, making them reliable and environment-independent. By utilizing packages like `postgrestest`, developers can streamline the setup process, optimize test runtime, and reduce system resource usage.

  24. 24
    Article
    Avatar of dockerDocker·1y

    Why Testcontainers Cloud Is a Game-Changer Compared to Docker-in-Docker for Testing Scenarios

    Testcontainers Cloud offers a secure, scalable, and efficient alternative to Docker-in-Docker (DinD) for integration testing. While DinD allows running nested Docker daemons, it poses significant security and stability issues. Testcontainers Cloud, by offloading container execution to the cloud, addresses these concerns by eliminating privileged mode, enhancing performance, and simplifying configuration and debugging processes. It enables consistent testing environments across different stages of development, improving overall developer productivity and security compliance.

  25. 25
    Article
    Avatar of freecodecampfreeCodeCamp·1y

    How to Fuzz Test Golang HTTP Services

    Fuzz testing is an automated software testing technique that inputs large amounts of random data into programs to uncover bugs, crashes, and security vulnerabilities. This tutorial explains how to perform fuzz testing in Go, outline the process of creating fuzz tests, and offers examples on how to apply this method to Go functions and HTTP services. Go 1.18 includes fuzz testing in its standard library, making it seamlessly integrate with regular tests.