Program code displayed on a monitor screen in dim light
Back to blog

Software Testing & QA for Business: The Complete Guide

A complete guide to software testing and QA for business owners: types of testing, when to do it, how much it costs, and how to avoid costly bugs.

Friday night, an online store in Jakarta launches a massive promotion. Within two hours, 3,000 customers are queued at the checkout page. Then everything stops: the system rejects payments with an unfamiliar error code. The call center is flooded, social media fills with complaints, and the dev team that just celebrated the release panics trying to figure out what went wrong. Four hours later, the cause is found: a small change in the discount code—one line—that calculated prices differently when promotions and vouchers were used together. That combination was never tested.

This story isn't about a careless team. It's about a common reality in Indonesia's software industry: testing is treated as the "final stage" that can be shortened when deadlines approach. Yet the most expensive bugs are the ones found after release—not during development.

The numbers behind this are often cited in the industry: fixing a bug in production can cost tens of times more than fixing it during design or development. For businesses that rely on digital systems—POS, websites, internal apps, marketplaces—one small bug can mean lost sales, eroded customer trust, and reputation damage that takes years to rebuild.

This article is a complete guide to software testing and QA for business owners: what types of testing exist, when and how to do them, what they cost in the Indonesian market, and how to make sure your development partner doesn't skip this stage.

What Are Software Testing and QA?

The terms "testing" and "QA" are often used interchangeably, but they're different.

Software testing is the activity of running software to find bugs or verify it works as specified. It answers the question: "does this system work as promised?"

Quality assurance (QA) is a broader process: the systems and practices that keep software quality intact across the entire development lifecycle—not just finding bugs, but preventing them. QA covers code standards, reviews, release processes, and a culture of quality in the team.

A simple analogy: testing is the final inspection at a factory; QA is the entire quality management system that makes products rarely defective from the start.

For business owners, this difference matters because it determines where your money should be invested. Relying on testing alone means you'll keep chasing bugs that appear. Building QA means reducing the number of bugs born in the first place.

Why Businesses Often Skip Testing

If testing is so important, why do so many Indonesian software projects skip it?

Deadline pressure

Testing is the easiest stage to cut when schedules slip. "The feature works, we'll test after release" is the sentence that ends many projects—and starts many incidents.

The assumption that "the developer tried it"

A developer trying their own feature isn't testing. They test the paths they know will work; they rarely test strange combinations, unexpected inputs, or user behavior that makes no sense. This isn't a developer weakness—it's the limitation of perspective of someone who wrote the code.

Perceived cost

Many business owners see testing as an added cost with no visible result. In reality, testing is insurance: it doesn't add features, but it protects features you already paid for. One bug in a payment system can cost far more than a year of testing budget.

Not knowing what to test

Business owners often don't know what's "worth" testing. As a result, they delegate the decision entirely to developers—who may not have a good testing process themselves.

Types of Testing You Should Know

Not all testing is the same. Understanding the basic categories helps you communicate with development teams and ensure adequate coverage.

By technical level

TypeWhat it testsAnalogy
Unit testingOne function or small componentChecking one bolt is fastened correctly
Integration testingCooperation between componentsChecking two machine parts connect
System testingThe whole application as one unitRunning the entire machine
Acceptance testingFit with business requirementsTesting whether the machine keeps its marketing promises

By execution method

  • Manual testing: humans run the application and check its behavior. Important for user experience, design, and scenarios that are hard to automate.
  • Automated testing: scripts run tests automatically. Fast, repeatable thousands of times, and highly effective at preventing old bugs from returning (regression).

By focus

  • Functional testing: do features work as specified—price calculation, data storage, notifications.
  • Performance testing: does the system stay fast when thousands of users access it simultaneously, or when data grows?
  • Security testing: is the system resistant to attacks—hacking, data injection, unauthorized access? Details are in our website security guide for business.
  • Usability testing: can real users operate the app without confusion?
  • Compatibility testing: does the app run on the various devices and browsers your customers use?

Business owners don't need to master the technical details of all these types. What you need to know: each type answers a different risk, and ignoring one means letting one class of bugs through unchecked.

When Testing Should Happen

The most expensive mistake in software is treating testing as the final stage. Healthy testing is spread across the entire development cycle.

During development

Every finished feature should be tested immediately—unit tests by the developer, then review by another developer. Bugs found here are the cheapest to fix: the context is fresh, the code is small, and no users are affected.

Before release

Before a feature or new version launches, run a comprehensive test suite: functional tests for all main flows, regression tests to ensure old features aren't broken, and performance tests for load scenarios. This is the last gate before code touches real users.

After release

Release isn't the end. Continuous monitoring—error tracking, logs, user feedback—catches problems invisible in the testing environment. The real world is always stranger than any scenario: old devices, slow networks, data nobody imagined. Read our guide to app development costs to understand that post-release maintenance is a cost that must be budgeted from the start.

