Topic

Software Testing

All digests tagged Software Testing

· 5:24

Android Studio Quail 2, the Build with Gemini XPRIZE, and more! - Google Developer News July 2026

This Google Developer News update details major advancements in Android development tools, including the stable release of Android Studio Quail 2. Key features include parallel agentic task management and enhanced memory leak detection via Leak Canary. Furthermore, the session covers updates to Android Bench for LLM evaluation using the Harbor framework, an inside look at YouTube's AI prototyping stack (Emergent), and details the Build with Gemini XPRIZE competition offering a $2 million prize pool.

Key takeaways

  1. Android Studio Quail 2 Stable Release

    The stable release introduces parallel chats for managing multiple agentic tasks simultaneously, upgrading Leak Canary integration into the profiler for faster heap analysis (up to five times faster), and integrating App Quality Insights with production reports (Firebase/Crashlytics) to automatically suggest or fix crash-causing code.

  2. Android Bench Methodology Upgrade 0:01

    Updates are rolling out to Android Bench, standardizing on the Harbor framework for model evaluation. Cloud fable 5 currently leads the leaderboard with a score of 84.5, and users can now submit unique development tasks to shape the benchmark.

  3. YouTube AI Prototyping Stack (Emergent) 0:02

    The series reveals how YouTube builds flexible, safe prototyping environments that minimize technical debt and system layers for rapid idea testing across Google's product lines.

  4. Build with Gemini XPRIZE Competition 0:02

    A $2 million competition challenges developers to build a real business using AI by solving a real-world problem, utilizing the full Google stack from Gemini app validation to Google Cloud scaling. The deadline is August 17.

Watch on YouTube Full article

· 32:04

Justin Cormack - When Tests Lie: Using Observability to Keep AI Honest - AI Native DevCon June 2026

The talk explores the challenges of using AI to build large-scale, complex distributed systems, exemplified by building an AWS S3 compatible object storage system in Rust. While testing is crucial, relying solely on achieving 100% test coverage is insufficient for complex systems. The speaker emphasizes that observability, robust test articles (like external services), and a 'human-in-the-loop' approach are necessary to enforce correctness, discover edge cases, and manage issues like race conditions and flaky tests in AI-assisted development.

Key takeaways

  1. Observability is Critical for Large Systems 17:47

    For complex distributed systems, the public API often doesn't cover all background behaviors. Observability techniques (like tracing) are necessary to infer or observe invisible behaviors that standard APIs cannot expose.

  2. Test Articles Provide Grounding 21:00

    Using an existing system, such as AWS S3, as a 'test article' provides a crucial behavioral baseline. This is more valuable than relying on documentation, which may be inaccurate.

  3. Beyond 100% Test Coverage 13:44

    Achieving 100% test coverage can lead to writing trivial or unhelpful tests. The focus should instead be on expanding the scope of testing and thinking like a QA professional to find edge cases.

  4. Flaky Tests Must Be Fixed 22:00

    The speaker asserts that flaky tests must be fixed immediately, as AI models may incorrectly suggest ignoring them based on training data. Running repeated test suites helps identify these issues.

Watch on YouTube Full article

· 58:44

.NET Testing Techniques You Didn’t Know You Needed - Dante De Ruwe - NDC Copenhagen 2026

This talk explores advanced .NET testing techniques designed to improve test effectiveness and build confidence in code quality beyond basic unit tests. Key methods include Property-Based Testing (PBT) for generating vast input variations, Snapshot Testing for tracking complex output changes over time, and Mutation Testing for verifying if existing tests are actually capable of catching bugs. The speaker emphasizes that the goal is not just to write many tests, but to write fewer, highly effective tests.

Key takeaways

  1. Test Reliability vs. Code Trust 2:00

    Tests should be viewed as a 'parachute'—they must have no holes. A failing test when requirements haven't changed indicates a bug; passing when the code changes suggests incomplete coverage or potential issues.

  2. Randomized and Property-Based Testing (PBT) 7:10

    Instead of relying solely on example cases, PBT defines mathematical properties that the code must always satisfy (e.g., a + b = b + a). This is crucial for complex structures or when edge case enumeration is impossible.

  3. Snapshot Testing 13:20

    This technique captures and saves the output of a function (the 'snapshot'). Subsequent test runs fail if the output changes unexpectedly, making it ideal for verifying API contracts (like OpenAPI specs) or complex data structures without writing explicit assertions for every field.

  4. Mutation Testing 26:20

    This advanced technique introduces small bugs (mutations) into the code and checks if the existing test suite fails. A high mutation score indicates that tests are effective at catching subtle errors, debunking false confidence from high line coverage metrics.

Watch on YouTube Full article