0% found this document useful (0 votes)
48 views28 pages

Unit-I ST

Uploaded by

Nidhi Bhatia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views28 pages

Unit-I ST

Uploaded by

Nidhi Bhatia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

UNIT-I

SOFTWARE
TESTING
Submitted By:
Nidhi Chaddha
PC2113003013055
Fundamental Test Process
Testing is a process rather than a single activity. Testing must be planned and it
requires discipline to act upon it. The quality and effectiveness of software testing
are primarily determined by the quality of the test processes used. The activities
of testing can be divided into the following basic steps:
1.Planning and Control
2.Analysis and Design
3.Implementation and Execution
4.Evaluating exit criteria and Reporting
5.Test Closure activities
1) Planning and Control
◦ Test Planning : Test planning involves producing a document that describes an
overall approach and test objectives. It involves reviewing the test basis,
identifying the test conditions based on analysis of test items, writing test cases
and Designing the test environment. Completion or exit criteria must be
specified so that we know when testing (at any stage) is complete.
◦ Purpose
• To determine the scope and risks and identify the objectives of testing.
• To determine the required test resources like people, test environments etc.
• To schedule test analysis and design tasks, test implementation, execution and
evaluation.
◦ Control This is the activity of comparing actual progress against the plan, and
reporting the status, including deviations from the plan. It involves taking
actions necessary to meet the mission and objectives of the project.
2) Analysis and Design
◦ Test analysis and Test Design has the following major tasks:
• To review the test basis. The test basis is the information on which test
cases are based, such as requirements, design specifications, product risk
analysis, architecture and interfaces
• To identify test conditions
• To design the tests
• To design the test environment set-up and identify the required
infrastructure and tools
3) Implementation and Execution
◦ Test execution involves actually running the specified test on a computer
system either manually or by using an automated test tool. It is a
Fundamental Test Process in which actual work is done.
◦ Test implementation has the following major task:
• To develop and prioritize test cases by using techniques and create test
data for those tests.
• To create test suites from the test cases for efficient test execution. Test
suite is a collection of test cases that are used to test a software program
• To re-execute the tests that previously failed in order to confirm a fix.
• To log the outcome of the test execution. A test log is the status of the test
case (pass/fail).
• To compare actual results with expected results.
4) Evaluating Exit criteria and Reporting
◦ Evaluating exit criteria is a process defining when to stop testing. It
depends on coverage of code, functionality or risk. Basically it also
depends on business risk, cost and time and vary from project to
project. Exit criteria come into picture, when:
• Maximum test cases are executed with certain pass percentage
• Bug rate falls below certain level
• When we achieve the deadlines
◦ Evaluating exit criteria has the following major tasks:
• To assess if more test are needed or if the exit criteria specified should be
changed
• To write a test summary report for stakeholders
5) Test Closure activities:
◦ Test closure activities are done when software is ready to be delivered. The testing can
be closed for the other reasons also like:
• When a project is cancelled
• When some target is achieved
• When a maintenance release or update is done
◦ Test closure activities have the following major tasks:
• To check which planned deliverables are actually delivered and to ensure that all
incident reports have been resolved
• To finalize and archive testware such as scripts, test environments, etc. for later reuse
• To handover the testware to the maintenance organization. They will give support to
the software
• To evaluate how the testing went and learn lessons for future releases and projects
Psychology of Testing
A psychology of testing depends or involves three factors.
1) The Mindset of Developers and Testers
◦ Developers are responsible for creating or developing the system. Based on the requirements communicated by the
business analyst, they code the features of the system i.e. they build the system. While developing the system,
developers have a mindset of creating something new, something useful for the end user.
◦ Testers, on the contrary, try to break the system using various means to identify any errors or bugs in the system
that will stop the end user from using the system in the desired manner.
2) Polite and Clear Communication
Testers find mistakes or errors in the system and communicate these findings with the developers. It is an obvious
human tendency not to welcome your mistakes, especially identified by other persons. For a tester, finding the bugs is
an accomplishment. But at the same time, for a developer, it is a mistake in his/her work and extra time will have to be
spent on correcting the mistakes. For others e.g. project managers or clients, this is a halt that will stop the successful
deployment of the code.
3) Test Independence
The third and last factor is test independence. Finding mistakes in your own work is possible but not an effective idea.
Developers, after building the product, test their code at the unit testing level. Developers can also perform integration
testing and system testing.
Software Development Life Cycle

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 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 - Pros and Cons
◦ 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.
◦ 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.
◦ The disadvantages of the V-Model method are as follows −
• High risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a moderate to high risk of changing.
• Once an application is in the testing stage, it is difficult to go back and change a functionality.
• No working software is produced until late during the life cycle.
ISO/IEC 12207: 2008
◦ ISO/IEC 12207:2008 establishes a common framework for software life cycle processes,
with well-defined terminology, that can be referenced by the software industry. It
contains processes, activities, and tasks that are to be applied during the acquisition of a
software product or service and during the supply, development, operation, maintenance
and disposal of software products. Software includes the software portion of firmware.
◦ ISO/IEC 12207:2008 applies to the acquisition of systems and software products and
services, to the supply, development, operation, maintenance, and disposal of software
products and the software portion of a system, whether performed internally or externally
to an organization. Those aspects of system definition needed to provide the context for
software products and services are included.
◦ ISO/IEC 12207:2008 also provides a process that can be employed for defining,
controlling, and improving software life cycle processes.
Static Testing
Out of the many techniques used, static testing is another one that helps in
detecting defects in software. Static testing does this without actually executing
the test case. It involves examination of code and also checks the necessary
document which is involved but does not need the program to be executed.
DynamicTesting