When automation is worth it

Automation requires an initial investment (writing scripts) and maintenance costs. It's worth it when: the app is feature-stable, there are flows retested at every release, or the team is large enough that manual testing becomes a bottleneck. For an MVP that changes drastically every week, full automation can become a burden instead. This decision should be made with the technical team based on real considerations, not dogma.

How Much Does Testing Cost in Indonesia?

Testing costs vary by project type, complexity, and execution method. Here are estimates for the Indonesian market:

Project scaleTesting durationEstimated cost
Company profile website3-7 daysRp 1-4 million
Simple business app1-2 weeksRp 3-10 million
Mid-size app (mobile + web)2-4 weeksRp 10-40 million
Complex systems (ERP, marketplace)1-3 months, ongoingRp 30-150 million+
Ongoing QA (dedicated tester)per monthRp 8-20 million/month

These figures are indicative and depend on scope (how many features, how many devices), testing type (manual only or plus automated), and tester seniority. What to understand: testing typically runs 15-30 percent of total development cost for seriously executed projects. If your testing budget is 2 percent of development cost, something is wrong.

How to judge whether testing pricing is fair

  • Compare with risk: how much would you lose if the system fails at peak hours?
  • Ask about scope: which features are tested, which devices, which scenarios?
  • Request reports: testing without a readable report is the same as no testing.

What to Test: Prioritize by Risk

Not all features need the same testing depth. Testing everything with equal depth is waste; testing randomly is a lottery. A risk-based approach is the healthy middle path.

Features that must be tested deepest

  • Payment and transaction flows: prices, discounts, taxes, shipping, refunds. Errors here hit money directly.
  • Customer data: registration, login, privacy. Errors here destroy trust and can run into data protection regulation.
  • Sync and integration: connections to payment gateways, marketplaces, or internal systems. Failures here are often invisible until everything jams.
  • Reporting and numbers: sales, stock, financial reports. Wrong numbers are more dangerous than no numbers, because decisions are made on top of them.

Medium-risk features

  • Flows used occasionally: settings, user management.
  • Display and information: profile pages, help pages.

Low risk

  • Cosmetic changes that don't touch logic.
  • Content that's easy to verify visually.

The principle: allocate testing according to failure cost. One extra hour in the payment flow saves hundreds of hours of incident repair.

Testing Myths That Persist

"Our app is small, no testing needed"

The smaller the business, the thinner the margin for absorbing failure. A small shop whose POS fails on payday loses daily sales that can never be recovered. App size isn't the measure of risk; business dependence on the app is.

"Testing slows down releases"

Good testing actually speeds up releases in the long run. Teams that don't test spend their time fighting fires after release—far longer than prior testing would have taken. Companies serious about testing release more often, not less.

"Someone tried it, so it's tested"

Trying differs from testing. Testing means running planned scenarios, comparing results with expectations, and documenting findings. "I tried it, it works" is the start of every production incident.

"QA is only the tester's job"

Quality is the whole team's responsibility: developers who write tests, designers who think about edge cases, product owners who define expectations, and business owners who provide time and budget. Professional testers lead the process, but can't carry it alone.

How to Ensure Your Development Partner Does Testing

The most influential decision isn't the testing type—it's who does it. When working with a software house or developer, ask these questions before signing the contract:

  • What is your testing process? (unit tests? reviews? manual QA? automation?)
  • Who tests—the same developer or a different person? (Testing by the code author has blind spots; a second person sees with different eyes.)
  • How are test results reported to clients?
  • What happens if a bug is found after release? (Who pays for the fix, and how fast?)
  • Is there a testing environment separate from production? (Testing directly on the production server is a dangerous practice.)

A professional software house will answer these questions specifically, not with "don't worry, we're used to it". If the answers are vague, that's a signal testing isn't a serious part of their process.

When choosing a partner, also check whether they separate the QA role from development. The Kartech. team in Bandar Lampung applies structured testing processes in every delivery—not just at project end—and reports results transparently to clients. If you're evaluating development partners, also read our guide to choosing a software house, which covers evaluation criteria in full.

Building Your Own QA Team vs Outsourcing

Once your app is running and keeps evolving, a question arises: who maintains its quality long-term?

OptionBest forConsiderations
Developers test themselvesSmall teams, simple appsBlind-spot risk; unsustainable as complexity rises
Full-time internal QAApps that keep growing, 3+ developer teamsFixed cost; ideal for core products
Part-time / freelance QASeasonal testing loads (before major releases)Flexible; needs good documentation
QA from a technology partnerSmall teams that don't want headcount growthAccess to expertise without fixed cost

