What is Software Testing?

Software Testing is a process of evaluating a product and its conformance. Software Testing is a subset of Software Development Life Cycle (Requirements > Design > Code > Testing > Maintenance). Software testing is very critical phase in SDLC as it measures the quality aspects of the product.

Software testers verify and validate the product before it reaches the intended audience or end-users. Cost of fixing the defect in earlier phase (Requirements, Design, Code, and Testing) is lesser than in later phases (Maintenance and Live).

Below is the graphical representation of cost of fixing defects (in dollars) in various phases of product development.

Cost of Fixing Defects
Cost of Fixing Defects

Software testing can be called as verification and validation.

Verification is the process of checking whether the right process (or requirements) implemented or not during the initial phase of development.

Validation is the process of checking the product whether it is meeting the requirements or not at the end of development phase.

There are two types of testing: Static and Dynamic.

Types of Software Testing
Types of Software Testing

Static Testing:

Static Testing is non-execution based technique i.e. document-based testing. It involves of reviewing, understanding the requirements, coding, and design documents. Each document undergoes reviews against checklist, standards, and practices. It includes: Informal Review, Walk-through, and Inspections.

  1. Informal Review: Documents undergoes review process by peer on a need basis.
  2. Walk-through: It is a semi-formal review where the document undergoes review by the author.
  3. Inspection: Formal review done by third persons who are experts.

Dynamic Testing:

Dynamic Testing is an execution-based testing where the actual test execution takes place by the independent testers or developers. Entire system will undergo testing process to check the actual and expected results are meeting or not.

Dynamic Testing is divided into two types: Black Box and White Box.

Black Box Testing:

It is very famous and widely used type of testing. Testers will not know what is happening inside the product (which is a black box). Testers inject the inputs and checks whether the product is providing expected output or not.

  • It is conducted more from the end-users perspective.
  • No technical knowledge is required
  • It doesn’t focus on the implementation

System, Functional, Regression, and Performance testing falls under Black box testing.

White Box Testing:

White box testing is commonly used by developers where the internal structure/code is visible. Complete code is required to perform this testing. It helps to achieve code coverage, program logic and structure, functions, sub-routines, procedures, and complex paths.

  • Technical knowledge is required
  • It focusses on the implementation
  • It is conducted more from the developer’s perspective

Types of Testing

Functional and Non-Functional Testing Types
Functional and Non-Functional Testing Types

Cost of Fixing Defects

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Learn Apache JMeter for free. No Strings Attached.Watch Now for FREE
+ +
Share via
Copy link