Why Self‑Testing Can’t Catch All Bugs Before SIT – A Backend Developer’s Reality

The article explains why developers' self‑testing often fails to uncover integration, data‑quality, concurrency and environment‑specific bugs that surface during System Integration Testing, and argues that blaming developers alone is unfair without proper processes and automation.

IT Services Circle
IT Services Circle
IT Services Circle
Why Self‑Testing Can’t Catch All Bugs Before SIT – A Backend Developer’s Reality

Yesterday at 10 p.m. in the office pantry, a colleague insisted that any bug not fixed during the developers' self‑testing phase becomes the developers' responsibility in SIT, to which I replied that expecting zero bugs is unrealistic unless we are omniscient AI.

In Java backend projects, many issues only appear in SIT because the local test data is clean while SIT uses real, messy user data, leading to duplicate phone numbers, missing fields, and database unique‑index violations.

System Integration Testing (SIT) combines all modules and external services—SMS, payment, risk control, third‑party APIs—so mocks used locally cannot replicate real data or inaccurate API contracts, causing format mismatches, timeouts, or crashes that self‑testing cannot anticipate.

Large systems also involve distributed components, caches, and message queues; local tests run single‑node, single‑threaded, but SIT may introduce high concurrency, exposing problems like overselling inventory due to race conditions.

@Transactional
public void reduceStock(Long productId, Integer count) {
    Product p = productRepository.findById(productId).orElseThrow(...);
    if (p.getStock() < count) {
        throw new RuntimeException("库存不足");
    }
    p.setStock(p.getStock() - count);
    productRepository.save(p);
}

In SIT, concurrent threads read the same stock before the transaction commits, causing overselling—an issue that cannot be discovered by simple self‑testing.

Additional SIT problems include network latency, long service chains, and cascading timeouts that lead to service avalanches, which a single developer cannot simulate without load testing.

While companies aim for zero bugs in SIT to avoid blame, developers can only catch about 80 % of low‑level bugs; the remaining 20 % stem from environment or integration issues that require team‑wide responsibility and post‑mortem analysis.

To truly reduce SIT bugs, sufficient time, realistic test environments, data, tools, and end‑to‑end automation are needed; otherwise, the pressure leads to a culture of blame and stifles innovation.

图片
图片
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

BackendIntegrationtestingSIT
IT Services Circle
Written by

IT Services Circle

Delivering cutting-edge internet insights and practical learning resources. We're a passionate and principled IT media platform.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.