Exploring the Different Types of Software Testing, Explained

UPI Study › Courses › System Analysis and Design › Free lessons › Lesson 7.6 Free with a free account

Exploring the Different Types of Software Testing

System Analysis and Design · Chapter 7: Implementation, Testing, and MaintenanceSection 7.6 · lesson 51 of 698 min · free with a free account

← Verification in the SDLC: Confirming the System Meets Requirements and Design SpecificationsNext lesson: Dry Run Testing: Simulating Before Shipping →

Earn 3 college credits for System Analysis and DesignRecommended for credit by NCCRS · Computer Science 390 · self-paced · one payment, lifetime access

In this lesson

What each kind of test checks, and where it fits.

  • Distinguish black-box from white-box testing, and explain system testing
  • Distinguish functional testing from 5 kinds of non-functional testing
  • Explain alpha and beta testing, and regression and smoke testing
  • Compare manual and automated testing

Transcript

Everything said in the video, section by section (1,056 words). Read along, or search it.

Implementation, Testing, and Maintenance

Types of Software Testing

No single test can catch every kind of problem. So teams combine several distinct types of testing, each aimed at a different question. This section works through the major types an analyst will meet, building on the unit and integration testing covered earlier.

Visibility, Not Timing

Black-Box vs. White-Box

Black-box and white-box testing differ in how much of the system the tester can see. Not in when they happen. In black-box testing, the tester has no visibility into the code. They test only inputs, and the outputs they observe. It is best for confirming that the system meets its functional requirements. In white-box testing, the tester can see the code, and designs tests to exercise specific logic and branches. It is best for confirming that every code path, including rare edge cases, behaves correctly. So if a tester reads the source code, and writes a test aimed at a rarely used branch of an if-statement, that is white-box testing. It is only possible because the internal structure is visible.

System Testing

The Whole System, End to End

System testing evaluates the complete, integrated system as a whole, against its documented requirements. It happens after the individual pieces are already confirmed to work together. And it asks a broader question. Does the finished system, end to end, do what it was supposed to do? Picture a retailer where the checkout feature works, and the payment feature works. But placing an order fails, because the two do not pass data to each other properly once both are live. Testing either feature alone would never reveal that. System testing, of the whole thing running together, does.

What vs. How Well

Functional and Non-Functional Testing

Testing also divides by what it is checking. Functional testing checks whether the system does what it is supposed to do. Whether a specific feature produces the correct result. Non-functional testing checks how well the system does it. It covers qualities like speed, safety, and ease of use, which sit outside any single feature.

Non-Functional Testing

5 Common Types

Five types of non-functional testing are common. Performance testing checks how quickly the system responds under normal conditions, such as page load time for a typical user. Load testing checks whether the system holds up at its expected peak level of usage, such as the traffic of the busiest shopping day. Stress testing checks how the system behaves once usage goes beyond what it was built to handle. Traffic is raised until the system fails, to see how it fails. Security testing checks whether the system protects data and resists unauthorized access, such as trying to open another user's account. And usability testing checks how easily a real user can complete a task, such as watching a new user try checkout without guidance. A page can load quickly, and still let one user see another user's saved payment methods. Only security testing catches that.

Figure 2

Load Testing vs. Stress Testing

Load and stress testing are closely related, but they ask different questions about the same rising traffic. Here, traffic climbs over time. Load testing brings the traffic up to the expected peak, and holds it there. Does the system cope with the busiest day it was designed for? Stress testing keeps pushing, past the expected peak. It does not stop until the system breaks. The point is to learn where the breaking point is, and how the system fails when it gets there.

User Acceptance Testing

Alpha, Then Beta

User acceptance testing, or U A T, confirms that real users, not just the development team, accept the finished system as fit for their needs. It typically runs in two rounds, widening the audience as confidence in the release grows. In alpha testing, employees or an internal team test the system, before any outside user sees it. This happens in-house, on a controlled test environment. In beta testing, a limited group of real, external users test the system in their own environment, on their own devices and data. So a company that releases a new build to its own employees, for a week, is running an alpha test. A beta test with outside users typically comes next, before the full release.

After Every Build and Change

Smoke Testing and Regression Testing

Two more types are defined by when they run. Smoke testing is a small, fast check. A quick pass over the most basic functions, right after a build. It confirms the build is stable enough to bother testing further at all. Regression testing re-runs existing tests after a change, to confirm the change did not break something that used to work. Suppose a developer fixes one bug, and then re-runs the entire test suite, rather than testing only the fix. That is regression testing, and it matters. A change in one place can unintentionally break something elsewhere. The only way to catch that is to re-check the rest of the system.

Manual vs. Automated

Most Teams Use Both

Nearly any of these tests can be run by hand, or through automation. Most teams use a mix. Manual testing varies with the tester's attention and fatigue. Automated testing runs the exact same steps every time. Manual testing is slow for large or repetitive suites. Automated testing can run thousands of checks in minutes. Manual testing suits exploratory and usability testing, where human judgment matters. Automated testing suits regression suites, and repetitive checks that rarely change. And manual testing is cheap to start, with no scripting. Automated testing costs more up front, because the tests must be written and maintained.

Key Terms

The Vocabulary of This Section

