Software Testing Overview

Software Testing Overview and Examples

Software systems play an integral role in all aspects of our lives. Software systems can be used to run critical applications like ATMs, hospital tools, and consumer products such as smartphones and televisions.

Software problems can lead to serious problems such as loss of reputation, time, and money. Now let's take a look at some examples from the past.

In the 1980s, software problems in Therac-25 radiation therapy code caused some patient deaths.

In less than one minute after launch, the European Space Agency's proto-Ariane 5 rocket, which cost US$1billion, was destroyed. This was caused by a bug in the onboard guidance system.

Honda Company had 2.49 million cars, small SUVs, and minivans around the world recalled in 2011 because of a software problem that could have damaged its automatic transmission.

These problems can negatively impact a company's reputation, and lead to high-priced replacements.

Paramedics from the Fire Department put a woman on oxygen after an accident and confirmed that her oxygen system was functioning normally.

The oxygen system shut down for eight minutes before paramedics noticed it. However, the system was restarted immediately by the paramedics but the woman was already deceased.

After the incident, all electrical equipment was replaced by the fire department. The same problem occurred with new equipment weeks later.

An independent investigation found that the ambulance oxygen system was having a software problem. Now let's look at the software defect categories.

Read more about Software Testing Course in Pune

Software Problems in Different Categories

Software problems can have a devastating impact on individuals and the whole society.

Individual Impact

Monthly bills can have errors that could impact individuals. Errors in salary calculations are a common problem.

Other examples include inaccuracies with ATM withdrawal amounts, waiting times at traffic lights and petrol filling stations, and delays at telephone booths. Software defects are possible wherever software is used.

Individual defects have a lower impact than those that affect an entire organization. Now let's look at some of the problems that affect society.

Society's Impact

Train collisions could result in the loss of lives and property. Software bugs that run automated railway systems can also cause problems for the public.

In the next section, we will discuss the causes of software bugs.

Software Defects: What Causes?

Software developers can make mistakes during manufacturing, which can lead to software failures

Software can be subject to errors since they are manually designed. When requirements are clear, written or designed,

An error in porting an application to production could also cause errors.

A mistake is not always a problem and any defect doesn't necessarily mean the software will fail. Sometimes bugs can be hidden until they are discovered.

We will discuss this in the sections below.

Software Problems: Causes and Solutions

Let's take a look at the most common causes of software defects.

Undocumented requirements are the first. Software development begins with requirements.

There are many requirements that are not clearly understood and can lead to misunderstandings.

Teams that aren't trained in reading requirements documents may find it difficult to understand the meaning of certain documents.

Sometimes developers don't have enough hours to code or test. Defects can be introduced during testing.

Common defects are code and complex architecture.

The consequences of software flaws will be discussed in the next section.

Read more about Software Testing Training in Pune

Software Defects: What Are The Consequences?

If a mistake does not lead to a problem, or a failure then it is irrelevant.

An example of this is when all directions see the red light at 00:00 to 0:15 every morning. This is because the software controlling traffic signals at busy crossroads has made an error.

If the same error causes a green signal to go off every day from 12:00 Noon to 12:15 PM, it could lead to signaling problems that can cause serious accidents.

Now let's move on to the next topic.

Software Testing Overview

This section will provide an overview of software testing and describe the roles, objectives and principles of software testing.

Find out more: How to make a career in software testing

Let's begin by explaining what software testing is in this section.

Software Testing Definition

While testing doesn't have a standard definition, these are the most common:

Glenford J Myers is an American computer scientist and author who defines testing as «the act or part of executing a programming program with the intent to find errors.» "

According to the Institute of Electrical and Electronic Engineers (IEEE83a), testing is «the evaluation of a system or component using manual and automated methods to verify that it meets specified requirements.» "

Testing can be defined in a different way. It refers to the study of a system to identify the differences between existing and required conditions, and to assess its features.

Software testing is, in its most basic form, «verifying that software behaves as expected.» "

Now let's look at why software testing is so important.

Software Testing must

A 2002 study by the National Institute of Standards and Technology (NIST) revealed that software bugs were costing the United States 59.5 billion dollars annually.

Software testing could be improved by more than one-third. Errors can lead to costly and even fatal consequences.

Product reviews should be done by someone other than the person responsible for product development.

It's crucial to determine the severity and consequences of an error.

Software systems are not immune to errors. There are many errors that software systems can make.

Software testing is now a necessity. In the next section, we will list some terms that are commonly used for software testing.

Read more about Software Testing Classes in Pune

Common Testing Terms

These terms are often used in testing:

Debugging

Development is incomplete without debugging. This is the process of identifying and analysing problems, and then removing them from code.

Test

Testing is done by testers.

Testing is performed in the same environment as production. Debugging and Testing are often interchangeable.

These are not the same and can be used by other teams to identify different types of defects

Review

You can review documents, code, and test plans.

Since they don't run the code, product reviews are sometimes called static testing. Early detection of defects can help to reduce development costs.

Now let's discuss the importance of software testing in section 2.

Software Testing: What's its role?

Software maintenance and development require strict testing.

Identify defects

Reducing operational environment failures

Provide a better operational system.

Respect legal and contractual requirements

Specific industry standards might be needed to define the types of code and techniques that should be used.

In the next section, we will examine the objectives and methods of software testing.

Software Testing Objectives

These goals are for software testing.

Defects that prevent them from appearing in production

It's important to be confident in the quality of a software application.

Information is essential for making decisions about GO/NOT GO and moving onto the next phase.

Defect analysis can be used to determine the root cause of defects in order to prevent them from occurring in later phases.

The next section will discuss the objectives of different types of testing.

Different types of testing have different goals

Every type of testing has its own objectives. Take a look at each type of testing and their objectives.

Development Testing

Unit or component testing is also known by the term development testing. It is designed to find and fix maximum defects early in the development process.

Acceptance Testing

User acceptance testing is used to verify that the system is working as intended.

Maintenance Testing

Maintenance testing is used to ensure that there are no new defects, especially in cases where enhancements have been made or fixes for existing defects.

Operational testing

Operational Testing's purpose is verifying reliability and performance.