A common, healthy pattern: internal QA for core products, plus external capacity at peak loads. For companies whose apps are built by a partner, asking the partner to provide independent QA (not the same developer) is reasonable practice and should be agreed from the start.

Testing and Legal Risk

There's a rarely discussed dimension of testing: legal and regulatory protection.

  • Data protection: Apps storing customer data must protect it. A data breach isn't just a reputation loss; Indonesia's Personal Data Protection Law (UU PDP) carries legal consequences for data controllers. Security testing isn't optional—it's an obligation.
  • Development contracts: Good contracts include agreements on quality standards, acceptance criteria, and post-release fix responsibility. Without these, "bugs" become a gray area debated after money is paid.
  • Warranty: Professional software houses usually offer a bug-fix warranty period after release. Ask about this before signing.

Testing, in other words, isn't just a technical matter—it's also a contract and compliance matter.

Bug Severity: Setting Fix Priorities

When bugs are found—and they will be found—the first question isn't "whose fault is it", but "how severe is this?". Without clear classification, teams can spend time fixing trivial problems while major ones wait, or the opposite: panicking over small things because nobody knows what's truly urgent.

A standard classification business owners can use:

SeverityExampleReasonable response
CriticalPayments fail, data lost, system completely inaccessibleStop the release; fix immediately, within 24 hours
HighMajor feature partially broken, transaction flow obstructed with a workaroundFix before the next release; communicate with affected customers
MediumSecondary feature malfunctioning, layout broken on some devicesSchedule for the next cycle
LowMinor errors, cosmetic issues, wrong textCollect and fix in routine releases

Two mistakes commonly happen when applying this classification. First, judging severity from a technical viewpoint instead of a business one: a bug affecting "only" one percent of transactions can be critical if that one percent is high-value transactions. Second, letting medium and low bugs pile up indefinitely—each release adds new ones while old ones never get fixed, until the team drowns and every fix becomes slow. Healthy companies schedule regular time to clear bug debt, not just put out the biggest fires.

A practical rule for business owners: agree with the team in advance on who has authority to decide severity, and make sure there's a clear emergency communication channel for critical bugs—including outside working hours. Decisions agreed beforehand are far faster than decisions born in a panic.

A Simple Case Study: The Cost of a Late-Discovered Bug

Imagine a POS app for a restaurant. A developer changes the tax calculation logic to comply with a new regulation. The change is small—three lines of code. They test one scenario: a regular order with 11 percent tax. Correct. It ships.

Two weeks later, restaurants report strange tax figures on orders using discount vouchers. The new code turns out to calculate tax on the discounted price, while the regulation requires tax on the price before discount. The difference is small per transaction—maybe Rp 2,000—but for a restaurant with 200 transactions a day, it's Rp 12 million per month in tax reports, and worse: financial reports for three branch restaurants over two weeks must be recalculated manually.

Total cost: bug confirmation (2 days), code fix (1 hour), data and report repair (5 days), plus eroded client trust. All of this could have been prevented by one additional test case in the "discount + tax" flow—costing less than an hour of work.

This is why testing deserves to be seen as an investment, not a cost. Every scenario tested is an insurance claim you never have to pay.

Practical Pre-Release Checklist

A summary business owners can use when an app is ready to launch:

  • Payment flow tested with all combinations (promos, vouchers, tax, shipping, refunds)
  • Registration and login tested on various devices and browsers
  • Important data backed up and recovery procedure tested (not just planned)
  • Peak load tested: what happens when 10x normal users access simultaneously?
  • Third-party integrations (payment gateways, marketplaces, couriers) tested end-to-end
  • Test results documented and readable by non-technical stakeholders
  • Incident response plan: who gets called, how, how fast
  • Bug-fix warranty period written into the contract

This checklist doesn't replace a professional QA process; it's a minimum safety net business owners can use to ensure no stage is skipped.

Conclusion: Quality Is a Business Decision

Back to the online store at the start of this story. Four hours of downtime on a major promo night isn't just one night's loss. It's a story customers tell other customers, error screenshots spreading, and trust that can't be rebought with the next discount.

Software testing and QA aren't luxuries for big companies. They're business decisions as important as pricing and features—because bugs your customers find are the most expensive ones, and damaged reputations don't appear on income statements but still show up in sales figures.

Invest in quality from the start: choose a partner with a real testing process, allocate proportional budget, and make "it's tested" a non-negotiable release requirement. In the long run, teams disciplined about testing will beat teams that are only clever at adding features—by a wide margin.

If you're planning application development or want to ensure the quality of a running system, the Kartech. team in Bandar Lampung can help: from structured testing processes in development, to our maintenance & evolution services that keep your application healthy after release. Start a conversation through our contact page.

Foto: Unsplash

Bring us the hard part.

Tell us what is blocked, what must be built, or where your current technology is falling short. We will start with the problem.

Talk to us