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
Free preview
Create a free account to keep watching
It takes a minute and costs nothing. Your free account unlocks all of Chapter 1 and 3 more lessons of System Analysis and Design.
Lesson complete
Earn the 3 college credits for System Analysis and Design
Enrolling adds a quiz after each lesson, the graded work and the official transcript. Recommended for credit by NCCRS.
Next lesson: Dry Run Testing: Simulating Before Shipping →← Verification in the SDLC: Confirming the System Meets Requirements and Design SpecificationsNext lesson: Dry Run Testing: Simulating Before Shipping →
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.
Enroll now → Course details Download the syllabus All Computer Science courses Every course with PRO →
Why take it here
Why students take System Analysis and Design with UPI Study
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.
Thomas Edison State UniversitySigned partner
University of the PeopleSigned partner
Charter Oak State CollegeSigned partner
Strayer UniversitySigned partner
Columbia Southern UniversitySigned partner
Indiana TechSigned partner
Penn StateWorks with NCCRS
Southern New Hampshire UniversityWorks with NCCRS
SUNYWorks with NCCRS
+many more cooperating universitiesFind my college →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?
What is the difference between load testing and stress testing?
What is the difference between alpha testing and beta testing?
What is the difference between smoke testing and regression testing?
About the System Analysis and Design course
How many college credits is System Analysis and Design?
How much does System Analysis and Design cost and what is included?
Which universities accept UPI Study credits?
How long does System Analysis and Design take?
How are the exams done?
How do my credits reach my college?
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.
3 credits · NCCRSEnroll →