Let's lock in the key terms. Black-box testing uses only inputs and outputs. White-box testing is designed with the code in view. System testing checks the complete, integrated system against its documented requirements. Load testing checks the expected peak. Stress testing pushes beyond it, to see how the system fails. Alpha testing is internal user acceptance testing. Beta testing uses a limited group of real, external users. Smoke testing is a fast, basic check after a build. Regression testing re-runs existing tests after a change.

Key Takeaways

What to Carry Forward

To pull this together. Black-box and white-box testing differ in visibility into the code, not in when they happen. System testing checks the complete, integrated system against its requirements. Functional testing checks what a system does. Non-functional testing checks how well it does it. Load testing checks the expected peak, and stress testing pushes past it to find the breaking point. Alpha testing runs internally first, then beta testing with real users. Smoke testing follows a build, and regression testing follows a change. And manual testing suits exploratory and usability work, while automated testing suits large, repetitive regression suites.

About System Analysis and Design at UPI Study

System Analysis and Design (Computer Science 390) is a self-paced online course of 69 video lessons in 9 chapters, from the analyst's role and requirements to UML modeling, interface and database design, testing, maintenance and project management. It carries a NCCRS credit recommendation for 3 semester credits.

Every lesson transcript is free on pages like this one, and the videos are free with a free UPI Study account. Enrolling adds a practice quiz after each lesson, the graded work and final exam that earn the credit, lifetime access, and an official transcript on completion. UPI Study has helped over 130,000 students with college credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Compare: Software Engineering vs Systems Analysis

Why take it here

Why students take System Analysis and Design with UPI Study

From business problem to working systemSystem Analysis and Design teaches how analysts study a business need and turn it into a system design: requirements, UML and data-flow models, interface and database design, implementation and project management. It is a core course in information systems and IT degrees.
Credit at a fraction of the priceThe same 3 credits can cost $750 or more at a US college. Here it is one payment, self-paced, with lifetime access.
Finish your degree soonerTransfer credits reduce the courses you still owe, so you can graduate earlier or lighten a heavy semester.
Strengthen an applicationA completed college-level course on an official transcript shows admissions and scholarship committees you can do the work.
Study on your own scheduleNo start dates, no deadlines. Watch the lessons, practice, and take the final when you are ready.
130,000+students helped with college creditsACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Where the credit goes

Universities that work with NCCRS

System Analysis and Design carries a NCCRS credit recommendation. These universities work with NCCRS; some are UPI Study's signed partners. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Find my college → Not listed? Ask Athena in the corner of this page, or book a 15-minute call.

FAQ

Questions students ask us

About Exploring the Different Types of Software Testing

What is the difference between black-box and white-box testing?
Black-box and white-box testing differ in how much of the code the tester can see. In black-box testing, the tester works with inputs and observed outputs, which suits checking functional requirements. In white-box testing, the tester reads the code and designs tests for specific logic and branches, such as a rarely used if-statement branch, to confirm that every code path behaves correctly.
What is the difference between load testing and stress testing?
Load testing checks whether a system copes at its expected peak usage, while stress testing pushes beyond that peak until the system fails. Load testing raises traffic to the busiest level the system was designed for, such as a major shopping day, and holds it there. Stress testing keeps increasing traffic to find the breaking point and to see how the system behaves when it fails.
What is the difference between alpha testing and beta testing?
Alpha testing is done by employees or an internal team in a controlled, in-house environment, while beta testing is done by a limited group of real external users on their own devices and data. Both are rounds of user acceptance testing, which confirms that real users accept the system as fit for their needs. A company giving its staff a new build for a week is running an alpha test.
What is the difference between smoke testing and regression testing?
Smoke testing is a quick check of the most basic functions right after a build, while regression testing re-runs existing tests after a change. A smoke test answers whether the build is stable enough to test further. Regression testing confirms that a change, such as a bug fix, did not break something that used to work elsewhere. Automation suits regression suites because they are large and repetitive.

About the System Analysis and Design course

How many college credits is System Analysis and Design?
System Analysis and Design (Computer Science 390) carries a NCCRS credit recommendation for 3 semester credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
How much does System Analysis and Design cost and what is included?
$250, paid once, with lifetime access: all 69 video lessons, a practice quiz after each, the graded work and final exam, and an official transcript when you finish. Students who want several courses choose UPI Study PRO instead.
Which universities accept UPI Study credits?
UPI Study has signed partner agreements with universities such as Thomas Edison State University, University of the People and Charter Oak State College, and works with universities such as Penn State, SNHU and SUNY. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities. Use "Find my college" on this page to check yours.
How long does System Analysis and Design take?
It is self-paced with no deadlines. The 69 lessons total about 9 hours of video; most students add reading and practice time and finish in a few weeks to a few months, on their own schedule.
How are the exams done?
Quizzes and assignments are online in the course. The final exam is taken online with proctoring; a person on the UPI Study team checks assignments, usually within two days.
How do my credits reach my college?
When the course shows 100% complete, request the official transcript from your dashboard. It is sent to the college you name, and you can send it to more than one. Check your college first with "Find my college" on this page, or ask Athena.

Ready for the full course? Earn 3 credits in System Analysis and Design.

69 video lessons, a quiz after each one, and the graded work that earns the credit. Recommended for credit by NCCRS.

System Analysis and Design
3 credits · NCCRS
Enroll →