STQA UNIT-01 Self Notes
STQA UNIT-01 Self Notes
Software Testing- Testing is the process of evaluating a system or its component(s) with the intent
to find whether it satisfies the specified requirements or not.
Testing is executing a system in order to identify any gaps, errors, or missing requirements in
contrary to the actual requirements.
• Cost Effective Development - Early testing saves both time and cost in many aspects,
however reducing the cost without testing may result in improper design of a software
application rendering the product useless.
• Product Improvement - During the SDLC phases, testing is never a time-consuming process.
However diagnosing and fixing the errors identified during proper testing is a time-consuming
but productive activity.
• Test Automation - Test Automation reduces the testing time, but it is not possible to start test
automation at any time during software development. Test automaton should be started when
TANISHA BANGAR 1
the software has been manually tested and is stable to some extent. Moreover, test automation
can never be used if requirements keep changing.
• Quality Check - Software testing helps in determining following set of properties of any
software such as
o Functionality
o Reliability
o Usability
o Efficiency
o Maintainability
o Portability
➢ Cost of Quality:
It is the most established, effective measure of quantifying and calculating the business value of
testing. There are four categories to measure cost of quality: Prevention costs, Detection costs,
Internal failure costs, and External failure costs.
These are explained as follows below.
1. Prevention costs include cost of training developers on writing secure and easily
maintainable code
TANISHA BANGAR 2
2. Detection costs include the cost of creating test cases, setting up testing environments,
revisiting testing requirements.
1. Internal failure costs include costs incurred in fixing defects just before delivery.
2. External failure costs include product support costs incurred by delivering poor
quality software.
According to McCall’s model, product operation category includes five software quality factors,
which deal with the requirements that directly affect the daily operation of the software. They are
as follows −
• Correctness
These requirements deal with the correctness of the output of the software system. They include −
o Output mission
o The required accuracy of output that can be negatively affected by inaccurate data or
inaccurate calculations.
o The completeness of the output information, which can be affected by incomplete data.
o The up-to-dateness of the information defined as the time between the event and the
response by the software system.
o The availability of the information.
o The standards for coding and documenting the software system.
• Reliability: Reliability requirements deal with service failure. They determine the
maximum allowed failure rate of the software system, and can refer to the entire system or
to one or more of its separate functions.
• Efficiency: It deals with the hardware resources needed to perform the different functions
of the software system. It includes processing capabilities (given in MHz), its storage
capacity (given in MB or GB) and the data communication capability (given in MBPS or
GBPS). It also deals with the time between recharging of the system’s portable units, such
as, information system units located in portable computers, or meteorological units placed
outdoors.
• Integrity: This factor deals with the software system security, that is, to prevent access to
unauthorized persons, also to distinguish between the group of people to be given read as
well as write permit.
• Usability: Usability requirements deal with the staff resources needed to train a new
employee and to operate the software system.
TANISHA BANGAR 3
➢ Product Revision Quality Factors:
According to McCall’s model, three software quality factors are included in the product revision
category. These factors are as follows −
Maintainability
This factor considers the efforts that will be needed by users and maintenance personnel to identify
the reasons for software failures, to correct the failures, and to verify the success of the corrections.
Flexibility
This factor deals with the capabilities and efforts required to support adaptive maintenance
activities of the software. These include adapting the current software to additional circumstances
and customers without changing the software. This factor’s requirements also support perfective
maintenance activities, such as changes and additions to the software in order to improve its service
and to adapt it to changes in the firm’s technical or commercial environment.
Testability
Testability requirements deal with the testing of the software system as well as with its operation.
It includes predefined intermediate results, log files, and also the automatic diagnostics performed
by the software system prior to starting the system, to find out whether all components of the
system are in working order and to obtain a report about the detected faults. Another type of these
requirements deals with automatic diagnostic checks applied by the maintenance technicians to
detect the causes of software failures.
According to McCall’s model, three software quality factors are included in the product transition
category that deals with the adaptation of software to other environments and its interaction with
other software systems. These factors are as follows −
Portability
Portability requirements tend to the adaptation of a software system to other environments
consisting of different hardware, different operating systems, and so forth. The software should be
possible to continue using the same basic software in diverse situations.
Reusability
This factor deals with the use of software modules originally designed for one project in a new
software project currently being developed. They may also enable future projects to make use of
a given module or a group of modules of the currently developed software. The reuse of software
is expected to save development resources, shorten the development period, and provide higher
quality modules.
Interoperability
Interoperability requirements focus on creating interfaces with other software systems or with
other equipment firmware. For example, the firmware of the production machinery and testing
equipment interfaces with the production control software.
TANISHA BANGAR 4
➢ Software Defects:
A software bug arises when the expected result don't match with the actual results. It can also be
error, flaw, failure, or fault in a computer program. Most bugs arise from mistakes and errors made
by developers, architects.
Following are the methods for preventing programmers from introducing bugs during
development:
• Programming Techniques adopted
• Software Development methodologies
• Peer Review
• Code Analysis
Following are the common types of defects that occur during development:
• Arithmetic Defects
• Logical Defects
• Syntax Defects
• Multithreading Defects
• Interface Defects
• Performance Defects
o Before going to the People Challenges, I would like to reiterate Few Useful Points on Role of
Software Testing:
o Testing is finally recognized as a profession which needs specialized skills set and
qualifications.
o Also it is convinced testing will not start once the development is completed.
o Testing needs to be start in every stage of the software development Life Cycle.
o Testers need to validate whether the requirements specification documents is developed based
on the needs of the organization.
o Testers need to be ensuring that the design documents developed based on the requirements
specifications.
o Testers need to be ensure that the test cases and test plan are created based on the requirements
specifications.
o Testers need to be ensuring that the defects need to find out before the test cycle starts so that
the cost spends will gradually decreases.
o Testers need to be ensuring that the defects can be reproducible by developers.
o Testers need to be ensuring that they are finding defects of the high priority scenarios first.
o If you are in Agile methodology, then testers need to make sure that defects are getting fixed
on priority.
TANISHA BANGAR 5
o Finding out defects in the later stage of the product will leads the cost spend to rectify the
defects is very costly.
➢ Scope of Testing:
Test techniques include, but are not limited to the process of executing a program or application
with the intent of finding software bugs (errors or other defects). – Wikipedia
To test software, a tester is expected to know the software that is to be tested, plus the tools required
to test it. Often, it can be very specialized, and your employer company may have to train you. To
be a good tester, you need to be very organized, logical, meticulous, thorough, and patient
Software Testing as a career Over the last few years, the profile of the software tester has seen
phenomenal growth. Testing has become crucial for several application/product implementations
and businesses have begun to realize the importance of structured testing of applications before
their release.
1. At the present time, most of the web application is shifting towards mobile application
which itself is a huge challenge for development team as well as testing team. As mobile
testing, approach are entirely different from what we are performing for web.
2. No fixed approach in order to test the application. Every individual and plan their own
test plan.
3. As most of the companies are trying to shift more on Automation wheras manual is more
important.
4. Time consuming as it takes 30–40% of SDLC life cycle.
5. You need to continuously learn and update your knowledge on multiple testing tools.
Software testing constraints are guidelines that provide direction and define acceptable parameters
for software testing activities. They are used to help testers follow a general testing strategy and
provide a framework for testing. Software testing constraints often address the scope and depth of
testing, the level of the testing effort, and the testing techniques that will be used. Some examples
of software testing constraints include test scope, test depth, test effort, and testing techniques.
TANISHA BANGAR 6
➢ What is SDLC?
SDLC is a process followed for a software project, within a software organization. It consists of a
detailed plan describing how to develop, maintain, replace and alter or enhance specific software.
The life cycle defines a methodology for improving the quality of software and the overall
development process.
The following figure is a graphical representation of the various stages of a typical SDLC.
Once the requirement analysis is done, the next stage is to certainly represent and document the
software requirements and get them accepted from the project stakeholders.
TANISHA BANGAR 7
• Stage 3: Designing the Software-
The next phase is about to bring down all the knowledge of requirements, analysis, and design of
the software project. This phase is the product of the last two, like inputs from the customer and
requirement gathering.
In this phase of SDLC, the actual development begins, and the programming is built. The
implementation of design begins concerning writing code. Developers have to follow the coding
guidelines described by their management and programming tools like compilers, interpreters,
debuggers, etc. are used to develop and implement the code.
• Stage 5: Testing-
After the code is generated, it is tested against the requirements to make sure that the products are
solving the needs addressed and gathered during the requirements stage. During this stage, unit
testing, integration testing, system testing, acceptance testing are done.
• Stage 6: Deployment-
Once the software is certified, and no bugs or errors are stated, then it is deployed.Then based on
the assessment, the software may be released as it is or with suggested enhancement in the object
segment. After the software is deployed, then its maintenance begins.
• Stage 7: Maintenance-
Once when the client starts using the developed systems, then the real issues come up and
requirements to be solved from time to time.
Independent testing corresponds to an independent team, who involve in testing activities other
than developer to avoid author bias and is often more effective at finding defects and failures.
The following list shows the increasing levels of independence for testing:
• Testing done by developer himself
• Independent testers ceded to the development team
• Independent Testing Team within Organization
• Independent Testers of different Organization
• Outsourced test team members of other organization
TANISHA BANGAR 8
➢ Stages of QA Process-
1. Analyze Requirements:
It costs more to fix a bug that has been detected during testing as compared to just preventing them
at the stage of requirements design. QA professionals should be involved in analyzing and defining
software requirements, both functional and non-functional. QAs must be offered consistent,
comprehensive, traceable requirements and clearly marked. This helps the QA team design tests
specifically tailored to the software being tested.
TANISHA BANGAR 9
6. Run Release Tests:
Once developers issue a release notification detailing a list of already implemented features, fixed
bugs, recurring issues, and limitations, the QA team must identify the functionalities affected by
these changes. Then, the team must design modified test suites that cover the scope of the new
build.
The levels of software testing involve the different methodologies, which can be used while we
are performing the software testing.
In software testing, we have four different levels of testing, which are as discussed below:
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
Unit testing is the first level of software testing, which is used to test if software modules are
satisfying the given requirement or not.
The first level of testing involves analyzing each unit or an individual component of the
software application.
Unit testing is also the first level of functional testing. The primary purpose of executing unit
testing is to validate unit components with their performance.
The second level of software testing is the integration testing. The integration testing process
comes after unit testing.
It is mainly used to test the data flow from one module or component to other modules.
In integration testing, the test engineer tests the units or separate components or modules of the
software in a group.
The primary purpose of executing the integration testing is to identify the defects at the interaction
between integrated components or units.
TANISHA BANGAR 10
• Level 3: System Testing-
The third level of software testing is system testing, which is used to test the software's functional
and non-functional requirements.
It is end-to-end testing where the testing environment is parallel to the production environment.
In the third level of software testing, we will test the application as a whole system.
The last and fourth level of software testing is acceptance testing, which is used to evaluate
whether a specification or the requirements are met as per its delivery.
The software has passed through three testing levels (Unit Testing, Integration Testing, System
Testing). Some minor errors can still be identified when the end-user uses the system in the actual
scenario.
The V-model is an SDLC model where execution of processes happens in a sequential manner in
a V-shape. It is also known as Verification and Validation model.
The V-Model is an extension of the waterfall model and is based on the association of a testing
phase for each corresponding development stage. This means that for every single phase in the
development cycle, there is a directly associated testing phase. This is a highly-disciplined model
and the next phase starts only after completion of the previous phase.
• V-Model – Design:
Under the V-Model, the corresponding testing phase of the development phase is planned in
parallel. So, there are Verification phases on one side of the ‘V’ and Validation phases on the other
side. The Coding Phase joins the two sides of the V-Model.
The following illustration depicts the different phases in a V-Model of the SDLC.
TANISHA BANGAR 11
➢ V-Model - Verification Phases-
There are several Verification phases in the V-Model, each of these are explained in detail below.
• Business Requirement Analysis:
This is the first phase in the development cycle where the product requirements are understood
from the customer’s perspective. This phase involves detailed communication with the customer
to understand his expectations and exact requirement. This is a very important activity and needs
to be managed well, as most of the customers are not sure about what exactly they need.
The acceptance test design planning is done at this stage as business requirements can be used
as an input for acceptance testing.
• System Design:
Once you have the clear and detailed product requirements, it is time to design the complete
system. The system design will have the understanding and detailing the complete hardware and
communication setup for the product under development. The system test plan is developed based
on the system design. Doing this at an earlier stage leaves more time for the actual test execution
later.
• Architectural Design:
Architectural specifications are understood and designed in this phase. Usually more than one
technical approach is proposed and based on the technical and financial feasibility the final
decision is taken. The system design is broken down further into modules taking up different
functionality. This is also referred to as High Level Design (HLD).
The data transfer and communication between the internal modules and with the outside world
(other systems) is clearly understood and defined in this stage. With this information, integration
tests can be designed and documented during this stage.
• Module Design:
In this phase, the detailed internal design for all the system modules is specified, referred to as Low
Level Design (LLD). It is important that the design is compatible with the other modules in the
system architecture and the other external systems. The unit tests are an essential part of any
development process and helps eliminate the maximum faults and errors at a very early stage.
These unit tests can be designed at this stage based on the internal module designs.
➢ Coding Phase-
The actual coding of the system modules designed in the design phase is taken up in the Coding
phase. The best suitable programming language is decided based on the system and architectural
requirements.
The coding is performed based on the coding guidelines and standards. The code goes through
numerous code reviews and is optimized for best performance before the final build is checked
into the repository.
TANISHA BANGAR 12
➢ Validation Phases-
➢ V- Model ─ Application-
V- Model application is almost the same as the waterfall model, as both the models are of
sequential type. Requirements have to be very clear before the project starts, because it is usually
expensive to go back and make changes. This model is used in the medical development field, as
it is strictly a disciplined domain.
The following pointers are some of the most suitable scenarios to use the V-Model application.
• Requirements are well defined, clearly documented and fixed.
• Product definition is stable.
• Technology is not dynamic and is well understood by the project team.
• There are no ambiguous or undefined requirements.
• The project is short.
The advantage of the V-Model method is that it is very easy to understand and apply. The
simplicity of this model also makes it easier to manage. The disadvantage is that the model is not
flexible to changes and just in case there is a requirement change, which is very common in today’s
dynamic world, it becomes very expensive to make the change.
TANISHA BANGAR 13
➢ The advantages of the V-Model method are as follows −
• This is a highly-disciplined model and Phases are completed one at a time.
• Works well for smaller projects where requirements are very well understood.
• Simple and easy to understand and use.
• Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a
review process.
TANISHA BANGAR 14