Types of Software Testing (3)

This is a continuation from my previous posts ( post1 & post 2 ) on types of software testing.

Static testing

Static testing involves testing of an application without executing it. This is done either manually or using static analysis tools. Examples of static test types include - Desk checking, Code walk-through, Code reviews and inspection

Scenario Testing

Scenario testing is a type of testing involving use of scenarios or stories pertaining to application usage.

Scripted Testing

Scripted Testing is testing that follows a scripted path designed by the tester. Step by step instructions and expected outcomes are defined making it easy for testers to follow.

Security Testing

Security Testing is a type of testing intended to identify defects in an applications security mechanism(s). Tests span vulnerability assessments, data integrity checks, fuzzing, verifying - authentication, authorization, confidentiality, etc.

SME Testing

SME (Subject Matter Expert) Testing involves testing by a domain/subject matter expert. For example, when developing a HR application you would have a domain expert as in a HR practioner as the SME doing tests. Similarly, a finance professional testing a financial application and so on. SMEs can also be experienced technical experts who can guide the team on technical aspects.

Smoke Testing

Smoke Testing is a subset of regression tests that are normally run to verify if a drop/build is ready for further more extensive testing. Sometimes referred to as BVT (Build Verification Tests) or BAT (Build Acceptance Tests).

Soak Testing

Soak Testing is a type of performance test involving a specified load (often intended to mimic real world usage) over an extended duration of time to verify the system's ability to sustain the load.

Specification Testing

Specification Testing involves using the application's specifications as the reference for designing tests, selection of data and determining adequacy.

Standards / Compliance Testing

Standards / Compliance Testing is a type of testing to verify if the application meets the required/specified standards and can be viewed as an audit of the system for compliance.

Section 508 accessibility testing

Quoting directly from the US government site - 'Section 508 of the Rehabilitation Act, as amended by the Workforce Investment Act of 1998 (P.L. 105-220) requires federal agencies to develop, procure, maintain and use information and communications technology (ICT) that is accessible to people with disabilities - regardless of whether or not they work for the federal government.' In summary, this means products are accessible to all users irrespective of their disability status. This could mean that products are compatible with assistive technology, such as screen readers.

SOX testing

SOX testing involves verification of compliance to the Sarbanes-Oxley act. The Sarbanes-Oxley Act is legislation passed by the U.S. Congress to protect shareholders and the general public from accounting errors and fraudulent practices in the enterprise, as well as improve the accuracy of corporate disclosures.

State Testing

State Testing involves testing for state transitions which may be impacted by change in input conditions and/or sequencing of events.

Stress Testing

Stress Testing involves verifying a systems behavior under adverse situations such as excessive load beyond what it is designed for until the system's performance degrades significantly or fails.

System Testing

System Testing involves testing of the complete system or product with all its components/modules integrated. The system test looks at the system from the customer/client's perspective. System tests validate whether the software meets the requirements (functional and non-functional).

Testability Testing

Testability Testing involves testing the ability of each piece/functionality of the application to be tested. It tells us about the ease with which the application/its features can be tested.

Unit Testing

Unit Testing involves testing of each unit (smallest testable piece) of software to validate it performs correctly as expected.

Upgrade & Migration Testing

Upgrade testing involves testing of the move or upgrade of an existing system from one version to a higher version. Migration testing involves testing of the move from one system to another.

Usability Testing

Quoting directly from the usability site - "Usability testing refers to evaluating a product or service by testing it with representative users. Typically, during a test, participants will try to complete typical tasks while observers watch, listen and takes notes.  The goal is to identify any usability problems, collect qualitative and quantitative data and determine the participant's satisfaction with the product."

White box Testing

White box Testing (also known as glass box testing, clear box testing, open box testing, transparent box testing) is testing based on knowledge of the internals of the application. Tests are designed based on knowledge and examination of the application's internal architecture, design and code.    Types of white box testing include - Unit Testing, Code Coverage Testing, Statement/Path/Function/Condition testing, Complexity Testing / Cyclomatic complexity, Mutation Testing


Related posts