Best of TestingOctober 2024

  1. 1
    Article
    Avatar of communityCommunity Picks·1y

    Faker

    Generate various personal information elements such as names, genders, bios, and job titles using the Faker tool. Ideal for software testing and profile creation.

  2. 2
    Article
    Avatar of medium_jsMedium·2y

    3 Lessons from the Smartest Developers I’ve Worked With

    The author shares lessons learned from working with exceptionally smart developers. Key takeaways include the importance of writing unit tests, being thorough in code reviews, and aligning technical decisions with business goals. The post emphasizes learning from others and aiming higher in one's career for better growth.

  3. 3
    Article
    Avatar of bytebytegoByteByteGo·2y

    EP133: API vs SDK

    Learn the distinctions between APIs and SDKs, their purposes, and when to use each. Discover Kubernetes' popularity, Terraform workflows for turning code into cloud infrastructure, essential HTTP status codes, and common deployment strategies. Additionally, explore tools like QA Wolf for optimizing QA cycles and New Relic for monitoring AI chatbot performance.

  4. 4
    Article
    Avatar of the_react_communityThe React Community·1y

    How to Create and Test a React Query Hook for Global Loading Indicators

    Learn how to create a custom React Query hook for managing global loading indicators and how to test it with Jest. The tutorial covers using useIsFetching, useIsMutating, and useIsRestoring functions, handling different loading states, and writing comprehensive unit tests.

  5. 5
    Article
    Avatar of softwaretestingmagazineSoftware Testing Magazine·2y

    Top 10 Software Testing Trends for 2024

    The software testing industry is set to grow at 7% CAGR from 2024-2032, driven by advancements in testing methodologies and tools. Challenges such as scarce talent, poor documentation, and time constraints are common. Emerging trends include scriptless test automation, IoT testing, AI and machine learning in testing, cloud-based testing, and shift-left testing. Technologies like blockchain and big data testing are also becoming crucial. Embracing these trends helps improve efficiency, speed up release cycles, and ensure high-quality software delivery.

  6. 6
    Video
    Avatar of primeagenThePrimeTime·1y

    Sqlite Is Getting So Good

    The post dives into a new multi-tenant architecture and issues a scalability challenge for a serverless database based on a fork of SQLite. It emphasizes the advantages of deterministic simulation testing (DST) and highlights the importance of not reinventing the wheel unless mission-critical. It also discusses the application of Rust and its borrow checker for improved safety and performance, the implementation of DST for bug detection, and the decision-making process behind choosing Rust over Zig for the rewrite project.

  7. 7
    Article
    Avatar of controversycontroversy.dev·2y

    To TDD, or not to TDD, that is the question

    The post invites a discussion on the pros and cons of Test Driven Development (TDD), seeking various perspectives on its effectiveness and challenges.

  8. 8
    Article
    Avatar of logrocketLogRocket·2y

    6 AI tools for API testing and development

    APIs play a critical role in software systems, requiring significant effort in design, development, and testing to ensure their performance. AI tools can streamline this process by automating test creation, reducing the time from days or weeks to minutes or hours. Tools like Postbot by Postman, LintGPT, IBM API Connect, Apigee, Testsigma, and Katalon Studio are highlighted for their features and capabilities in enhancing API development and testing. Common issues such as AI-generated hallucinations are also discussed, along with strategies to mitigate them.

  9. 9
    Article
    Avatar of simplethreadSimple Thread·2y

    Beyond Microservices: (Mis)Using Linux Containers for Software Testing

    Containerization is becoming essential for software testing beyond just building microservices. Containers aid in swift test scenario setup, state control, and scalability. The post highlights various patterns, including using containers for unit, feature, and service tests, controlling test state, testing on different runtimes, and simulating hardware environments. Containers provide a flexible and low-overhead solution, enhancing testing efficiency and enabling comprehensive system validation.

  10. 10
    Article
    Avatar of itnextITNEXT·1y

    Fuzz Testing Go HTTP Services

    Fuzz testing, or fuzzing, is an automated software testing technique used to find bugs, crashes, and security vulnerabilities by inputting large amounts of random data into a program. It is now integrated into Go’s standard library as of Go 1.18, making it part of the regular testing package. Fuzz testing can reveal bugs that traditional testing might miss and is a recommended practice for improving the robustness of code, including HTTP services. The post provides step-by-step instructions for creating fuzz tests in Go, including an example for fuzzing HTTP handlers using Go's `httptest` package.

  11. 11
    Article
    Avatar of baeldungBaeldung·1y

    How to Mock Multiple Responses for the Same Request

    Learn how to use MockServer to simulate multiple responses for the same API request, particularly for a payment processing system. This setup helps test the application's polling mechanism without requiring actual backend services. The guide covers defining the payment request model, integrating with the bank's payment service, and validating the polling logic by mocking different payment statuses.

  12. 12
    Video
    Avatar of communityCommunity Picks·1y

    The Secret of Unit Testing I Learned by Failing

    The focus on micromanaging implementations in unit tests can leave genuine bugs unnoticed. The author demonstrates this by showing ineffective unit tests and then presents a simpler yet effective method for writing them. Emphasizing the importance of testing critical public attributes rather than overcomplicating with unnecessary details, the author advocates for straightforward code and effective collaboration among programmers.

  13. 13
    Article
    Avatar of threedotslabsThree Dots Labs·1y

    Optimising and Visualising Go Tests Parallelism: Why more cores don't speed up your Go tests

    Optimizing Go tests can significantly speed up their execution. Visualizing test output is crucial for understanding inefficiencies, which can be addressed by using tools like 'vgt'. The post highlights the nuances of utilizing parallelism in Go tests using `t.Parallel()` and the `-parallel` flag, showcasing how default settings often don't maximize test speed due to CPU-bound limitations. It also explains best practices for configuring and linting tests to run efficiently in CI environments.

  14. 14
    Video
    Avatar of denoDeno·1y

    All-in-one tooling for JavaScript and TypeScript development

    Dino simplifies JavaScript and TypeScript development by including built-in tools for formatting, linting, and testing, saving developers time on configuration. It supports automatic code formatting, built-in linting similar to ESLint, and comprehensive testing capabilities with code coverage reporting, all without needing third-party dependencies.

  15. 15
    Article
    Avatar of dockerDocker·1y

    Model-Based Testing with Testcontainers and Jqwik

    Model-based testing (MBT) automates test case generation by modeling expected software behavior. Using jqwik and Testcontainers for regression testing, the method efficiently covers edge cases, improving software reliability. By leveraging actions and sequences, the approach rapidly tests numerous requests, ensuring application states remain consistent across different environments.

  16. 16
    Article
    Avatar of programmingdigestProgramming Digest·2y

    Practices of Reliable Software Design

    The post explores various practices for reliable software design, including building high-performance in-memory caches and understanding the CAP Theorem in distributed systems. It also covers the efficiency of different data structures for associative arrays, highlights tools for speeding up code reviews with AI, and addresses the impact of deployment speed on productivity.

  17. 17
    Article
    Avatar of awegoAwesome Go·2y

    Avoid inaccurate tests: Use httptest when testing HTTP handlers in Go

    Testing HTTP handlers in Go involves wrapping inputs in HTTP requests and writing responses to http.ResponseWriter. Using client-side requests for handler tests can lead to inaccuracies; instead, use the httptest package to construct server-side requests with httptest.NewRequest or httptest.NewRequestWithContext. For capturing responses, httptest.NewRecorder provides a mock implementation of http.ResponseWriter. Always use a new response recorder for each handler call and extract responses using the Result method.

  18. 18
    Article
    Avatar of semaphoreSemaphore·2y

    The Arrange, Act, and Assert (AAA) Pattern in Unit Test Automation

    The Arrange-Act-Assert (AAA) pattern is a popular method for structuring unit tests to enhance their reliability, maintainability, and readability. This approach involves three distinct phases: arranging the test environment, executing the functionality to be tested, and verifying the outcomes. The pattern, originally proposed in the early 2000s, is language-agnostic and supports better code organization, readability, and refactoring. It also aligns well with Test-Driven Development (TDD) principles and is widely regarded as an industry standard for effective test automation.

  19. 19
    Article
    Avatar of lnLaravel News·2y

    Pest Route Testing Plugin for Laravel Applications

    The pest-plugin-route-testing for Pest enables efficient route testing in Laravel applications. It offers methods to filter, include, exclude, and bind users to routes for testing purposes. The package ensures routes return a 200 status code through various customizable options, and it can be easily installed via Composer.

  20. 20
    Article
    Avatar of codemotionCodemotion·1y

    Fail Fast: when failure is a win

    Fail Fast is a methodology in software development aimed at quickly identifying limitations and critical issues to make timely decisions. It is particularly useful in contexts like IoT where there are many variables. The approach often involves Proof of Concept tests, challenging solutions under conditions that could lead to failure. This strategy helps prevent problems from accumulating and becoming unmanageable, ensuring better project outcomes.

  21. 21
    Article
    Avatar of nvidiadevNVIDIA Developer·1y

    Building AI Agents to Automate Software Test Case Creation

    NVIDIA's DriveOS team has developed Hephaestus (HEPH), a generative AI framework to automate the creation of software test cases. By leveraging large language models (LLMs), HEPH reduces the manual labor involved in test creation, making the process faster and more efficient. The framework handles everything from document traceability to generating and executing context-aware tests. The post highlights the potential of HEPH in saving time, improving test coverage, and supporting multiple input formats. Future enhancements include modularity and interactive feedback for greater flexibility and accuracy in test generation.

  22. 22
    Article
    Avatar of lisacrispinAgile Testing·2y

    The Agile Testing Quadrants

    The Agile Testing Quadrants serve as a planning and execution tool to help teams ensure adequate test coverage and build quality. Originating from Brian Marick and popularized by Janet Gregory and Lisa Crispin, these quadrants have evolved over the years. The post encourages using the latest version of the quadrants shared in their book and appreciates suggestions for future updates.

  23. 23
    Article
    Avatar of logrocketLogRocket·2y

    Playwright Extra: extending Playwright with plugins

    Playwright Extra extends the Playwright framework by adding plugin support, enabling capabilities such as stealth browsing, CAPTCHA solving, and proxy management. With over 6.4k stars on GitHub, the tool is gaining popularity for automating web applications across various browsers. The post provides a setup guide for Playwright Extra and detailed usage instructions for its plugins, including puppeteer-extra-plugin-stealth, puppeteer-extra-plugin-recaptcha, and plugin-proxy-router. The guide also covers usage with JavaScript and TypeScript for both basic and advanced automation scenarios.

  24. 24
    Article
    Avatar of baeldungBaeldung·1y

    Analyzing JMeter Results

    The post discusses methods to analyze Apache JMeter test results, highlighting the importance of monitoring both the service under test and the client tool executing the test. It explains various built-in options and community plugins for producing advanced reports. It details the use of backend listener clients to store results in external databases and the risks and complexities of using hosted services like Grafana. The tutorial demonstrates how to utilize JMeter plugins and report listeners to gather and visualize comprehensive performance metrics. Finally, it covers generating HTML reports through JMeter Dashboard Report GUI for better visualization.

  25. 25
    Article
    Avatar of storybookStorybook·2y

    React Native Storybook 8

    React Native Storybook 8.3 has been released, unifying its release schedule with the web version for the first time. Key features include a brand new mobile UI, a new widescreen layout, simplified Metro configuration, improved hot-reloading, and stable support for React Native Web. The update ensures parity between the React Native and web versions, making it easier for teams to work seamlessly across both platforms.