In this article, “What is Software? Why Test It? ”,“ What is Quality? How Important? ”,“ What is a Test? Who Is Testing? ”,“ When Should Test Be Started? When Should the Test End? ” and “What is Validation? What is Verification? What are the differences? ” We will be looking for answers to questions like.
WHAT IS THE SOFTWARE? WHY IT SHOULD BE TESTED?
Software is a set of instructions for the computer that performs a specific task. The software is divided into two separate categories. These are System Software and Application Software.
The system software is a type of software designed to communicate with hardware and application software. It acts as an interface (between hardware and computer programs) coordinating the tasks between these two components of a computer system. Examples of system software include operating systems, language processors, and device drivers.
Application software is a type of software designed to perform certain tasks in an operating system. Some of these tasks include document handling, computing, image, and video editing. Word processors, spreadsheets, database software, and picture editors are examples of application software.
The software must meet customer standards and needs. The software that meets user requirements is considered to be of good quality. We can check the quality of the software by testing it. Therefore, before the software is delivered to the customer, it should be tested considering many factors such as functionality, performance, usability, reliability, and portability.
- WHAT IS QUALITY? HOW IMPORTANT?
Quality can be expressed as the version of the software that meets the needs and expectations of the customer and is free from defects, deficiencies, and important variables. Quality is simply “a degree of perfection”. A high-quality software generally suits user needs and expectations. A customer’s quality idea can be defined as a good design, functionality, suitability, and redundancy of features, a platform, and configurations with a good performance and software suitable for the use of the end-user.
Quality software saves time and money. Because fewer errors in the software save time in the testing and maintenance phases. Quality software provides customers with unmeasurable benefits with low maintenance costs, as well as customer satisfaction. Because maintenance represents a large part of the software cost. Thanks to quality software; The overall cost of the project will be lower than similar projects.
Besides, another issue that should be mentioned here is the concepts of quality assurance and quality control. These two concepts are very confused with each other. Both are part of quality management and are tightly linked to each other. But they differ from each other in their origins.
- Quality Assurance aims to prevent errors or defects. Quality Control, on the other hand, aims to detect and improve the error or defect.
QA is the technique of managing quality. QC is a quality verification technique.
- Quality assurance covers the concept of quality control. QA is the planning of a process. QC is the execution of this planned process.
- While all team members in a team are responsible for QA, only testers are responsible for QC. In other words; QA is responsible for the Software Development Lifecycle (SDLC) while QC is responsible for the Software Testing Life Cycle (STLC).
When we consider the concept of software testing, it is under QC as the test focuses on the product or application. We test the product to check the quality. Also, we manage our tests according to the planned QA processes. In other words, while QA covers QC, QC includes the test.
- WHAT IS THE TEST?
Testing is an evaluation process to find out whether a system or its components meet the specified requirements. Gaps, errors, and missing requirements in the defined requirements are detected in this way.
This evaluation process consists of the following steps.
Test planning and control
Test analysis and design
Test adaptation and execution
- Evaluation and reporting of exit criteria
Test closing procedures
In this test process, which is operated; The aim is to find mistakes, gain confidence about the quality level, provide information to make decisions, and prevent mistakes.
So Who Is Testing? Who is conducting the test depends on the process and the stakeholders of the project? In most large companies the following experts test a system within their capabilities.
Software Test Engineer
Project Leader / Manager
There are different positions in companies according to the knowledge and experience of the people who test the software. For example; Software Test Engineer, Software Quality Assurance Engineer, QA Analyst are some of them.
- WHEN SHOULD THE TEST START AND WHEN TO END?
Early testing reduces the cost and time of producing error-free software. In the Software Development Life Cycle (SDLC); Test activities are initiated in the early phases of software projects (eg planning, analysis, design) and continue until the software is deployed.
Also, when to start testing depends on the development model used. The test cannot exist alone, test steps are intertwined with software development steps. Different software development lifecycle models (eg: V Model, Cyclic-Incremental Development Model, and Lifecycle Model.) Require different testing approaches.
It is difficult to determine when the test will end because testing is a never-ending process and it is impossible to test the software 100%. Factors such as the end of the test execution process, the test end date, and the management decision play a role in this process.
- WHAT IS VALIDATION? WHAT IS VERIFICATION? WHAT ARE THE DIFFERENCES?
These two terms are two terms that we come across very often, that are confused with each other and even used interchangeably. The differences between these two terms are highlighted below.
- Verification, “Are you building it right?” searches for an answer to the question. So “Are you building it right?” Validation is “Are you building the right thing?” searches for an answer to the question. So “Are you building the right thing?”
Verification is done by software developers, while Validation is done by test engineers.
Verification is an objective process and a subjective decision is not required to validate the software. Validation, on the other hand, is a subjective process and involves subjective decisions about how well the software works.