Figure 3. The types of error and defect in the SDLC
Source:
(Graham et al., 2008)
To summarize all that was presented, we can provide a definition which describes the software
quality in general: the degree to which the software (its functionality and requirements) meets
specified requirements and user needs and expectations. The main principles of software QA are
specified: QA activities, such as validation and verification, ensure the software quality by exact
quality criteria that are aimed to explicate the particular quality factor(-s) in order to express the
desired quality level; quality factors are conformed in development phase and it leads to expectations
of post-production activities; all defects found during validation or verification should be reported and
handed to the right authority for fixing as soon as possible. All mistakes made in at the early stage of
SDLC can rise to failures if they are not detected earlier. As a result, it can significantly increase the
impact on SDLC cost and schedule. Therefore, more attention should be paid on the early phases of
software development life cycle when the rework cost most often relatively low in order to improve
software quality and avoid costly failures.
20
1.2.
The overview of Software testing fundamentals: Concepts, History, Main principles
Software testing has become an important software development activity when the terms
software testing and debugging were separated. Until the differentiation of terms which was introduced
by (Baker, 1957), the view of testing was presented in different ways, such as The Debugging-
Oriented, Demonstration-Oriented, Destruction-Oriented, Evaluation-Oriented or Prevention-Oriented
(Gelperin & Hetzel, 1988). Later more views as models were introduced: Context-Driven Testing,
Session-based testing, Agile Manifesto (“The History of Software Testing,” 2015). For instance,
during the first period, debugging-Oriented, testing focused on hardware and the approach of
programming was interpreted as "you wrote a program and then you checked it out". While other
approaches focused on: 1) "make sure the program runs", 2) "the primary goal is to find errors", 3)
introduced methodology of software development with its following elements: SDLC, analysis,
reviews, test activities, validation and verification techniques, 4) generalized standard for unit testing
process, main focus on defects prevention by activities, such as planning, analysis of requirements and
objectives, preparing a detailed architectural design, implementation, execution and maintenance of
tests, 5) "the value of any practice depends on its context ", 6) combined accountability and
exploratory testing to provide rapid defect discovery, management control and metrics reporting, 7)
following rules by Agile Manifesto which analyze testing from the customer perspective and give
insights on early testing of SDLC. These approaches and other important historical events (see Figure
3, page 21) shows the growth of software testing. Further, the terms and main purpose of software
testing should be analyzed in order understand the role of testing and make a view how the testing has
changed historically.
21
Do'stlaringiz bilan baham: |