Software Testing

"Without requirements or design, programming is the art of adding bugs to an empty text file."
~Louis Srygley
Software testing word cloud

What is Software Testing?

Software testing is a shared software development function that reviews the software for defects and bugs. These deficiencies and bugs don't just live in code, they live in all aspects of the software development life cycle, including:

  1. Requirements Specification: During this initial stage, software functionality is defined. Errors at this stage can lead to a final product that does not meet business or stakeholders needs.
  2. Design: Errors in the software design phase generally results in defects in software architecture and system integration, making systems harder to build and maintain.
  3. Documentation: Inaccurate, outdated, or incomplete documentation leads to confusion amoung team members and end users, resulting in incorrect usage or misunderstanding of the software’s functionality.
  4. User Interface: Defects in the user interface leads poor user experience and low software adoption rates.

Types of Software Testing

There are several types of testing that can be done at various phases of the software development lifecycle. These types of testing include:

  1. Static Testing: Reviewing requirements and documenation for defects or omissions.
  2. Functional Testing: Validates software against functional requirements including inputs and subsequent outputs.
  3. Integration Testing: Tests individual components of a software system together to verify all parts work together as expected.
  4. Acceptance Testing: Testing to validate the the software system works as intended and meets business and stakeholder requirements.

Tools and Resources

Here is a list of popular software testing knowledge resources that you can check out online:

For more information on software testing resources, please email us!