◦ Dynamic testing is a software testing process that is performed in an


environment where the code is actually executed. This type of testing is
used, by the team, to check the functional behavior of the software and to
verify its conformance with the user expectations and requirements.
Dynamic testing is the validation phase of
software verification and validation. This type of testing enables the team
to provide answers to questions like, how well the software product will
behave in the real world scenario; what will be its performance output and
more.
Dynamic Testing Static Testing

1. Validation phase of software testing. 1. Verification phase of software testing.

2. Involves execution of program code. 2. Does not require execution of program code.

3. Ensures the functionality of the product. 3. It is focused on defect prevention.

4. Performed during the later stages of software development. 4. Performed during the early stages of software development.

5. The cost of finding defects is high in this type of software testing. 5. More cost effective than static testing.
Static Testing Techniques

◦ The techniques involved in the testing are as below:


• Informal Reviews
• Walkthroughs
• Technical Reviews
• Inspections
• Static Analysis
◦ 1) Informal Reviews
• These are the very first review which is started in the early stage of the document. As its name suggests it can be
done informally between two people wherein more people can be added later. There is no procedure involved herein
and hence no documentation is done for the review. It improves the quality of the document being prepared. Although
there are many ways to do formal testing, the commonly used ones are informal ones. This process goes through 6
steps. These include:
1. Planning
2. Kick-Off
3. Preparation
4. Review meeting
5. Rework
6. Follow Up
• The formal review planning involves a moderator who inspects the table and takes care of scheduling details of the
planning session. The kick-off meeting takes place and with the goal of having a cohesive and clear understanding all
participants are given a timeline to document and commit to the required changes.
• A short introduction is given about the topic to everyone. After this, the participants individually review each document
and share their artifacts with the reviewer. Then a formal review is carried in a review meeting which marks all issues
as discussed and the final decision is taken. Any specific issues are also recorded. Based on these meetings reviews all
defects that are found are reworked. Follow-ups are taken to check with the changes that are expected.
• The author takes the responsibility of these defects as not every defect needs to be worked upon. The moderator then
checks if all expected actions are taken or not. All defects are logged with process improvement suggestions. It is the
job of the moderator to check for all metrics and evaluate the exit criteria for the discussion and action items at hand.
◦ 2) Walkthroughs
• In the walkthrough, others are involved and collective feedback from the team
is gained so that there is a common understanding which fulfills the purpose of
the document. A team does not need to do a detailed study. The authors are
already prepared for this review. All contents which are being presented should
be evaluated. The proposed solutions should be validated before discussing it.
• The document under inspection is gone through the author of the document
and other people are asked to check and provide their opinion on the
document. There are many feedbacks given and these are taken into
consideration. The step by step explanation helps the participants in getting a
clear picture. They can study the code and review it before the meeting. It
helps in creating a higher-level document.
• There is a broad section that is covered, and it ensures that no aspect of
requirements is left out. A common understanding around the document is
created and solutions or alternatives are suggested.
◦ 3) Technical Review
• This is a formal meeting where the technical content of the document is
discussed. There is the guidance of an expert required. It focuses on getting the
value of the technicalities present in the project. It helps in having consistency
and ensures that all technical details are correct. By doing technical review it is
expected to achieve consensus about technical aspects of all documents.
• Once the documentation is done the experts are asked to do an informal review.
These experts can be architects, chief designers, key users, etc. The fellow
programmers or peers can also be a part of this review. All technical concepts
can be assessed by everyone in this review. It also made sure that the right
concepts are being used in the right place.
◦ 4) Inspection
• This is the most formal kind of review which is held. Here a senior or trained
team personnel guides the inspection process. Before the meeting happens, all
reviewers are prepared, and the documents are prepared. An inspection ensures
that the complete product is examined, and defects are found. All defects that
are found must be maintained in logs. Inspection focuses on improving the
quality of the document which is being inspected.
• It is efficient in finding defects and creates documents that have a very high
level of quality. It is also a way of making note of previous defects and not
having similar defects again. All defects that are raised are recorded and
discussed. Further discussions for these documents are done only when the
defects are fixed. It focuses on finding defects in the early stages and in turn,
improves the quality of software to a great extent.
Peer Testing
◦ Peer review or testing is a way of evaluating work performed by a co-
worker. In software development, it stands for cross-checking the code
written by developers. The developers need to be at par with each other.
Peer review technique is adopted in many other professions, as it involves
a team effort, which is productive in pursuit of a common goal
Fagan Inspection
◦ Fagan Inspection is a method to find defects. It is a structured process that
involves detecting defects in development documents like programming
code, specifications, designs etc., during the various phases of software
development process. The term Fagan is named after Michael Fagan, who
incorporated various software formal software inspection methods. In Fagan
inspection method, a given activity has a predefined entry and exit criteria.
So for every activity which has an entry and exit criteria, the Fagan
inspection process offers a way to validate whether the output complies
with the exit criteria intended for that activity.
Peer Review Process

