02 - Introduction to Software and Software Testing

Martin MarkovMartin Markov
2 min read

Hi there! In my first article, High-Level Overview of Software Quality Assurance, I provided a brief introduction to Software Quality Assurance (SQA) as a whole. As we move forward and dive deeper into topics such as Software Testing, Testing Management, and Bug Reporting, it’s important to take a step back and clarify what we mean by “Software” and “Software Testing.”

In this article, I’ll define these key concepts, which will help lay a solid foundation for the more detailed discussions to come.

Software Overview:

A software is a collection of computer programs designed to perform specific tasks or functions.

Types of Software:

  • System Software:

    – Examples: Device drivers, Operating Systems, Servers, Utilities, etc.
    – Primarily manages computer hardware and provides a platform for other software to run.

  • Programming Software:

    – Examples: Compilers, Debuggers, Interpreters, etc.
    – Aids developers in creating, testing, and debugging software applications.

  • Application Software:

    – Examples: Web Applications, Mobile Apps, Desktop Applications, etc.

Software Testing

  • Definition:

    – Part of the software development process.
    – Activity to detect and identify defects in the software.

    - Objective: Release a quality product to the client.

  • Software Quality:

    – Quality is defined as justification of all the requirements of a customer in a product.

    – Quality is not defined in the product. It is defined in the customer`s mind.

  • Characteristics:

    – Bug-free.
    – Delivered on time.
    – Within budget.
    – Meets requirements and/or expectations.

    – Maintainable.

    Why Do We Need Software Testing?

  • Ensure that software is bug free.

  • Ensure that system meets customer requirements and software specifications.

  • Ensure that system meets end user expectations.

  • Fixing the bugs identified after release is more expensive.

    Project vs. Product

  • Project:

    - Developed for a specific customer based on their requirements.

  • Product:

    - Developed for multiple customers based on market requirements.

    Error, Bug/Defect and Failure

  • Error:

    – Human action that produces an incorrect result.

  • Bug/Defect:

    – Human action that produces an incorrect result.

  • Failure:

    – Human action that produces an incorrect result.

    Reasons for Software Bugs

  • Miscommunication or no communication.

  • Software complexity.

  • Programming errors.

  • Changing requirements.

  • Lack of skilled testers.

7
Subscribe to my newsletter

Read articles from Martin Markov directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Martin Markov
Martin Markov

Hello, I am Martin, a happy husband and father. I have done many types of jobs in my life, from cleaning car windows when I was 15 years old to being a Casino Supervisor at the biggest American cruise ship company. In every past job, I have found some meaning, but I haven't felt as much consistent challenge as I do when performing Software QA or Programming/Coding, and this is why I am passionate about it. I am a strong believer that putting any type of challenge in front of yourself and achieving it is the way to feel happy and find meaning in life. So, let's learn together how to be better at Software QA and Programming and become better versions of ourselves today compared to yesterday.