Software Testing Types


Types of Software TestingStaticReview of DesignReview of All DocumentsCode InspectionData VerificationFunctionalGUIAPICore LevelPerformanceLoadStressVolumeCapacitySecurityWhite Box Security TestingAuthentication / AuthorizationEnvironmental andApplication Vulnerabilities
Open Full-Size Diagram

Software Testing Types

Functional Testing

Functional testing often uses black box techniques and test cases based on the specifications to check whether the software meets the client’s requirements. The following checks help.

  1. Understand exactly what the application is expected to do.
  2. Prepare suitable test data, including valid and invalid inputs.
  3. Check the output for that data against the functional specification.
  4. Cover the required scenarios and prioritize the highest risks. Testing every possible scenario is rarely practical.
  5. Record the actual result for each input and compare it with the expected output.

Use functional checks at different test levels and after changes.

  1. Unit Testing
  2. Integration Testing
  3. System Testing
  4. Regression Testing
  5. Acceptance Testing

Non-Functional Testing

Performance, security and user-interface quality are important non-functional requirements. Non-functional testing checks these attributes. Its main types include:

  1. Performance Testing
  2. Usability Testing
  3. Security Testing
  4. Portability Testing

Usability Testing

Usability testing checks how easy the software is to use. This black box approach asks three questions: Is it convenient? Can the user operate it? Can the user learn it? Usability includes these aspects:

  • How easily users adapt when they first try the system.
  • How efficiently users accomplish tasks, including the speed of completion.
  • How easily users can return to the system after a long period away.
  • Whether users encounter errors and how easily they recover.
  • Whether the experience satisfies users.
Usability testing gives users assurance about quality and ease of use. Plan it carefully to satisfy customers and make the work beneficial and economical. Random use during this testing can uncover defects that routine tests miss.

Graphical User Interface Testing

Graphical user interface (GUI) testing checks that the interface works correctly and meets defined quality standards. Check the following elements:

  • Layout
  • Colors
  • Fonts
  • Font size
  • Labels
  • Text box functions
  • Text formatting
  • Captions
  • Buttons
  • Lists
  • Icons
  • Links
  • Content
  • Shortcut keys
  • The processing indicator, such as an hourglass, while the system works
GUI testing can be manual or automated, depending on what suits the tester. It is sometimes performed by a third-party organization rather than the company’s development or testing team.

Non-Graphical User Interface Testing

The graphical user interface defines an application’s look and feel. Non-GUI testing covers interactions outside that visual interface, including command-line interfaces, batch processes and events that trigger use cases.

Portability Testing

Portability testing checks how a change of environment affects software behavior and performance. For example, test an application on different operating systems, or a web application in different browsers. This matters when the customer intends to use more than one platform.

Portability testing is a subset of system testing. Install the software in different environments, or build and run its executables on different platforms. Consider portability requirements during design and development. Carry out this testing after integration testing, using suitable test environments.

Security, Authentication And Authorization Testing

Security testing looks for security flaws and checks that software can protect confidential customer information when needed. Authentication and authorization are two important areas.

Authentication checks the identity of someone trying to access the application. A username and password are one example. If the combination is incorrect, access is denied because the claimed identity has not been verified.

Authorization controls access to restricted data, features and use cases. Passing authentication does not grant access to everything. For example, signing in to a social media account gives you access to that account’s details, not unrestricted access to other people’s accounts.

Security testing also covers confidentiality, integrity, availability, non-repudiation, data security, SQL injection, cross-site scripting and other security concerns. This is a specialist field in its own right.

Data And Database Integrity Testing

Data integrity testing checks that stored data is accurate and produces the expected results. Check whether blank data can be retrieved, whether data is validated before it is saved, whether stored data can be updated and whether tests cover the required data-file types. The goal is accurate, consistent data throughout its life cycle.

Database integrity testing checks the methods and processes used to access the database, manage data and process it. Data must not be corrupted or created, updated or deleted unintentionally. Include test cases for each of these conditions.

Fault Tolerance And Failover Testing

Fault tolerance testing checks how an application responds to faults in real-world conditions. Scenarios include network connection errors, application-server connection problems and database connection failures.

Failover testing checks whether the system switches to a standby component or service after a severe failure, such as a hardware fault or crash. Check that critical work can continue during the switch. Recovery tests can then check whether the original service returns to the expected state.

Configuration and Deployment Testing

Configuration testing checks performance under different system configurations. It helps determine response times in the test environment and the configuration needed for expected performance. It also supports migration between platforms by checking compatibility with the new environment and its hardware specifications.

Deployment testing checks that the deployed system works properly. Look for slow performance or crashes, check operation in real-world conditions, and verify that the software is deployed correctly in the intended folder.

Regression Testing

Send detected defects for correction. Confirm that the fix resolves the original problem. Then run regression tests to look for unwanted effects in the changed area, elsewhere in the application, or in business logic. Use the results to decide whether the software is ready for the next testing phase.

Performance Testing

Performance testing investigates network delays, data rendering, database transaction processing and load balancing between servers. Its focus is performance problems, rather than only defects in individual software functions. Use it to assess stability, scalability, speed, response times and data rendering.

Load Testing And Performance Benchmarking

Load testing checks software behavior under maximum or peak load. Tools such as JMeter, LoadRunner and Silk Performer create virtual users and run scripts to simulate concurrent access. The tester controls the number of virtual users and observes the system’s behavior.

Stress Testing

Stress testing deliberately creates abnormal conditions and observes performance. Apply loads beyond acceptable limits or withdraw resources to find the point at which the software fails. Examples include stopping and restarting a database, randomly closing or restarting network ports, and running processes that consume large amounts of resources.

Testing TypeUnit TestingIntegration TestingSystem TestingAcceptance Testing
Functional TestingYesYesYesYes
Configuration TestingNoNoYesYes
User Interface TestingNoNoYesYes
Usability TestingNoNoYesYes
Installation TestingNoNoYesYes
Document TestingYesYesYesYes
Performance TestingYesYesYesYes
Security TestingNoYesYesYes
Scalability TestingNoYesYesNo
Open Full-Size Diagram

Software Testing Types Summary



We guarantee that your free online training will make you pass your Software Testing Certification Exam!

  1. 01

    Register Online

    Choose your Accredited certification and complete your registration.

  2. 02

    Receive Your Access Code

    Your personal exam access code is delivered instantly by email.

  3. 03

    Prepare & Take Your Exam

    Study your free training and answer your 50 multiple-choice questions online.

  4. 04

    Earn Your Lifetime Credential

    Receive your worldwide-valid certificate and verifiable digital badge.

Accredited Software Test Manager Certification™ sample
Register for Certification

YOUR FREE PREMIUM ONLINE TRAINING

Your Software Testing Revealed, Second Edition, Is Ready.

We created your training with a consortium of renowned business and people leaders, software testing coaches, mentors, experts and authorities from all major industries. Everyone visiting International Software Test Institute™ can access it. Find the materials through Your Free Software Testing Book and Your Free Premium Software Testing Training in the top menu.

These materials are the copyrighted intellectual property of International Software Test Institute™. We share them freely with everyone because sharing our expertise serves software testing professionals and helps the field develop.

Your certification examination uses multiple-choice questions. Read your online training to build the knowledge you need to pass your examination and earn your Software Testing Certification.

We guarantee that your free premium online training will make you pass your Software Testing Certification Exam!