• Informal -It is not a very structured form of review. This can be done over
a cup of coffee with a fellow developer.
• Walk-through -In this method, a software developer leads a team of
programmers and other interested people interested in the software
product, to review the product and put up questions, if any, regarding the
software product.
• Review -This method is a more formal way of reviewing the tasks of a co-
worker.
• Inspection -It is an organised way of conducting the process of evaluation.
It involves application of various metrics to quantify the results of the
review process, in order to analyse to what extent the outcome is fruitful or
valid.
◦ Techniques of Dynamic Testing:
◦ To execute the process of dynamic testing, software testers use two different techniques- functional
and non-functional testing. These help them to efficiently test system while determining its
compliance with the stated requirements. Both of these testing techniques play a significant role in
validating the performance and quality of the software, and are hence defined below:
a.Functional Testing: Dynamic tests involving functional testing technique allows the team to verify
the compliance of software product’s features and components with the functional specifications,
stated before the commencement of the testing process. Moreover, this technique involves
execution of functional test cases, which helps them to get accurate and expected results.
Functional testing is further performed with the assistance of various testing types, which play an
extremely crucial role in determining the performance and functionality of the software. These are:
1. Unit Testing.
2. Integration Testing.
3. System Testing.
4. Acceptance Testing.
b. Non-Functional Testing: Another beneficial dynamic testing technique,
non-functional testing is implemented by the team to validate the non-functional
requirements of the software product. The focus of this testing technique is to
test the non-functional attribute and components of the software, such as
robustness of the software system, memory leaks, performance, and more.
Additionally, this type of testing is performed at the test level, with the
assistance of following testing types:

1. Performance Testing.
2. Recovery Testing.
3. Security Testing.
4. Usability Testing.
5. Compatibility Testing.
◦ Types of Dynamic Testing:

◦ As per their utility, different techniques of dynamic testing are employed by the team for
various scenarios. Few of these techniques are:
• Unit Testing: Generally run by software developers, unit testing involves testing of small
fragments of the source code such as operational procedures or individual functions,
independent of each other. One particular benefit of this approach is that it allows the easy
incorporation of changes at a later date.
• Integration testing: Generally run by software developers, unit testing involves testing of
small fragments of the source code such as operational procedures or individual functions,
independent of each other. One particular benefit of this approach is that it allows the easy
incorporation of changes at a later date.
• System test: A form of Black box strategy, system testing is done to evaluate the
compliance of the system performance with the specifications mentioned in the owner
manual. It includes GUI testing.
• Acceptance test: Acceptance testing is conducted to determine if the requirements of the
product specifications are being met as per the contractual obligations at the site. It has
variants by the name of Alpha beta tests, Contract and regulation acceptance testing,
physical tests, etc.
Process of Dynamic Testing

1.Test Case Design: During this initial stage of the process, team works together to design
test cases, which are based on the scope of testing as well as the requirements established before
the beginning of the project.
2.Environment Setup: The purpose of the team during this stage of the process is to prepare and
setup the test environment. In dynamic testing, the test environment should be similar to the
production environment, as the testing is executed directly on the product.
3.Test Execution: Finally, the test cases prepared during the initial stage of the process are
executed by the team here.
4.Analysis & Evaluation: The results derived from the testing is analysed and evaluated, and then
compared with the expected results.
5.Reporting: At the end of the process any bugs, defects, deviations, or irregularities, between the
actual result and expected result, are recorded and reported to the person concerned. It is the
responsibility of this individual to rectify the issue and ensure the quality of the product.
THANK YOU

You might also like