SlideShare a Scribd company logo
1 of 68
Download to read offline
1 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Unit-I
Topics:
Fundamentals of Testing
2 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Q1. What are an error, failure and fault?
A failure is non-fulfillment of requirements, a discrepancy between actual result or behavior
(Identified in Requirement Specification)
Failure in a software means the software doesn’t perform functional requirements, the
failure occur in S/W because of fault. Every fault, or Defect or Bug in S/w is present since it
was developed or changed.
A failure has its roots in a fault in the software. These fault is also called a defect or internal
error programmer generally use a term Bug for fault e.g. of fault e.g. of fault can be the
programmer might be wrongly programmed or forgotten code in application.
It is possible that a fault is hidden by one or more other faults in different parts of
application. In that case, A failure only occurs after the masking defects have been
corrected.
The cause of fault or defect is an error or mistakes by person. E.g. wrong programming by
developer or a misunderstanding of commands in programming language.
However faults may be even cause by environmental conditions like radiation, magnetism
etc. that introduce Hardware problem.
Q2. What is a defect? What are its causes? When do they arise? What is the cost of
finding defect?
Defect: A flaw in a component or system that can cause the component or system to fail to
perform its required function, e.g. an incorrect statement or data definition.
We know that people make mistakes we are fallible. If someone makes an error or mistake
in using the software, this may lead directly to a problem the software is used incorrectly
and so does not behave as we expected.
However, people also design and build the software and they can make mistakes during the
design and build. These mistakes mean that there are flaws in the software itself. These are
called defects or sometimes bugs or faults. Remember, the software is not just the code;
check the definition of soft-ware again to remind yourself.
When the software code has been built, it is executed and then any defects may cause the
system to fail to do what it should do (or do something it shouldn't), causing a failure. Not all
defects result in failures; some stay dormant in the code and we may never notice them.
Defect arises: In Figure we can see how defects may arise in four requirements for a
product.
We can see that requirement 1 is implemented correctly - we understood the customer's
requirement, designed correctly to meet that requirement, built correctly to meet the design,
and so deliver that requirement with the right attributes: functionally, it does what it is
supposed to do and it also has the right non-functional attributes, so it is fast enough, easy
to understand and so on.
With the other requirements, errors have been made at different stages. Requirement 2 is
fine until the software is coded, when we make some mistakes and introduce defects.
Probably, these are easily spotted and corrected during testing, because we can see the
product does not meet its design specification.
3 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
The defects introduced in requirement 3 are harder to deal with; we built exactly what we
were told to but unfortunately the designer made some mistakes so there are defects in the
design. Unless we check against the requirements definition, we will not spot those defects
during testing. When we do notice them they will be hard to fix because design changes will
be required.
The defects in requirement 4 were introduced during the definition of the requirements; the
product has been designed and built to meet that flawed requirements definition. If we test
the product meets its requirements and design, it will pass its tests but may be rejected by
the user or customer.
Defects reported by the customer in acceptance test or live use can be very costly.
Unfortunately, requirements and design defects are not rare; assessments of thousands of
projects have shown that defects introduced during requirements and design make up close
to half of the total number of defects.
Cost of Defect
The cost of finding and fixing defects rises considerably across the life cycle; think of the old
English proverb 'a stitch in time saves nine'. This means that if we mend a tear in our sleeve
now while it is small, it's easy to mend, but if we leave it, it will get worse and need more
stitches to mend it.
If an error is made and the consequent defect is detected in the requirements at the
specification stage, then it is relatively cheap to find and fix. Similarly if an error is made and
4 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
the consequent defect detected in the design at the design stage then the design can be
corrected and re-issued with relatively little expense.
The same applies for construction. However a defect is introduced in the requirement
specification and it is not detected until acceptance testing or even once the system has
been implemented then it will be much more expensive to fix.
This is because rework will be needed in the specification and design before changes can
be made in construction; because one defect in the requirements may well propagate into
several places in the design and code; and because all the testing work done-to that point
will need to be repeated in order to reach the confidence level in the software that we
require.
Q3. What are quality and its components? Explain quality viewpoints for producing
and buying software.
Following are different definition of Quality:
Customer-Based Definition of Quality: Quality product must have ‘Fitness for use‘.
Manufacturing-Based Definition of Quality: This approach gives the definition of
‘Conformance to requirements‘.
Product-Based Definition of Quality: The product must have something that other similar
products do not have which can help the customer satisfy his/her needs in a better way.
Value- Based Definition of Quality: Many times it is claimed that ‘People do not buy
products, they buy benefits‘.
Components of Quality:
 Quality is based on customer satisfaction by acquiring a product.
 The organization must define quality parameters before it can achieve. In order to meet
some criteria of improvement and ability to satisfy a customer, one must follow in cycle of
‘Define’, ‘Measure’, ‘Monitor’, ‘Control’ and ‘Improve’. The cycle of improvements through
measurements is described below.
 Management must lead the organisation through improvement efforts.
 Continuous process (Continuous improvement is necessary)
5 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Q4. Explain the fundamental principles of testing.
Testing: Testing is an umbrella activity conducted throughout life cycle of software to
identify bugs or defects or faults, present in software. Testing can be identifying both
syntactical as well as logical error present in software.
Following are Testing principles
Principle1: Testing shows testing can show that defects are present, presence of defects
but cannot prove that there are no defects. Testing reduces the probability of undiscovered
defects remaining in the software but, even if no defects are found, it is not a proof of
correctness.
Principle2: Testing everything (all combinations of is impossible inputs and preconditions)
is not feasible except for trivial cases. Instead of exhaustive testing, we use risks and
priorities to focus testing efforts.
Principle3: Testing activities should start as early as possible in the software or system
development life cycle and should be focused on defined objectives.
Principle4: Defect clustering a small number of modules contains most of the defects
discovered during pre-release testing or shows the most operational failures.
6 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Principle5: Pesticide paradox if the same tests are repeated over and over again,
eventually the same set of test cases will no longer find any new bugs. To overcome this
'pesticide paradox', the test cases need to be regularly reviewed and revised, and new and
different tests need to be written to exercise different parts of the software or system to
potentially find more defects.
Principle6: Testing is context Testing is done differently in different dependent contexts.
For example, safety-critical software is tested differently from an e-commerce site.
Principle7: Absence-of-errors Finding and fixing defects does not help if fallacy the
Q5. Explain the fundamental test process.
The decision about the level of formality of the processes will depend on the system and
software context and the level of risk associated with the software. So we can divide the
activities within the fundamental test process into the following basic steps:
 Planning and control
 Analysis and design
 Implementation and execution
 Evaluating exit criteria and reporting
 Test closure activities
 Though logically sequential these activities may overlap, occur concurrently or even
repeat
 Test planning and control
o Test planning is the activity of verifying the mission of testing, defining the objectives of
testing and the specification of test activities in order to meet the objectives and mission.
o Test control is the ongoing 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. In order to control testing, it should be
monitored throughout the project.
o Test planning takes into account the feedback from monitoring and control activities.
 Test analysis and design
o Test analysis and design is the activity where general testing objectives are transformed
into tangible test conditions and test cases.
Test analysis and design has the following major tasks:
o Reviewing the test basis (such as requirements, architecture, design, interfaces).
o Evaluating testability of the test basis and test objects.
7 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
o Identify and prioritize test conditions based on analysis of test items, the specification,
behavior and structure.
o Designing and prioritizing test cases.
o Identify necessary test data to support the test conditions and test cases.
o Design the test environment set-up and identifying any required infrastructure and tools.
 Test implementation and execution
 Test implementation and execution is the activity where test procedures or scripts are
specified by combining the test cases in a particular order and including any other
information needed for test execution, the environment is set up and the tests are run.
 Test implementation and execution has the following major tasks:
o Developing, implementing and prioritizing test cases.
o Developing and prioritizing test procedures, creating test data and, optionally, preparing test
harnesses and writing automated test scripts.
o Creating test suites from the test procedures for efficient test execution.
o Verifying that the test environment has been set up correctly.
o Executing test procedures either manually or by using test execution tools, according to the
planned sequence.
o Logging the outcome of test execution and recording the identities and versions of the
software under test, test tools and test ware.
o Comparing actual results with expected results.
o Reporting discrepancies as incidents and analyzing them in order to establish their cause
(e.g. a defect in the code, in specified test data, in the test document, or a mistake in the
way the test was executed).
o Repeating test activities as a result of action taken for each discrepancy.
o For example, re execution of a test that previously failed in order to confirm a fix
(confirmation testing),execution of a corrected test and/or execution of tests in order to
ensure that defects have not been introduced in unchanged areas of the software or that
defect fixing did not uncover other defects (regression testing).
 Evaluating exit criteria and reporting
o Evaluating exit criteria is the activity where test execution is assessed against the defined
objectives. This should be done for each test level.
Evaluating exit criteria has the following major tasks:
o Checking test logs against the exit criteria specified in test planning.
o Assessing if more tests are needed or if the exit criteria specified should be changed.
o Writing a test summary report for stakeholders.
 Test closure activities
o Test closure activities collect data from completed test activities to consolidate experience,
test ware, facts and numbers. For example, when a software system is released, a test
project is completed (or cancelled), a milestone has been achieved, or a maintenance
release has been completed.
Test closure activities include the following major tasks:
o Checking which planned deliverables have been delivered, the closure of incident reports or
raising of change records for any that remain open, and the documentation of the
acceptance of the system.
o Finalizing and archiving test ware, the test environment and the test infrastructure for later
reuse.
o Handover of test ware to the maintenance organization.
o Analyzing lessons learned for future releases and projects, and the improvement of test
maturity.
Q6. What is Quality? Explain Quality Viewpoints for producing and buying software.
Quality: Quality is the degree to which a component, system or process meets specified
requirements and/or user/customer needs and expectations.
8 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
 Customer: “Quality is fitness for use”
 Software Engineer: “Quality is Conformance to specifications”
 Other beliefs:
o Meet customer standards (defined by general usage, or national or international
body)
o Meet and fulfill customer needs (business requirements)
o Meet customer expectations (more than requirement for loyalty)
o Meet anticipated /unanticipated future needs (understand future business needs)
 Quality must be defined in measurable terms to use it as a reference
 Some view based definitions of quality are:
 Customer-Based Definition of Quality: Quality product must have ‘Fitness for use‘.
 Manufacturing-Based Definition of Quality: This approach gives the definition of
‘Conformance to requirements‘.
 Product-Based Definition of Quality: The product must have something that other
similar products do not have which can help the customer satisfy his/her needs in a
better way.
 Value- Based Definition of Quality: Many times it is claimed that ‘People do not buy
products, they buy benefits‘.
Q7. Write a note on Psychology of Testing
Psychological factors influencing testing & its success:
 Clear objectives for testing
 Proper Roles and balance of Self-testing
 Independent Testing
 Clear and courteous communication
 Feedback on defects
 Independent Testing: Different mind-set of developer and tester
o Developers look positively to solve any problems in the design / code / software to
meet specified needs
o Testers/ reviewers critically look and the product / work- product with intention to
find defects
 Several stages of reviews and testing carried out throughout the lifecycle of the s/w,
may be Independent reviews / tests
 Degree of independence avoids author bias and is more effective in finding defects and
failures
 Levels of independence from lowest to highest:
o Testing by the author/developer of the s/w
o Testing by another member in developer’s team
o Testing by tester from another organizational group like Independent testing team
o Testing by tester from different organization/ company like outsourcing testing or
certification by external agency
Q8. “Degree of independent testing avoids author bias and is often more effective at
finding defects and failures”. Explain.
As per “Human Psychology”, it is difficult to find our own mistakes. This allows an
independent test of the system.
9 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Several stages of reviews and testing are carried out throughout the life cycle and these
may be independent reviews and tests.
Early in the life cycle, reviews of requirements and design documents by someone other
than the author helps find defects before coding starts and helps us build the right software.
Following coding, the software can be tested independently. This degree of independence
avoids author bias and is often more effective at finding defects and failures.
Several levels of independence are listed here from the lowest level of independence to the
highest:
 Tests by the person who wrote the item under test;
 Tests by another person within the same team, such as another programmer;
 Tests by a person from a different organizational group, such as an independent test
team;
 Tests designed by a person from a different-organization or company, such as
outsourced testing or certification by an external body.
10 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Unit-II
Topics:
Testing Throughout the Software Life Cycle
11 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Q1. Define software. Explain the characteristic of software.
Any programmable excitable statement is called Instructions.
A set of instruction which is executable sequentially to get desired output is called program.
A set of programs which when executed sequentially to get desired result could software.
Characteristics of Software:
 Software cannot be manufactured; it is always developed in classical sense.
 Software does not wear out i.e. software can be upgrade or modified
 Availability: Software should be easily available to all users.
 Reliability
 Flexibility
 Security
 Usability
 Maintainability
 Portability
Q2. Explain 2Vs of Software Testing (verification & validation).
 In every development life cycle, a part of testing is focused on verification testing and a
part is focused on validation testing.
 Verification is concerned with evaluating a work product, component or system to
determine whether it meets the requirements set. In fact, verification focuses on the
question 'Is the deliverable built according to the specification?’
 Validation is concerned with evaluating a work product, component or system to
determine whether it meets the user needs and requirements. Validation focuses on the
question 'Is the deliverable fit for purpose, e.g. does it provide a solution to the problem?’
Q3. Explain waterfall model with its advantages and disadvantages.
The waterfall model was one of the earliest models to design. It is one approach toward
software development using Analysis, Analysis Design, Coding, Testing, Deployment &
maintenance.
12 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
The arrows in this model are unidirectional. It assumes that developer shall get all
requirements in single attempt. Therefore this model is suitable only for static requirements.
Once all requirements are analyzed and gather from customer, the requirements are
converted into Low Level and High Level Design.
The design can be Logical Flow, Diagrammatic Represents Flowchart, Data Flow Diagram of
software. The actual conversion of software design, into program code is done in software
coding. Coding is directly depended on system Design. As thy design is simple the coding is
also easier. The programmer selects appropriate programming language and start software
coding.
Executable is tested as per the test plan in system testing. The software are executed to find
bugs defects present if any
Finally successful software is deployed to the costume and futures activities are handled
through maintain advantages:
 It is one of the oldest systematic & sequential approaches towards software development.
 All the phases of software development are clearly defined i.e., each team member should
know when his/her responsibility in development process.
 It is one of the time consuming model because ones requirements are gathered from
costumer, the work model is available only after the deployment. Costumer needs to specify
all their requirements software development but it is often difficult for any costumer to give
all their requirements explicitly.
Q4. Explain the V-model of testing.
The V-model was developed to address some of the problems experienced using the
traditional waterfall approach. The V-model is a model that illustrates how testing activities
(verification and validation) can be integrated into each phase of the life cycle.
Within the V-model, validation testing takes place especially during the early stages, e.g.
reviewing the user requirements, and late in the life cycle, e.g. during user acceptance
testing.
Although variants of the V-model exist, a common type of V-model uses four test levels.
The four test levels used, each with their own objectives, are:
Component Testing:
Searches for defects in and verifies the functioning of software components (e.g. modules,
programs, objects, classes etc.) that are separately testable.
13 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Integration Testing:
Tests interfaces between components, interactions to different parts of a system such as an
operating system, file system and hard ware or interfaces between systems.
System Testing:
It concerned with the behavior of the whole system/product as defined by the scope of a
development project or product. The main focus of system testing is verification against
specified requirements.
Acceptance Testing:
Validation testing with respect to user needs, requirements, and business processes
conducted to determine whether or not to accept the system.
In practice, a V-model may have more, fewer or different levels of development and testing,
depending on the project and the software product.
For example, there may be component integration testing after component testing and
system integration testing after system testing.
Test levels can be combined or reorganized depending on the nature of the project or the
system architecture.
For the integration of a commercial off-the-shelf (COTS) software product into a system, a
purchaser may perform only integration tests at the system level (e.g. integration to the
infrastructure and other systems) and at a later stage acceptance testing.
Advantages of V-model:
 Allows early testing.
 Can be used with all the development models
 Allows static and dynamic testing
 Cost of failure can be minimized
 Software Release can be well planned.
Q5. Explain Lifecycle Testing for Iterative model & RAD model.
14 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Iterative Model:
 Requirements may change at a previous stage of development and may be taken care of
in the next stage
 Feedback loop at every stage in development
 Regression testing increasingly important on all iterations one after another
 Testing plan to allow more testing at each subsequent delivery phase
 More practical than the waterfall model
Limitation:
o They are many cycles of waterfall model
o Fixed price projects have problem of estimation
o Product architecture and design becomes fragile due to many iteration
RAD:
 Usable software created at fast speed with the involvement of the user for every
development stage (functionality)
 Miniature form of spiral model where requirements are added in small chunks and refined
with every iteration
 Components or functions are time-boxed, delivered and then assembled into working
prototype
 Early validation of technical risks and rapid response to changing customer requirements
 Limitation:
o Refactoring is the main constraint
o Involves huge cycles of retesting and regression testing
o Efforts of integration are huge
o Risk of never achieving closure
o Hard to use with legacy systems
o Requires a system that can be modularized
Q6. What is extreme programming? What are its characteristics?
Extreme Programming (XP) is currently one of the most well-known agile development life
cycle models. (See [Agile] for ideas behind this approach.) The methodology claims to be
more human friendly than traditional development methods.
Some characteristics of XP are:
 It promotes the generation of business stories to define the functionality.
 It demands an on-site customer for continual feedback and to define and carry out
functional acceptance testing.
 It promotes pair programming and shared code ownership amongst the developers.
 It states that component test scripts shall be written before the code is written and that
those tests should be automated.
 It states that integration and testing of the code shall happen several times a day.
 It states that we always implement the simplest solution to meet today's problems.
With XP there are numerous iterations each requiring testing. XP developers write every
test case they can think of and automate them. Every time a change is made in the code it
is component tested and then integrated with the existing code, which is then fully
integration-tested using the full set of test cases.
This gives continuous integration, by which we mean that changes are incorporated
continuously into the software build. At the same time, all test cases must be running at
100% meaning that all the test cases that have been identified and automated are executed
15 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
and pass. XP is not about doing extreme activities during the development process, it is
about doing known vague-adding activities in an extreme manner.
Q7. Discuss the characteristics of good testing.
Following are characteristics of good testing:-
 For every development activity there is a corresponding testing activity;
 Each test level has test objectives specific to that level;
 The analysis and design of tests for a given test level should begin during the corresponding
development activity;
 Testers should be involved in reviewing documents as soon as drafts are available in the
development cycle.
Q8. What are the different levels of testing? Explain each in brief.
Component Testing
 Component testing is also known as Unit, module & program testing, it searches for defects
and verifies functionality of software that is separately testable.
 In unit testing, the entire software is divided into smallest workable module called as unit
and each and every unit is tested separately to ensure that it is working properly.
Advantages of Unit Testing are
 Error identification become simple
 Error propagation gets minimize
 Overall testing time will reduce
The following tests are performed on an individual module during unit testing.
o In Boundary Condition Testing Individual module is tested on their extremes boundaries,
because maximum number of errors do occurs on boundaries rather than its operation
bound.
o Local data structure testing ensures the validity of data structure in software module
o In independent path testing tester tests all the independent paths in module are working
properly or not.
o In interface testing, tester tests the interface of module with the system
o Finally all error handling paths are tested to ensure that the module is working properly as
an individual.
 Component testing may include testing of functionality & specific non-functional
characteristics such as resource behavior, performance testing, & structural testing test
cases are derived from the driver class to test their stuffs.
 Unit testing is also called as Grey Box Testing (GBT)
2. Integration Testing
16 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Integration testing tests interfaces between components, interactions to different parts of a
system such as an operating system, file system and hard-ware or interfaces between
systems.
Note that integration testing should be differentiated from other integration activities.
Integration testing is often carried out by the integrator, but preferably by a specific
integration tester or test team. There may be more than one level of integration testing and
it may be carried out on test objects of varying size.
For example:
• Component integration testing tests the interactions between software components and is
done after component testing;
• System integration testing tests the interactions between different systems and may be
done after system testing. In this case, the developing organization may control only one
side of the interface, so changes may be destabilize lazing. Business processes
implemented as workflows may involve a series of systems that can even run on different
platforms.
The greater the scope of integration, the more difficult it becomes to isolate failures to a
specific interface, which may lead to an increased risk. This leads to varying approaches to
integration testing. One extreme is that all components or systems are integrated
simultaneously, after which everything is tested as a whole. This is called 'big-bang'
integration testing. Big-bang testing has the advantage that everything is finished before
integration testing starts.
Top-Down: testing takes place from top to bottom, following the control flow or
architectural structure (e.g. starting from the GUI or main menu). Components or systems
are substituted by stubs.
• Bottom-Up: testing takes place from the bottom of the control flow upwards. Components
or systems are substituted by drivers.
• Functional Incremental: integration and testing takes place on the basis of the functions
or functionality, as documented in the functional specification.
3. System Testing
 System testing is concerned with the behaviour of the whole system/product as defined
by the scope of a development project or product.
 It may include tests based on risks and/or requirements specification, business
processes, use cases, or other high level descriptions of system behaviour, interactions
with the operating system, and system resources.
 System testing is most often the final test on behalf of development to verify that the
system to be delivered meets the specification and its purpose may be to find as many
defects as possible.
 Most often it is carried out by specialist testers that form a dedicated, and sometimes
independent, test team within development, reporting to the development manager or
project manager. In some organizations system testing is carried out by a third party
team or by business analysts.
 System testing should investigate both functional and non-functional requirements of the
system. Typical non-functional tests include performance and reliability. Testers may also
need to deal with incomplete or undocumented requirements. System testing of
functional requirements starts by using the most appropriate specification-based (black-
box) techniques for the aspect of the system to be tested.
The following are testing to be conducted during system testing.
o Performance Testing
o Load / Stress
17 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
o Recovery
o Security Testing
4. Acceptance Testing
When the development organization has performed its system test and has corrected all or
most defects, the system will be delivered to the user or customer for acceptance testing.
The acceptance test should answer questions such as:
 Can the system be released?
 What, if any, are the outstanding (business) risks?
 Has development met their obligations?
Acceptance testing is most often the responsibility of the user or customer, although other
stakeholders may be involved as well. The execution of the acceptance test requires a test
environment that is for most aspects, representative of the production environment ('as-if
production').
The goal of acceptance testing is to establish confidence in the system, part of the system
or specific non-functional characteristics, e.g. usability, of the system. Acceptance testing is
most often focused on a validation type of testing, whereby we are trying to determine
whether the system is fit for purpose. Finding defects should not be the main focus in
acceptance testing. Although it assesses the system's readiness for deployment and use, it
is not necessarily the final level of testing. For example, a large-scale system integration
test may come after the acceptance of a system.
Acceptance testing may occur at more than just a single level, for example:
• A Commercial off the Shelf (COTS) software product may be acceptance tested when it is
installed or integrated.
• Acceptance testing of the usability of a component may be done during component
testing.
Other types of acceptance testing that exist are contract acceptance testing and compliance
acceptance testing.
If the system has been developed for the mass market, e.g. commercial off-the-shelf
software (COTS), then testing it for individual users or customers is not practical or even
possible in some cases. Feedback is needed from potential or existing users in their market
before the software product is put out for sale commercially. Very often this type of system
undergoes two stages of acceptance test. The first is called alpha testing.
This test takes place at the developer's site. A cross-section of potential users and
members of the developer's organization are invited to use the system. Developers observe
the users and note problems. Alpha testing may also be carried out by an independent test
team. Beta testing, or field testing, sends the system to a cross-section of users who
install it and use it under real-world working conditions. The users send records of incidents
with the system to the development organization where the defects are repaired.
Q9. Explain the significance of stubs and drivers with help of example.
Stubs:-
Stubs are dummy modules that are always distinguish as "called programs", or you can
say that is handle in integration testing (top down approach), it used when sub programs are
under construction.
Stubs are considered as the dummy modules that always simulate the low level modules.
Drivers:
Drivers are also considered as the form of dummy modules which are always distinguished
as "calling programs”, that is handled in bottom up integration testing; it is only used when
main programs are under construction.
18 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Drivers are considered as the dummy modules that always simulate the high level modules.
Component testing may be done in isolation from the rest of the system depending on the
context of the development life cycle and the system.
Most often stubs and drivers are used to replace the missing software and simulate the
interface between the software components in a simple manner. A stub is called from the
software component to be tested; a driver calls a component to be tested.
Example of Stubs and Drivers:
We have 3 modules login, home, and user module. Login module is ready and need to test
it, but we call functions from home and user (which is not ready). To test at a selective
module we write a short dummy piece of a code which simulates home and user, which will
return values for Login, this piece of dummy code is always called Stubs and it is used in a
top down integration.
Considering the same Example above: If we have Home and User modules get ready and
Login module is not ready, and we need to test Home and User modules Which return
values from Login module, So to extract the values from Login module We write a Short
Piece of Dummy code for login which returns value for home and user, So these pieces of
code is always called Drivers and it is used in Bottom Up Integration
Q10. What is Integration Testing? List and explain the approaches Integration Testing.
Definition: “Testing performed to expose defects in the interfaces and in the interactions
between integrated components or systems”
 Integration testing starts when two components are individually tested (i.e. after
performing unit testing) and ends when all component interfaces have been tested
 Approaches/Methodologies/Strategies of Integration Testing:
o Approaches of integration depend upon how the system is integrated
There are two ways to integrate modules:
o Non Incremental Software Integration
 Big Bang Integration approach
o Incremental Software Integration
 Top-down Software Integration
 Bottom-up Software Integration
 Sandwich Integration
Non Incremental Approach
Big Bang Approach:
19 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
o All or most of the developed modules are coupled together to form a complete
software system or major part of the system and then integration testing is performed
o Effective in saving time
o If test cases and results are not recorded then the integration process becomes
difficult and the testing team may not achieve goal of integration testing
o Effective for small systems but not the large ones
Advantages:
 Simple and convenient for small systems
 To check the data flow from one module to another
 Communication between various modules is checked
 Needs less planning, less formal development process
 No stub/driver is required to be designed and coded
 No Cost incurred in creating stubs and drivers
 Effective in terms of time as it is fast
Disadvantages: maintenance
 Since all modules are tested at once, high risk modules are not isolated and tested on
priority
 Integration testing can only commence when all modules are ready
 Fault localization is difficult
 Probability to miss interface faults is high
 If defect is found in the integrated code then there can be much of throwaway code
Incremental Software Integration:
Top-Down Approach:
 Top-level of application is tested first and then modules are tested till the component
level
 Involves testing the topmost component interface with other components in the order of
top-down navigation until all components are covered
 It takes help of stubs for testing
 Only Highest level modules are tested in isolation
 After the next module is tested, the modules directly called by that module are merged
and the combination is tested until all subsystems are integrated to be finally tested
 Modules subordinate to the main control module are incorporated into the system in
either depth-first or breadth-first manner
Bottom up Approach
 Modules subordinate to the main control module are incorporated into the system in
either depth-first or breadth-first manner
 Opposite of top-down integration
 Components for new product development become available in reverse order, starting
from bottom
 Drivers are used for testing
 An Approach to integrate testing where the lowest level components are tested first, then
used to facilitate the testing of higher level components
 Process repeated until the component at top hierarchy is tested
20 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
 Module driver required to feed test case input to the interface of the module being tested
Sandwich or Hybrid Approach:
 Sandwich / Hybrid is a approach is combination of Top-down and Bottom-up approach of
integration testing defined by Myers(1979)
 Combines the advantages of both the approaches
 Top-down approach starts from middle layer and goes downward
 Bottom-up testing starts from middle layer and goes upward to the top layer
 Sub teams or individuals conduct bottom-up testing of the parts or modules built by them
before releasing them
 Integration team assembles them together for top-down testing.
Q11. “Integration testing is a crucial phase of testing process”. Discuss.
 Integration testing involves integration of units to make a module/integration of modules
to make a system integration of system with environmental variables if required to create
a real-life application.
 Integration testing may start at module level, where different units and components come
together to form a module, and go up to system level.
 If module is self-executable, it may be taken for testing by testers. If it needs stubs and
drivers, it is tested by developers.
 Though integration testing also tests the functionality of software under review, the main
stress of integration testing is on the interfaces between different modules/systems.
 Integration testing mainly focuses on input output protocols, and parameters passing
between different units, modules and/or system. Focus of integration is mainly on low-
level design, architecture, and construction of software. Integration testing is considered
as ‘structural testing’.
Below figure shows a system schematically
There are various approaches of integration testing depending upon how the system is
integrated. Different approaches have different benefits and limitations.
 Bottom-Up Testing
 Top-Down Testing
Q12. Explain Conformance directed Testing Levels.
 Levels of testing may be categorized as:
o Fault-Directed Testing
21 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
 Component / Unit Testing
 Integration Testing
o Conformance Directed Testing
 System Testing
 Acceptance Testing
 System Testing: “System Testing is final level of software testing process on behalf of
developers where a complete system/ software is tested”
 “Testing carried out to analyse the behaviour of the whole system according to the
requirement specification is known as system testing”
 Computer based system checked for validity and objectives met
 System testing should investigate both functional and non-functional requirements of the
system
 System test may be based on risks, SRS, Business processes, use cases or other high
level descriptions of system behaviour, interaction with operating systems and system
resources
 System testing includes:
o Performance Testing
 Load testing
 Stress testing
o Security Testing
 Authentication testing
 Authorization testing
o Volume Testing
o Sanity Testing
o Auxiliary Testing
o Recovery Testing
Acceptance Testing:
 Application undergoes a series of rigorous tests to ensure that the program passes the
requirement of the client and has no bugs that may cause serious problems later on
 Before the software is released to public, there are testing stages that ensure its
appropriateness
 User Acceptance testing
 Operational Acceptance Testing
 Contract and regulation Acceptance testing
 Business Acceptance Testing
 Alpha and Beta / Gamma Testing
Q13. Compare the objectives of Integration and System Testing.
Integration testing:
 Integration testing involves integration of units to make a module/integration of modules
to make a system integration of system with environmental variables if required to create
a real-life application. 2. Integration testing may start at module level, where different
units and components come together to form a module, and go up to system level.
 If module is self-executable, it may be taken for testing by testers. If it needs stubs and
drivers, it is tested by developers. Though integration testing also tests the functionality of
22 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
software under review, the main stress of integration testing is on the interfaces between
different modules/systems.
 Integration testing mainly focuses on input output protocols, and parameters passing
between different units, modules and/or system.
 Focus of integration is mainly on low-level design, architecture, and construction of
software.
System Testing:-
 System testing comes under the category of black box testing therefore the knowledge of
the internal structure is not required by the testers.
 The entire software is tested carefully to make sure that it meets the quality and
functional standards set by the client.
 The criteria for system testing may involve an entire domain or selected parts depending
upon the scope of testing.
The types of system testing are as follows:
 Performance testing
 Load testing
 Stress testing
 Recovery testing
 Security testing
 Installation testing
 Sanity testing
Q14. What are the four types of software testing? Explain each.
1. Functional Testing
The function of a system (or component) is 'what it does'. This is typically described in a
requirements specification, a functional specification, or in use cases. There may be some
functions that are 'assumed' to be provided that are not documented that are also part of the
requirement for a system, though it is difficult to test against undocumented and implicit
requirements.
Functional tests are based on these functions, described in documents or understood by the
testers and may be performed at all test levels (e.g. test for components may be based on a
component specification).
Functional testing considers the specified behaviour and is often also referred to as black-
box testing. Function (or functionality) testing can, based upon ISO 9126, be done focusing
on suitability, interoperability, security, accuracy and compliance. Security testing, for
example, investigates the functions (e.g. a firewall) relating to detection of threats, such as
viruses, from malicious outsiders.
Testing functionality can be done from two perspectives: requirements-based or business-
process-based. Requirements-based testing uses a specification of the functional
requirements for the system as the basis for designing tests. A good way to start is to use
the table of contents of the requirements specification as an initial test inventory or list of
items to test (or not to test). We should also prioritize the requirements based on risk criteria
(if this is not already done in the specification) and use this to prioritize the tests. This will
ensure that the most important and most critical tests are included in the testing effort.
Business-process-based testing uses knowledge of the business processes. Business
processes describe the scenarios involved in the day-to-day business use of the system.
For example, a personnel and payroll system may have a business process along the lines
23 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
of: someone joins the company, he or she is paid on a regular basis, and he or she finally
leaves the company.
Use cases originate from object-oriented development, but are nowadays popular in many
development life cycles. They also take the business processes as a starting point, although
they start from tasks to be performed by users. Use cases are a very useful basis for test
cases from a business perspective.
2. Non-Functional Testing
A second target for testing is the testing of the quality characteristics, or non-functional
attributes of the system (or component or integration group). Here we are interested in how
well or how fast something is done. We are testing something that we need to measure on a
scale of measurement, for example time to respond.
Non-functional testing, as functional testing, is performed at all test levels. Non-functional
testing includes, but is not limited to, performance testing, load testing, stress testing,
usability testing, maintainability testing, reliability testing and portability testing. It is the
testing of 'how well' the system works.
The characteristics and their sub-characteristics are, respectively:
 Functionality: It consists of five sub-characteristics: suitability, accuracy, security,
interoperability and compliance; this characteristic deals with functional testing.
 Reliability: It is defined further into the sub-characteristics maturity (robustness), fault
tolerance, recoverability and compliance.
 Usability: It is divided into the sub-characteristics understandability, learnability,
operability, attractiveness and compliance.
 Efficiency: It is divided into time behaviour (performance), resource utilization and
compliance.
 Maintainability: It consists of five sub-characteristics: analyzability, changeability,
stability, testability and compliance.
 Portability: It also consists of five sub-characteristics: adaptability, installability, co-
existence, replaceability and compliance.
3. Structural Testing
The third target of testing is the structure of the system or component. If we are talking
about the structure of a system, we may call it the system architecture. Structural testing is
often referred to as 'white-box' or 'glass-box' because we are interested in what is
happening 'inside the box'.
Structural testing is most often used as a way of measuring the thoroughness of testing
through the coverage of a set of structural elements or coverage items. It can occur at any
test level, although is it true to say that it tends to be mostly applied at component and
integration and generally is less likely at higher test levels, except for business-process
testing.
At component integration level it may be based on the architecture of the system, such as a
calling hierarchy. A system, system integration or acceptance testing test basis could be a
business model or menu structure.
At component level, and to a lesser extent at component integration testing, there is good
tool support to measure code coverage. Coverage measurement tools assess the
percentage of executable elements (e.g. statements or decision outcomes) that have been
exercised (i.e. covered) by a test suite. If coverage is not 100%, then additional tests may
need to be written and run to cover those parts that have not yet been exercised. The
techniques used for structural testing are structure-based techniques, also referred to as
white-box techniques. Control flow models are often used to support structural testing.
4. Confirmation and Regression Testing
24 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
The final target of testing is the testing of changes. This category is slightly different to the
others because if you have made a change to the software, you will have changed the way
it functions, the way it performs (or both) and its structure. However we are looking here at
the specific types of tests relating to changes, even though they may include all of the other
test types.
Confirmation Testing
When a test fails and we determine that the cause of the failure is a software defect, the
defect is reported, and we can expect a new version of the software that has had the defect
fixed. In this case we will need to execute the test again to confirm that the defect has
indeed been fixed. This is known as confirmation testing (also known as re-testing).
Regression Testing
The term 'regression testing' is something of a misnomer. It would be better if it were called
'anti-regression' testing because we are executing tests with the intent of checking that the
system has not regressed (that is, it does not now have more defects in it as a result of
some change).
More specifically, the purpose of regression testing is to verify that modifications in the
software or the environment have not caused unintended adverse side effects and that the
system still meets its requirements.
All of the test cases in a regression test suite would be executed every time a new version
of software is produced and this makes them ideal candidates for automation. If the
regression test suite is very large it may be more appropriate to select a subset for
execution.
Regression tests are executed whenever the software changes, either as a result of fixes or
new or changed functionality. It is also a good idea to execute them when some aspect of
the environment changes, for example when a new version of a database management
system is introduced or a new version of a source code compiler is used.
Q15. Explain Maintenance Testing.
Maintenance Testing:
 Once deployed, system is often in service for year or even decades during this time the
system & its operational environment is often corrected, change or extended. Testing i.e.
executing during these life cycle period is called Maintenance Testing.
 Maintenance testing is different from maintainability testing, which defines how easy it is
to maintain the system.
 The development and test process applicable to new developments doesn’t change
fundamentally for maintenance purpose the same test process steps will be apply &
depending on size & risk of the changes made, several levels of testing are carried out
during maintenance testing. A component test,, system test, Acceptance Test.
 A maintenance test process usually begins with the receipt of an application for a
change. The test manager will use these as basis for producing test plan.
On the receipt of new or change the specification, corresponding test cases are specified or
adapted. Once the necessary changes have been made, regression testing is performed.
Usually maintenance testing will consist of two parts
o Testing Changes
o Regression Test to show that rest of system has not been affected maintenance
work. The maintenance testing will perform under following condition.
25 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
 If costumer or end user requires support or they are not understanding some
of the functionality of s/w.
 When developer wants to enhance / upgrade software.
 When any changes are informed by user.
Q16. Explain Triggers for Maintenance Testing.
 Maintenance Testing triggered by Modifications, Migration or retirement of the
system
 Maintenance testing for Modifications include:
o Planned enhancements
o Corrective and emergency changes
o Changes of environment like upgrades of OS or databases
o Patches to newly exposed or vulnerable parts of OS
 Maintenance testing for Migrations include:
o Operational testing of new environment
o Changed software
 Maintenance testing for Retirement of System include:
o Testing of data migration or archiving
 Modification is major part of Maintenance Testing
 Two types of modifications include:
o Planned Modifications may be
Perfective Modifications
Adaptive Modifications
Corrective Planned Modification
o Ad-hoc Corrective Modifications: concerned with defects requiring an
immediate solution
Structured approach of testing impossible
 Risk analysis of system and specify set of standard tests
26 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Unit-III
Topics:
Static Technique
27 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Q1. What is static testing? What are its advantages?
Static Testing: Testing of a component or system at specification or implementation level
without execution of that software, for e.g. reviews or static code analysis.
 Software work products are examined manually or with a set of tools, but not executed
 Not all work products can be subjected to execution
 Dynamic and static testing are complementary methods as they tend to identify different
defects effectively and efficiently
 In addition to finding defects the objectives of static testing are:
o Informational
o Communicational and
o Educational
 Reviews represent project milestones and support to establish test basis for the product
 Review feedback helps testers focus their testing and are a means of customer/user
communication with developers
 Early feedback on quality issues can be established
 E.g. early reviews of user requirement as against during user acceptance testing
 Allows for process improvements avoiding similar errors to be repeated in future
 Static tests contribute to an increased awareness of quality
Advantages:
 Since static testing can start early in the life cycle, early feedback on quality issues can
be established, e.g. an early validation of user requirements and not just late in the life
cycle during acceptance testing.
 By detecting defects at an early stage, rework costs are most often relatively low and
thus a relatively cheap improvement of the quality of software products can be achieved.
 Since rework effort is substantially reduced, development productivity figures are likely to
increase.
 The evaluation by a team has the additional advantage that there is an exchange of
information between the participants.
 Static tests contribute to an increased awareness of quality issues.
Q2. Explain the phases of formal review.
Phases of a formal review
A typical formal review process consists of six main steps:
 Planning
 Kick-off
 Preparations
 Review meeting
 Rework
 Follow Up.
Planning
The review process for a particular review begins with a 'request for review' by the author to
the moderator (or inspection leader). A moderator is often assigned to take care of the
scheduling (dates, time, place and invitation) of the review. On a project level, the project
planning needs to allow time for review and rework activities, thus providing engineers with
time to thoroughly participate in reviews.
28 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Although more and other entry criteria can be applied, the following can be regarded as the
minimum set for performing the entry check:
 A short check of a product sample by the moderator (or expert) does not reveal a large
number of major defects. For example, after 30 minutes of checking, no more than 3
major defects are found on a single page or fewer than 10 major defects in total in a set
of 5 pages.
 The document to be reviewed is available with line numbers.
 The document has been cleaned up by running any automated checks that apply.
 References needed for the inspection are stable and available.
 The document author is prepared to join the review team and feels confident with the
quality of the document.
 Within reviews the following focuses can be identified:
 Focus on higher-level documents, e.g. does the design comply to the requirements;
 Focus on standards, e.g. internal consistency, clarity, naming conventions, templates;
 Focus on related documents at the same level, e.g. interfaces between software
functions;
 Focus on usage, e.g. for testability or maintainability.
Kick-off
An optional step in a review procedure is a kick-off meeting. The goal of this meeting is to
get everybody on the same wavelength regarding the document under review and to
commit to the time that will be spent on checking. During the kick-off meeting the reviewers
receive a short introduction on the objectives of the review and the documents.
The relationships between the document under review and the other documents (sources)
are explained, especially if the number of related documents is high. Role assignments,
checking rate, the pages to be checked, process changes and possible other questions are
also discussed during this meeting. Of course the distribution of the document under review,
source documents and other related documentation, can also be done during the kick-off.
Preparation
The participants work individually on the document under review using the related
documents, procedures, rules and checklists provided. The individual participants identify
defects, questions and comments, according to their understanding of the document and
role. All issues are recorded, preferably using a logging form. Spelling mistakes are
recorded on the document under review but not mentioned during the meeting.
The annotated document will be given to the author at the end of the logging meeting. Using
checklists during this phase can make reviews more effective and efficient, for example a
specific checklist based on perspectives such as user, maintainer, tester or operations, or a
checklist for typical coding problems.
Review Meeting
The meeting typically consists of the following elements (partly depending on the review
type): logging phase, discussion phase and decision phase.
Every defect and its severity should be logged. The participant who identifies the defect
proposes the severity. Severity classes could be:
 Critical: defects will cause downstream damage; the scope and impact of the defect is
beyond the document under inspection.
29 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
 Major, defects could cause a downstream effect (e.g. a fault in a design can result in an
error in the implementation).
 Minor, defects are not likely to cause downstream damage (e.g. non-compliance with the
standards and templates).
Rework
Based on the defects detected, the author will improve the document under review step by
step. Not every defect that is found leads to rework. It is the author's responsibility to judge
if a defect has to be fixed. If nothing is done about an issue for a certain.
Follow-up
The moderator is responsible for ensuring that satisfactory actions have been taken on all
(logged) defects, process improvement suggestions and change requests. Although the
moderator checks to make sure that the author has taken action on all known defects, it is
not necessary for the moderator to check all the corrections in detail.
Q3. Explain roles and responsibilities of members present in review process.
The participant in any type of formal review must have adequate knowledge of review
process, the best & most efficient review situation occurs when participant gains. Following
are the members & responsibilities in review process.
Moderator / Manager:
 It is a chairperson of the entire review process. He/she determines incorporation with
author, type of review, approach & composition of review team. The moderator is
responsible of scheduling of review process.
 Moderator prepares policy, plan objectives & review process.
 The training of reviewer can conducted by moderator the moderator performs entry check &
follow up on rework, in order to control, the quality of input & output of review process.
 Moderator can also define exit criteria.
Author:
 Author is writer of the document under review, the authors goal should be learn to as much
possible with regards to improving quality of document but also to improve his or her ability
to write futures documents.
 The author’s task is to eliminate under areas & to understand the defects found.
 If author’s document exceeds exit criteria then author must involve in the rework phase.
Scriber / Recorder:
During logging phase recorder has to record each defect mentioned and any suggestions
for process improvements.
Reviewer:
 The task of reviewer is to check authors documents for defects the levels of domain
knowledge or technical expertise needed by reviewer will depend on type of review & type
of document which is under review.
 The reviews should be chosen to represent different prospective & rates In review process.
In addition to document under review the material reviewer reviews includes source,
standards, checklist etc. The sole responsibility is to review author’s document & try to find
as many defects as present in document.
Manager:
The manager is involved in reviews as he/she decides on execution of reviews, allocates
time in project schedules & determines whether review process object have been met. The
30 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
manager is also responsible for providing readymade tools, review training if requested by
participants
Q4. What are the different types of reviews? What are the goals and characteristics of
inspection?
The main review types, their main characteristics and common objectives are described
below.
Walkthrough
A walkthrough is characterized by the author of the document under review guiding the
participants through the document and his or her thought processes, to achieve a common
understanding and to gather feedback.
This is especially useful if people from outside the software discipline are present, who are
not used to, or cannot easily understand software development documents. The content of
the document is explained step by step by the author, to reach consensus on changes or to
gather information.
The specific goals of a walkthrough depend on its role in the creation of the document. In
general the following goals can be applicable:
 To present the document to stakeholders both within and outside the software discipline,
in order to gather information regarding the topic under documentation;
 To explain (knowledge transfer) and evaluate the contents of the document;
 To establish a common understanding of the document;
 To examine and discuss the validity of proposed solutions and the viability of alternatives,
establishing consensus.
Key characteristics of walkthroughs are:
 The meeting is led by the authors; often a separate scribe is present.
 Scenarios and dry runs may be used to validate the content.
 Separate pre-meeting preparation for reviewers is optional.
Technical Review
A technical review is a discussion meeting that focuses on achieving consensus about the
technical content of a document. Compared to inspections, technical reviews are less formal
and there is little or no focus on defect identification on the basis of referenced documents,
intended readership and rules.
During technical reviews defects are found by experts, who focus on the content of the
document. The experts that are needed for a technical review are, for example, architects,
chief designers and key users. In practice, technical reviews vary from quite informal to very
formal.
The goals of a technical review are to:
 Assess the value of technical concepts and alternatives in the product and project
environment;
 Establish consistency in the use and representation of technical concepts;
 Ensure, at an early stage, that technical concepts are used correctly;
 Inform participants of the technical content of the document.
 Key characteristics of a technical review are:
 It is a documented defect-detection process that involves peers and technical experts.
 It is often performed as a peer review without management participation.
 Ideally it is led by a trained moderator, but possibly also by a technical expert.
31 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
 A separate preparation is carried out during which the product is examined and the
defects are found.
 More formal characteristics such as the use of checklists and a logging list or issue log
are optional.
Inspection
Inspection is the most formal review type. The document under inspection is prepared and
checked thoroughly by the reviewers before the meeting, comparing the work product with
its sources and other referenced documents, and using rules and checklists. In the
inspection meeting the defects found are logged and any discussion is postponed until the
discussion phase. This makes the inspection meeting a very efficient meeting.
Depending on the organization and the objectives of a project, inspections can be balanced
to serve a number of goals. For example, if the time to market is extremely important, the
emphasis in inspections will be on efficiency. In a safety-critical market, the focus will be on
effectiveness.
The generally accepted goals of inspection are to:
 Help the author to improve the quality of the document under inspection;
 Remove defects efficiently, as early as possible;
 Improve product quality, by producing documents with a higher level of quality;
 Create a common understanding by exchanging information among the inspection
participants;
 Train new employees in the organization's development process;
 Learn from defects found and improve processes in order to prevent recurrence of similar
defects;
 Sample a few pages or sections from a larger document in order to measure the typical
quality of the document, leading to improved work by individuals in the future, and to
process improvements.
Key characteristics of an inspection are:
 It is usually led by a trained moderator (certainly not by the author).
 It uses defined roles during the process.
 It involves peers to examine the product.
 Rules and checklists are used during the preparation phase.
 A separate preparation is carried out during which the product is examined and the
defects are found.
 The defects found are documented in a logging list or issue log.
 A formal follow-up is carried out by the moderator applying exit criteria.
 Optionally, a causal analysis step is introduced to address process improvement issues
and learn from the defects found.
 Metrics are gathered and analysed to optimize the process.
Q5. What are the success factors of reviews? Explain.
Implementing (formal) reviews is not easy as there is no one way to success and there are
numerous ways to fail. The next list contains a number of critical success factors that
improve the chances of success when implementing reviews. It aims to answer the
question, 'How do you start (formal) reviews?'
Find a 'champion'
32 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
A champion is needed, one who will lead the process on a project or organizational level.
They need expertise, enthusiasm and a practical mind-set in order to guide moderators and
participants. The authority of this champion should be clear to the entire organization.
Management support is also essential for success. They should, amongst other things,
incorporate adequate time for review activities in project schedules.
Pick things that really count
Select the documents for review that are most important in a project. Reviewing highly
critical, upstream documents like requirements and architecture will most certainly show the
benefits of the review process to the project. These invested review hours will have a clear
and high return on investment. In addition make sure each review has a clear objective and
the correct type of review is selected that matches the defined objective. Don't try and
review everything by inspection; fit the review to the risk associated with the document.
Some documents may only warrant an informal review and others will repay using
inspection. Of course it is also of utmost importance that the right people are involved.
Explicitly plan and track review activities
To ensure that reviews become part of the day-to-day activities, the hours to be spent
should be made visible within each project plan. The engineers involved are prompted to
schedule time for preparation and, very importantly, rework. Tracking these hours will
improve planning of the next review. As stated earlier, management plays an important part
in planning of review activities.
Train participants
It is important that training is provided in review techniques, especially the more formal
techniques, such as inspection. Otherwise the process is likely to be impeded by those who
don't understand the process and the reasoning behind it. Special training should be
provided to the moderators to prepare them for their critical role in the review process.
Manage people issues
Reviews are about evaluating someone's document. Some reviews tend to get too personal
when they are not well managed by the moderator. People issues and psychological
aspects should be dealt with by the moderator and should be part of the review training,
thus making the review a positive experience for the author. During the review, defects
should be welcomed and expressed objectively.
Follow the rules but keep it simple
Follow all the formal rules until you know why and how to modify them, but make the
process only as formal as the project culture or maturity level allows. Do not become too
theoretical or too detailed. Checklists and roles are recommended to increase the
effectiveness of defect identification.
Continuously improve process and tools
Continuous improvement of process and supporting tools (e.g. checklists), based upon the
ideas of participants, and ensures the motivation of the engineers Involved. Motivation is the
key to a successful change process. There should also be an emphasis, in addition to
defect finding, on learning and process Improvement.
Report results
Report quantified results and benefits to all those involved as soon as possible, and discuss
the consequences of defects if they had not been found this early. Costs should of course
33 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
be tracked, but benefits, especially when problems don't occur in the future, should be
made visible by quantifying the benefits as well as the costs.
Just do it!
The process is simple but not easy. Each step of the process is clear, but experience is
needed to execute them correctly. So, try to get experienced people to observe and help
where possible. But most importantly, start doing reviews and start learning from every
review.
Q6. List down the types of Static Analysis by Tools. Explain them.
 Most of the Static Analysis tools focus on software code
 Tools typically used by developers before or during component and integration testing
and by designers during s/w modelling
 Tools :
o can not only show structural attributes such as depth of nesting or Cyclomatic
complexity and check against the coding standards
o but also have graphic depictions of control flow, data relationships and number of
distinct paths from one line of code another
 Static Analysis tools are important because:
o All languages are prone to recognizable fault modes
o These faults may escape conventional scrutiny by dynamic testing and may show
only when commercial product is in use
o All programming languages have problems and programmers cannot assure to
protect against them
o Programming languages cannot be standardized
 Coding Standards: Coding Standards consists of
o Set of Programming rules (dynamic memory allocation for array)
o Naming conventions (class names to begin with C)
o GUI standards
o Layout specifications adopted
 Code Metrics: Code analysis uses Structural attributes of the code such as
o Comment frequency
o Depth of nesting
o Cyclomatic number
o Number of LOC
 These metrics help to design alternatives when redesigning a piece of code
 Complexity metrics identify high risk and complex areas
 Cyclomatic Complexity Metric (CCM) is based on the number of decisions in the program
 Code Structure: Control Flow Structure:
o Addresses sequence in which instructions are executed
o Reflects the iterations and loops in a program’s design
o Control Flow Analysis identifies unreachable code or dead code
o Many code metrics depend on the Control Flow Structure
 Data Flow Structure:
o Follows the trail of data items as it is accessed and modified by the code
o Number of times transactions applied to the data item
34 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
o Data Flow measures show how data act as they are transformed by the program
o Defects like undefined symbol, referencing variables, undefined values may be found
 Data Structure:
o Refers to organization of data itself, independent to program
o Data arranged as lists, queues, stacks or other well-defined structure have well-
defined algorithms for creating, modifying or deleting them
o Helps design test cases to show correctness of a program
Q7. Define the following terms:
1. Cyclomatic complexity
 Cyclomatic complexity is a source code complexity measurement that is being correlated
to a number of coding errors. It is calculated by developing a Control Flow Graph of the
code that measures the number of linearly-independent paths through a program
module.
 Lower the Program's cyclomatic complexity, lower the risk to modify and easier to
understand. It can be represented using the below formula:
C (G) = E − N + 2P
Where
E = the number of edges of the graph.
N = the number of nodes of the graph.
P = the number of connected components.
2. Data Flow
 Data flow is an abstract representation of the sequence and possible changes of state of
data objects, where the state of an object is any of creation (created); used: used or
modified; destruction (killed).
 Data flow structure follows the trail of a data item as it is accessed and modified by the
code. Using Data flow, one can understand how the data acts as they are transformed by
the program and also, defects like referencing a variable with an undefined value and
variables that are never used can be identified.
3. Control Flow
 The control flow structure addresses the sequence in which the instructions are
executed.
 This aspect of structure reflects the iterations and loops in a program's design. If only the
size of a program is measured, no information is provided on how often an instruction is
executed as it is run. Control flow analysis can also be used to identify unreachable
(dead) code. In fact many of the code metrics relate to the control flow structure, e.g.
number of nested levels or cyclomatic complexity.
4. Entry Criteria
 Entry criterion is used to determine when a given test activity should start. It also includes
the beginning of a level of testing, when test design or when test execution is ready to
start.
35 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Examples for Entry Criterion:
 Verify if the Test environment is available and ready for use.
 Verify if test tools installed in the environment are ready for use.
 Verify if Testable code is available.
 Verify if Test Data is available and validated for correctness of Data.
5. Exit Criteria
 Exit criterion is used to determine whether a given test activity has been completed or
NOT.
 Exit criteria can be defined for all of the test activities right from planning, specification
and execution.
 Exit criterion should be part of test plan and decided in the planning stage.
Examples of Exit Criteria:
 Verify if all tests planned have been run.
 Verify if the level of requirement coverage has been met.
 Verify if there are NO Critical or high severity defects that are left outstanding.
 Verify if all high risk areas are completely tested.
 Verify if software development activities are completed within the projected cost.
 Verify if software development activities are completed within the projected timelines.
Q8. Compare Static and Dynamic Testing
Static Testing Dynamic Testing
Testing done without executing the program Testing done by executing the program
This testing does verification process Dynamic testing does validation process
Static testing is about prevention of defects It is about finding and fixing the defects
Static testing gives assessment of code and
documentation
Dynamic testing gives bugs/bottlenecks in the
software system.
Static testing involves checklist and process
to be followed
Dynamic testing involves test cases for
execution
This testing can be performed before
compilation
Dynamic testing is performed after
compilation
Static testing covers the structural and
statement coverage testing
Dynamic testing covers the executable file of
the code
Cost of finding defects and fixing is less Cost of finding and fixing defects is high
Return on investment will be high as this
process involved at early stage
Return on investment will be low as this
process involves after the development phase
36 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Unit-IV
Topics:
Test Design Technique
37 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Q1. Define “Test Conditions”. Describe the process of identifying test conditions.
Test Condition
From a testing perspective, we look at the test basis in order to see what could be tested -
these are the test conditions. A test condition is simply something that we could test. E.g. If
we have a requirements specification, the table of contents can be our initial list of test
conditions.
Identifying Test Conditions
 When identifying test conditions, we want to 'throw the net wide' to identify as many as
we can, and then we will start being selective about which ones to take forward to
develop in more detail and combine into test cases. We could call them 'test possibilities'.
 Testing everything is known as exhaustive testing; and that is an impractical goal.
Therefore, a subset of possible tests should be selected. In practice the subset we select
may be a very small subset and yet it has to have a high probability of finding most of the
defects in a system.
 We need some intelligent thought processes to guide our selection; test techniques (i.e.
test design techniques) are such thought processes. A testing technique helps us select
a good set of tests from the total number of all possible tests for a given system.
 Different techniques offer different ways of looking at the software under test, possibly
challenging assumptions made about it. Each technique provides a set of rules or
guidelines for the tester to follow in identifying test conditions and test cases.
 The test conditions that are chosen will depend on the test strategy or detailed test
approach. They might be based on:
o Risk
o Models of the system
o Likely failures
o Compliance requirements
o Expert advice or heuristics
Q2. What is the meaning of “Traceability” in software testing? Why is traceability
important?
 Test conditions should be able to be linked back to their sources in the test basis this is
called traceability.
 Traceability can be either horizontal through all the test documentation for a given test
level (e.g. system testing, from test conditions through test cases to test scripts) or
vertical through the layers of development documentation (e.g. from requirements to
components).
Importance of Traceability
 The requirements for a given function or feature have changed. Some of the fields now
have different ranges that can be entered. Which tests were looking at those boundaries?
They now need to be changed. How many tests will actually be affected by this change in
the requirements? These questions can be answered easily if the requirements can
easily be traced to the tests.
 A set of tests that has run OK in the past has started to have serious problems. What
functionality do these tests actually exercise? Traceability between the tests and the
38 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
requirement being tested enables the functions or features affected to be identified more
easily.
 Before delivering a new release, we want to know whether or not we have tested all of
the specified requirements in the requirements specification. We have the list of the tests
that have passed - was every requirement tested?
Q3. What are the different types of testing techniques? Explain
Each testing technique falls into one of a number of different categories. Broadly speaking
there are two main categories, static and dynamic.
Dynamic techniques are subdivided into three more categories: specification-based (black-
box, also known as behavioural techniques), structure-based (white-box or structural
techniques) and experience-based. Specification-based techniques include both functional
and non-functional techniques (i.e. quality characteristics).
Static Testing Techniques
Most static testing techniques can be used to 'test' any form of document including source
code, design documents and models, functional specifications and requirement
specifications. However, 'static analysis' is a tool-supported type of static testing that
concentrates on testing formal languages and so is most often used to statically test source
code.
39 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Specification-Based (Black-Box) Testing Techniques
The first of the dynamic testing techniques we will look at are the specification-based testing
techniques. These are also known as 'black-box' or input/output-driven testing techniques
because they view the software as a black-box with inputs and outputs, but they have no
knowledge of how the system or component is structured inside the box. In essence, the
tester is concentrating on what the software does, not how it does it.
Structure-Based (White-Box) Testing Techniques
Structure-based testing techniques (which are also dynamic rather than static) use the
internal structure of the software to derive test cases. They are commonly called 'white-box'
or 'glass-box' techniques (implying you can see into the system) since they require
knowledge of how the software is implemented, that is, how it works.
For example, a structural technique may be concerned with exercising loops in the software.
Different test cases may be derived to exercise the loop once, twice, and many times. This
may be done regardless of the functionality of the software.
Experience-Based Testing Techniques
In experience-based techniques, people's knowledge, skills and background are a prime
contributor to the test conditions and test cases. The experience of both technical and
business people is important, as they bring different perspectives to the test analysis and
design process. Due to previous experience with similar systems, they may have insights
into what could go wrong, which is very useful for testing.
Q4. Explain equivalence partitioning and boundary value analysis with examples.
Equivalence Partitioning
It is very difficult to test entire software as whole because software is collection of set
program. In equivalence partitioning s/w tester divide entire software into set of equivalence
classes & each every equivalence program is tested by using set of valid & invalid I/P
condition. The domain of possible I/P data for each I/P data element into equivalence
classes.
An equivalence class is group of data values where tester assumes that test objects
processes them in same way. The test of one representative of equivalence class is such as
sufficient because it is assume that for any other I/P value for same equivalence Class the
test object will not show different variables.
Besides equivalence classes for correct I/P, those for incorrect I/P values must be tested as
well. To test equivalence Classes we have four different types of equivalence classes.
1) If continuous numerical domain is specified then create 1 valid & 2 invalid equivalence
classes.
I/PRange
20 <= x <= 50
Valid - x = {20, 21…….49, 50}
Invalid - i) x < 20
ii) x > 50
2) If no. of values should entered then create / valid (all possible correct values) & 2 invalid
equivalence classes (less & more than correct no.)
I/P ……. Specific value
a = 5
Valid x ϵ 5
Invalid - x ϵ 5 or x < 5
X > 5
3) If set of values is specifies where each value may possibly be treated differently than
create one valid equivalence class for each value of set
40 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
(Containing exactly these values) & one additional invalid equivalence class (Containing all
possible other value).
I/P  Member of set
x = {a, e, i, o, u}
Valid  x ϵ (a, e, i, o, u)
Invalid  x ϵ {b, c, d, f,…. z}
4) If there is condition that must be fulfilled then create 1 valid and 1 invalid equivalence
class to test the condition fulfills or not fulfill.
I/P  Boolean Value
Valid  TRUE
Invalid  FALSE
Int a = 5, b = 3, c = 2
If (a > b & b & b > c)
Test Completion Criteria:
For equivalence Partitioning can be define as
Boundary Value Analysis
It delivers a very reasonable addition to the test cases that have been identified by
equivalence Classes.
Faults often appears at the boundaries of equivalence Classes. In boundary value analysis
s/w tester emphasizes on boundary condition because maximum no. of errors are generally
occurs at boundary rather that within operational bound. Testers assume that if software
works properly on the boundary then it will definitely work within boundary condition.
The most of the errors in software lies on boundary because boundaries are often not
defined clearly or programmers misunderstand them.
A test with boundary values usually discovers the failure the technique can only we applied
if set of data which is in one equivalence Class has identifiable boundaries.
Boundaries value Analysis checks borders of equivalence Classes on every border, the
exact boundary value & both nearest adjacent value (Inside/ Outside equivalence. Class)
are tested.
If the I/P condition for the program is the range within close internal ([a, b]) then using BVA
we have six test cases as follows.
1) [a,b] a - 1, a a + 1 b -1 b b + 1
2) An I/P file has restricted number of data records between 1 & 100 the test values should
be 1,100,2,99.
3) If permitted no of O/P values is to be rested processed just as with no of input values:
If O/P of 1-4 data values is test occurred test cases are 1,4,0,5.
Test completion criteria for Boundary value is define as
Q5. Explain, how is Equivalence Class Partitioning different from BVA?
Equivalence Partitioning:
 “A Black-box test design technique in which test cases are designed to execute
representatives from equivalence partitions”
41 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
 Equivalence Partition: A portion of an input or output domain for which the behaviour of a
component or system is assumed to be the same, based on the specification.
 Equivalence Partitioning (EP) is applied at all levels of testing
 The technique divides (i.e. partitions) a set of test conditions into groups or sets that can
be considered same (i.e. system handles them equivalently) “Equivalence Partitioning‟
 Equivalent partitions are also known as equivalence classes.
 Equivalence testing considers that for each partition, a single test case associated to that
partition is sufficient to evaluate the behaviour of the system. More test cases for a
partition may not find new defects or faults in the behaviour of the system.
 Equivalence classes are formed by considering each condition specified on an input
value. The input values are then partitioned into a valid EC and one or more invalid EC.
Boundary Value Analysis (BVA):
 Boundary Value Testing (BVT) or BVA is a black box testing technique that refines
equivalence class testing. BVT is functional testing technique that allows partitioning the
inputs and outputs in ordered sets with distinct boundaries. Values under same set would
be treated in similar manner.
 Test values are selected such that they are inside, on and just outside the boundaries.
Test cases are designed to focus near the limits of valid ranges or boundaries of
equivalence classes. Efforts of software testing focus at the extreme boundaries of the
equivalence classes.
 Errors are easily tracked because when input values change from valid to invalid at
extreme ends; there is more probability of occurrence of errors.
 Purpose of BVT is to concentrate the testing effort on error-prone areas accurately
pinpointing the boundaries of conditions (E.g. programmer may interpret requirement of
SRS as >=, <=, >, <, = in his program)
Q6. What is decision table? Explain with example.
A decision table is a good way to deal with combinations of things (e.g. inputs). This
technique is sometimes also referred to as a cause-effect table.
The reason for this is that there is an associated logic diagramming technique called cause-
effect graphing' which was sometimes used to help derive the decision table.
 Decision tables provide a systematic way of stating complex business rules, which is useful
for developers as well as for testers.
 Decision tables can be used in test design whether or not they are used in specifications, as
they help testers explore the effects of combinations of different inputs and other software
states that must correctly implement business rules.
 It helps the developers to do a better job can also lead to better relationships with them.
Testing combinations can be a challenge, as the number of combinations can often be
huge. Testing all combinations may be impractical if not impossible. We have to be satisfied
with testing just a small subset of combinations but making the choice of which
combinations to test and which to leave out is also important. If you do not have a
systematic way of selecting combinations, an arbitrary subset will be used and this may well
result in an ineffective test effort.
Consider example of triangle function.
42 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Q7. Explain State Transition based testing with an example.
 State transition tables are useful tool to capture certain types of system requirements and
also document internal system design
 State transition tables document events that are processed by the system as well as
system’s responses
 Easy to use and provide information that is complete and systematic
 It consists of 4 columns:
o Current State
o Event
o Action
o Next State
 The procedure to build the state transition table is as follows:
 For each state of the system
 For each event/trigger of the system
 Find the corresponding (Action, Next State, if any)
 Document (State, Event, Action, Next State)
 The benefits of using state transition table in testing are:
o It enumerates all possible state transition combinations, not just the valid ones but
also the invalid ones
o Testing of critical, high risk systems including aviation, financial or medical
applications requires testing every state transition pair including the invalid pairs
o Knowledge of valid and invalid state transition provide necessary and complete
information that makes decision more stable and consistent in a given environment
Example:
Digital watch:
 The software responds to input requests to change the display mode for a time display
device.
 The display mode can be set to one of the four values:
 Two corresponding to displaying either time or date.
 The other two when altering either time or date.
43 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
Four possible input requests:
o Change mode (CM)
o Reset (R)
o Time Set (TS)
o Date Set (DS)
 Change Mode (CM):Activation of this shall cause the display mode to move between
“Display Time (T)” and “Display Date (D)”
 Reset (R): If display mode is set to T or D, then a “reset” shall cause the display mode to
be set to “Alter time (AT)” or “Alter Date (AD)” modes.
 Time Set (TS): Activation of this shall cause the display mode to return to T from AT.
 Date Set (DS): Activation of this shall cause the display mode to return to D from AD.
Q8. Write a short note on Test Coverage.
Test coverage measures in some specific way the amount of testing performed by a set of
tests (derived in some other way, e.g. using specification-based techniques). Wherever we
can count things and can tell whether or not each of those things has been tested by some
test, then we can measure coverage.
The basic coverage measure is given by using below formula:-
Coverage = (Number of coverage items exercised / Total number of coverage items) x
100%
Where the 'coverage item' is whatever we have been able to count and see whether a test
has exercised or used this item.
Types of coverage
There are three different types of coverage are:
 Statement coverage
 Decision coverage
44 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271
 Condition coverage
Q9. Explain white box testing.
The basis for white box technique is the source code of the test objects therefore these
techniques are often caused code based testing technique or structural testing technique.
Generic idea of white box technique is to execute every part of the code of test object at
least once flow oriented test cases are identified, analyzing program logic & then executed.
However the expected result should determine using requirement or specifications, not the
code. These are done in order to decide if the execution resulted in failure.
The focus of examination of white box technique is on the statements of the test objects.
The primary goal of white box testing is then to achieve a previously define coverage of the
statements, e.g. executes are possible statements in the program.
The basic white box test design techniques are as follows:
 Statements Coverage
 Branch Coverage
 Path Coverage
Statement Coverage:
These analysis focuses on each statement of test object the test cases shall execute a
predefined minimum quota or even all statements of test objects. The first step is to
translate source code into control flow graph.
The graph makes it easier to specify in detail the control elements that must be covered in a
graph the statements are represented as node a control flow between statements are
resented by edges if sequences of unidirectional statement appear in program fragment
then they are illustrated as one single node.
Conditional statements like if….else & loops like while, do …..While have more than one
edges going out from them.
After execution of test cases it must be verified which of the statements have been
executed. Statement coverage must ensure that each & every statement of a program must
be executed at least once.
The test completion criteria for statement coverage can define as
Statement Coverage= (No of executable state/ Total no of state)*100
Branch Coverage:
A more advance criteria for white box testing is branch coverage of control flow graph. E.g.
Edges in the graph are Centre of tension.
Execution of each statement is not coverage but rather the executions of decisions are
more important.
The result of decision determines which statement is executed next.
Branch sure every decision with both possible Test completion criteria for branch coverage
is defined a
Branch Coverage= (No of executable branches/Total no of Branches)*100
Path Coverage
Unit now test case determination focused on statement or branches of control flow as well
as complexity repetitions, the previous deliberations are not sufficient or not adequate test,
path coverage requires execution of all different paths through test objects.
The test completion criteria for P.C. cannot define mathematically because it will depend on
no. of repeat ion of loop.
No. of path coverage of test object can be determine using Cyclomatic caomplexity, which
gives total no. of maximum paths available in control flow.
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main
Software testing main

More Related Content

What's hot

Istqb intro with question answer for exam preparation
Istqb intro with question answer for exam preparationIstqb intro with question answer for exam preparation
Istqb intro with question answer for exam preparationKevalkumar Shah
 
Software testing interview Q&A – Part 2
Software testing interview Q&A – Part 2Software testing interview Q&A – Part 2
Software testing interview Q&A – Part 2Khoa Bui
 
Phases of software development
Phases of software developmentPhases of software development
Phases of software developmentCeline George
 
Why is it important to hire an independent testing team for your development ...
Why is it important to hire an independent testing team for your development ...Why is it important to hire an independent testing team for your development ...
Why is it important to hire an independent testing team for your development ...App Sierra
 
Large-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in PracticeLarge-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in PracticeTechWell
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Presentation On Software Testing Bug Life Cycle
Presentation On Software Testing Bug Life CyclePresentation On Software Testing Bug Life Cycle
Presentation On Software Testing Bug Life CycleRajon
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Conceptswesovi
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testingSiti Rubayati
 
software testing for beginners
software testing for beginnerssoftware testing for beginners
software testing for beginnersBharathi Ashok
 
Intro to Manual Testing
Intro to Manual TestingIntro to Manual Testing
Intro to Manual TestingAyah Soufan
 
Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answerskaranmca
 
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIESCHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIESSamruddhi Sheth
 
Top 50 Performance Testing Interview Questions | Edureka
Top 50 Performance Testing Interview Questions | EdurekaTop 50 Performance Testing Interview Questions | Edureka
Top 50 Performance Testing Interview Questions | EdurekaEdureka!
 
Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of TestingPalash Ghosh
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Edureka!
 
Software Testing Interview Q&A – part 1
Software Testing Interview Q&A – part 1Software Testing Interview Q&A – part 1
Software Testing Interview Q&A – part 1Khoa Bui
 

What's hot (20)

Istqb intro with question answer for exam preparation
Istqb intro with question answer for exam preparationIstqb intro with question answer for exam preparation
Istqb intro with question answer for exam preparation
 
Software testing interview Q&A – Part 2
Software testing interview Q&A – Part 2Software testing interview Q&A – Part 2
Software testing interview Q&A – Part 2
 
Beginners QA Testing
Beginners QA TestingBeginners QA Testing
Beginners QA Testing
 
Manual testing
Manual testingManual testing
Manual testing
 
Phases of software development
Phases of software developmentPhases of software development
Phases of software development
 
Why is it important to hire an independent testing team for your development ...
Why is it important to hire an independent testing team for your development ...Why is it important to hire an independent testing team for your development ...
Why is it important to hire an independent testing team for your development ...
 
Large-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in PracticeLarge-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in Practice
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Presentation On Software Testing Bug Life Cycle
Presentation On Software Testing Bug Life CyclePresentation On Software Testing Bug Life Cycle
Presentation On Software Testing Bug Life Cycle
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Concepts
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 
software testing for beginners
software testing for beginnerssoftware testing for beginners
software testing for beginners
 
Intro to Manual Testing
Intro to Manual TestingIntro to Manual Testing
Intro to Manual Testing
 
Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answers
 
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIESCHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
 
Top 50 Performance Testing Interview Questions | Edureka
Top 50 Performance Testing Interview Questions | EdurekaTop 50 Performance Testing Interview Questions | Edureka
Top 50 Performance Testing Interview Questions | Edureka
 
Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of Testing
 
Software testing
Software testingSoftware testing
Software testing
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
 
Software Testing Interview Q&A – part 1
Software Testing Interview Q&A – part 1Software Testing Interview Q&A – part 1
Software Testing Interview Q&A – part 1
 

Similar to Software testing main

Fundamental Of Testing
Fundamental Of TestingFundamental Of Testing
Fundamental Of Testingsuci maisaroh
 
Software_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdfSoftware_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdfAnupmaMunshi
 
EFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEWEFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEWJournal For Research
 
Fundamental of testing
Fundamental of testingFundamental of testing
Fundamental of testingReginaKhalida
 
20MCE14_Software Testing and Quality Assurance Notes.pdf
20MCE14_Software Testing and Quality Assurance Notes.pdf20MCE14_Software Testing and Quality Assurance Notes.pdf
20MCE14_Software Testing and Quality Assurance Notes.pdfDSIVABALASELVAMANIMC
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdfMounikaCh26
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdfGaurav Nigam
 
Software testing(1)
Software testing(1)Software testing(1)
Software testing(1)ramvyata123
 
software_testing pdf.pdf
software_testing pdf.pdfsoftware_testing pdf.pdf
software_testing pdf.pdfGaurav Nigam
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdfHappy500
 
Software Testing Interview Questions For Experienced
Software Testing Interview Questions For ExperiencedSoftware Testing Interview Questions For Experienced
Software Testing Interview Questions For Experiencedzynofustechnology
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testingmuhamad iqbal
 
Interview questions and answers for quality assurance
Interview questions and answers for quality assuranceInterview questions and answers for quality assurance
Interview questions and answers for quality assuranceGaruda Trainings
 

Similar to Software testing main (20)

Fundamental Of Testing
Fundamental Of TestingFundamental Of Testing
Fundamental Of Testing
 
Testing Software
Testing SoftwareTesting Software
Testing Software
 
Software_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdfSoftware_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdf
 
EFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEWEFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEW
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 
Fundamental of testing
Fundamental of testingFundamental of testing
Fundamental of testing
 
20MCE14_Software Testing and Quality Assurance Notes.pdf
20MCE14_Software Testing and Quality Assurance Notes.pdf20MCE14_Software Testing and Quality Assurance Notes.pdf
20MCE14_Software Testing and Quality Assurance Notes.pdf
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing(1)
Software testing(1)Software testing(1)
Software testing(1)
 
Software testing
Software testingSoftware testing
Software testing
 
software_testing pdf.pdf
software_testing pdf.pdfsoftware_testing pdf.pdf
software_testing pdf.pdf
 
Software testing pdf
Software testing pdfSoftware testing pdf
Software testing pdf
 
2.fundamental of testing
2.fundamental of testing2.fundamental of testing
2.fundamental of testing
 
Software Testing Interview Questions For Experienced
Software Testing Interview Questions For ExperiencedSoftware Testing Interview Questions For Experienced
Software Testing Interview Questions For Experienced
 
Bab 1
Bab 1Bab 1
Bab 1
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 
Interview questions and answers for quality assurance
Interview questions and answers for quality assuranceInterview questions and answers for quality assurance
Interview questions and answers for quality assurance
 

More from YogeshDhamke2

Tybscit sem v nov 2015
Tybscit sem v nov 2015Tybscit sem v nov 2015
Tybscit sem v nov 2015YogeshDhamke2
 
solve pratical and imp quseation and solution for bscit
solve pratical and imp quseation and solution for bscitsolve pratical and imp quseation and solution for bscit
solve pratical and imp quseation and solution for bscitYogeshDhamke2
 
Network security main
Network security mainNetwork security main
Network security mainYogeshDhamke2
 
Most important questions_sem5
Most important questions_sem5Most important questions_sem5
Most important questions_sem5YogeshDhamke2
 
Hospital management synopsis
Hospital management synopsisHospital management synopsis
Hospital management synopsisYogeshDhamke2
 
Hospital management synopsis
Hospital management synopsisHospital management synopsis
Hospital management synopsisYogeshDhamke2
 
B.sc . i.t.-sem..-v-net-copy-may-2017
B.sc . i.t.-sem..-v-net-copy-may-2017B.sc . i.t.-sem..-v-net-copy-may-2017
B.sc . i.t.-sem..-v-net-copy-may-2017YogeshDhamke2
 
After effects data driven animation assets
After effects data driven animation assetsAfter effects data driven animation assets
After effects data driven animation assetsYogeshDhamke2
 
Advance java for bscit
Advance java for bscitAdvance java for bscit
Advance java for bscitYogeshDhamke2
 
2016 sem 5 For tybscit
2016 sem 5 For tybscit2016 sem 5 For tybscit
2016 sem 5 For tybscitYogeshDhamke2
 
How.to.make.a.website.for.beginners
How.to.make.a.website.for.beginnersHow.to.make.a.website.for.beginners
How.to.make.a.website.for.beginnersYogeshDhamke2
 
Updated black book ice cream parlour word file For TYBSCIT
Updated black book ice cream parlour word file For TYBSCIT Updated black book ice cream parlour word file For TYBSCIT
Updated black book ice cream parlour word file For TYBSCIT YogeshDhamke2
 
Updated black book ice cream parlour TYBSCIT Final year project in PDF
Updated black book ice cream parlour TYBSCIT Final year project in PDFUpdated black book ice cream parlour TYBSCIT Final year project in PDF
Updated black book ice cream parlour TYBSCIT Final year project in PDFYogeshDhamke2
 
Project documentation format
Project documentation formatProject documentation format
Project documentation formatYogeshDhamke2
 
online-shopping-documentation-srs for TYBSCIT sem 6
 online-shopping-documentation-srs for TYBSCIT sem 6 online-shopping-documentation-srs for TYBSCIT sem 6
online-shopping-documentation-srs for TYBSCIT sem 6YogeshDhamke2
 
[[Srs]] online shopping website for TYBSC IT
[[Srs]] online shopping website for TYBSC IT[[Srs]] online shopping website for TYBSC IT
[[Srs]] online shopping website for TYBSC ITYogeshDhamke2
 

More from YogeshDhamke2 (19)

Tybscit sem v nov 2015
Tybscit sem v nov 2015Tybscit sem v nov 2015
Tybscit sem v nov 2015
 
solve pratical and imp quseation and solution for bscit
solve pratical and imp quseation and solution for bscitsolve pratical and imp quseation and solution for bscit
solve pratical and imp quseation and solution for bscit
 
Network security main
Network security mainNetwork security main
Network security main
 
Most important questions_sem5
Most important questions_sem5Most important questions_sem5
Most important questions_sem5
 
Hospital management synopsis
Hospital management synopsisHospital management synopsis
Hospital management synopsis
 
Hospital management synopsis
Hospital management synopsisHospital management synopsis
Hospital management synopsis
 
Basic tags
Basic tagsBasic tags
Basic tags
 
B.sc . i.t.-sem..-v-net-copy-may-2017
B.sc . i.t.-sem..-v-net-copy-may-2017B.sc . i.t.-sem..-v-net-copy-may-2017
B.sc . i.t.-sem..-v-net-copy-may-2017
 
Asp.net main
Asp.net mainAsp.net main
Asp.net main
 
After effects data driven animation assets
After effects data driven animation assetsAfter effects data driven animation assets
After effects data driven animation assets
 
Advance java for bscit
Advance java for bscitAdvance java for bscit
Advance java for bscit
 
html tags
 html tags html tags
html tags
 
2016 sem 5 For tybscit
2016 sem 5 For tybscit2016 sem 5 For tybscit
2016 sem 5 For tybscit
 
How.to.make.a.website.for.beginners
How.to.make.a.website.for.beginnersHow.to.make.a.website.for.beginners
How.to.make.a.website.for.beginners
 
Updated black book ice cream parlour word file For TYBSCIT
Updated black book ice cream parlour word file For TYBSCIT Updated black book ice cream parlour word file For TYBSCIT
Updated black book ice cream parlour word file For TYBSCIT
 
Updated black book ice cream parlour TYBSCIT Final year project in PDF
Updated black book ice cream parlour TYBSCIT Final year project in PDFUpdated black book ice cream parlour TYBSCIT Final year project in PDF
Updated black book ice cream parlour TYBSCIT Final year project in PDF
 
Project documentation format
Project documentation formatProject documentation format
Project documentation format
 
online-shopping-documentation-srs for TYBSCIT sem 6
 online-shopping-documentation-srs for TYBSCIT sem 6 online-shopping-documentation-srs for TYBSCIT sem 6
online-shopping-documentation-srs for TYBSCIT sem 6
 
[[Srs]] online shopping website for TYBSC IT
[[Srs]] online shopping website for TYBSC IT[[Srs]] online shopping website for TYBSC IT
[[Srs]] online shopping website for TYBSC IT
 

Recently uploaded

Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxsocialsciencegdgrohi
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfadityarao40181
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxJiesonDelaCerna
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupJonathanParaisoCruz
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 

Recently uploaded (20)

Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdf
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized Group
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 

Software testing main

  • 1. 1 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Unit-I Topics: Fundamentals of Testing
  • 2. 2 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Q1. What are an error, failure and fault? A failure is non-fulfillment of requirements, a discrepancy between actual result or behavior (Identified in Requirement Specification) Failure in a software means the software doesn’t perform functional requirements, the failure occur in S/W because of fault. Every fault, or Defect or Bug in S/w is present since it was developed or changed. A failure has its roots in a fault in the software. These fault is also called a defect or internal error programmer generally use a term Bug for fault e.g. of fault e.g. of fault can be the programmer might be wrongly programmed or forgotten code in application. It is possible that a fault is hidden by one or more other faults in different parts of application. In that case, A failure only occurs after the masking defects have been corrected. The cause of fault or defect is an error or mistakes by person. E.g. wrong programming by developer or a misunderstanding of commands in programming language. However faults may be even cause by environmental conditions like radiation, magnetism etc. that introduce Hardware problem. Q2. What is a defect? What are its causes? When do they arise? What is the cost of finding defect? Defect: A flaw in a component or system that can cause the component or system to fail to perform its required function, e.g. an incorrect statement or data definition. We know that people make mistakes we are fallible. If someone makes an error or mistake in using the software, this may lead directly to a problem the software is used incorrectly and so does not behave as we expected. However, people also design and build the software and they can make mistakes during the design and build. These mistakes mean that there are flaws in the software itself. These are called defects or sometimes bugs or faults. Remember, the software is not just the code; check the definition of soft-ware again to remind yourself. When the software code has been built, it is executed and then any defects may cause the system to fail to do what it should do (or do something it shouldn't), causing a failure. Not all defects result in failures; some stay dormant in the code and we may never notice them. Defect arises: In Figure we can see how defects may arise in four requirements for a product. We can see that requirement 1 is implemented correctly - we understood the customer's requirement, designed correctly to meet that requirement, built correctly to meet the design, and so deliver that requirement with the right attributes: functionally, it does what it is supposed to do and it also has the right non-functional attributes, so it is fast enough, easy to understand and so on. With the other requirements, errors have been made at different stages. Requirement 2 is fine until the software is coded, when we make some mistakes and introduce defects. Probably, these are easily spotted and corrected during testing, because we can see the product does not meet its design specification.
  • 3. 3 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 The defects introduced in requirement 3 are harder to deal with; we built exactly what we were told to but unfortunately the designer made some mistakes so there are defects in the design. Unless we check against the requirements definition, we will not spot those defects during testing. When we do notice them they will be hard to fix because design changes will be required. The defects in requirement 4 were introduced during the definition of the requirements; the product has been designed and built to meet that flawed requirements definition. If we test the product meets its requirements and design, it will pass its tests but may be rejected by the user or customer. Defects reported by the customer in acceptance test or live use can be very costly. Unfortunately, requirements and design defects are not rare; assessments of thousands of projects have shown that defects introduced during requirements and design make up close to half of the total number of defects. Cost of Defect The cost of finding and fixing defects rises considerably across the life cycle; think of the old English proverb 'a stitch in time saves nine'. This means that if we mend a tear in our sleeve now while it is small, it's easy to mend, but if we leave it, it will get worse and need more stitches to mend it. If an error is made and the consequent defect is detected in the requirements at the specification stage, then it is relatively cheap to find and fix. Similarly if an error is made and
  • 4. 4 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 the consequent defect detected in the design at the design stage then the design can be corrected and re-issued with relatively little expense. The same applies for construction. However a defect is introduced in the requirement specification and it is not detected until acceptance testing or even once the system has been implemented then it will be much more expensive to fix. This is because rework will be needed in the specification and design before changes can be made in construction; because one defect in the requirements may well propagate into several places in the design and code; and because all the testing work done-to that point will need to be repeated in order to reach the confidence level in the software that we require. Q3. What are quality and its components? Explain quality viewpoints for producing and buying software. Following are different definition of Quality: Customer-Based Definition of Quality: Quality product must have ‘Fitness for use‘. Manufacturing-Based Definition of Quality: This approach gives the definition of ‘Conformance to requirements‘. Product-Based Definition of Quality: The product must have something that other similar products do not have which can help the customer satisfy his/her needs in a better way. Value- Based Definition of Quality: Many times it is claimed that ‘People do not buy products, they buy benefits‘. Components of Quality:  Quality is based on customer satisfaction by acquiring a product.  The organization must define quality parameters before it can achieve. In order to meet some criteria of improvement and ability to satisfy a customer, one must follow in cycle of ‘Define’, ‘Measure’, ‘Monitor’, ‘Control’ and ‘Improve’. The cycle of improvements through measurements is described below.  Management must lead the organisation through improvement efforts.  Continuous process (Continuous improvement is necessary)
  • 5. 5 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Q4. Explain the fundamental principles of testing. Testing: Testing is an umbrella activity conducted throughout life cycle of software to identify bugs or defects or faults, present in software. Testing can be identifying both syntactical as well as logical error present in software. Following are Testing principles Principle1: Testing shows testing can show that defects are present, presence of defects but cannot prove that there are no defects. Testing reduces the probability of undiscovered defects remaining in the software but, even if no defects are found, it is not a proof of correctness. Principle2: Testing everything (all combinations of is impossible inputs and preconditions) is not feasible except for trivial cases. Instead of exhaustive testing, we use risks and priorities to focus testing efforts. Principle3: Testing activities should start as early as possible in the software or system development life cycle and should be focused on defined objectives. Principle4: Defect clustering a small number of modules contains most of the defects discovered during pre-release testing or shows the most operational failures.
  • 6. 6 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Principle5: Pesticide paradox if the same tests are repeated over and over again, eventually the same set of test cases will no longer find any new bugs. To overcome this 'pesticide paradox', the test cases need to be regularly reviewed and revised, and new and different tests need to be written to exercise different parts of the software or system to potentially find more defects. Principle6: Testing is context Testing is done differently in different dependent contexts. For example, safety-critical software is tested differently from an e-commerce site. Principle7: Absence-of-errors Finding and fixing defects does not help if fallacy the Q5. Explain the fundamental test process. The decision about the level of formality of the processes will depend on the system and software context and the level of risk associated with the software. So we can divide the activities within the fundamental test process into the following basic steps:  Planning and control  Analysis and design  Implementation and execution  Evaluating exit criteria and reporting  Test closure activities  Though logically sequential these activities may overlap, occur concurrently or even repeat  Test planning and control o Test planning is the activity of verifying the mission of testing, defining the objectives of testing and the specification of test activities in order to meet the objectives and mission. o Test control is the ongoing 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. In order to control testing, it should be monitored throughout the project. o Test planning takes into account the feedback from monitoring and control activities.  Test analysis and design o Test analysis and design is the activity where general testing objectives are transformed into tangible test conditions and test cases. Test analysis and design has the following major tasks: o Reviewing the test basis (such as requirements, architecture, design, interfaces). o Evaluating testability of the test basis and test objects.
  • 7. 7 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 o Identify and prioritize test conditions based on analysis of test items, the specification, behavior and structure. o Designing and prioritizing test cases. o Identify necessary test data to support the test conditions and test cases. o Design the test environment set-up and identifying any required infrastructure and tools.  Test implementation and execution  Test implementation and execution is the activity where test procedures or scripts are specified by combining the test cases in a particular order and including any other information needed for test execution, the environment is set up and the tests are run.  Test implementation and execution has the following major tasks: o Developing, implementing and prioritizing test cases. o Developing and prioritizing test procedures, creating test data and, optionally, preparing test harnesses and writing automated test scripts. o Creating test suites from the test procedures for efficient test execution. o Verifying that the test environment has been set up correctly. o Executing test procedures either manually or by using test execution tools, according to the planned sequence. o Logging the outcome of test execution and recording the identities and versions of the software under test, test tools and test ware. o Comparing actual results with expected results. o Reporting discrepancies as incidents and analyzing them in order to establish their cause (e.g. a defect in the code, in specified test data, in the test document, or a mistake in the way the test was executed). o Repeating test activities as a result of action taken for each discrepancy. o For example, re execution of a test that previously failed in order to confirm a fix (confirmation testing),execution of a corrected test and/or execution of tests in order to ensure that defects have not been introduced in unchanged areas of the software or that defect fixing did not uncover other defects (regression testing).  Evaluating exit criteria and reporting o Evaluating exit criteria is the activity where test execution is assessed against the defined objectives. This should be done for each test level. Evaluating exit criteria has the following major tasks: o Checking test logs against the exit criteria specified in test planning. o Assessing if more tests are needed or if the exit criteria specified should be changed. o Writing a test summary report for stakeholders.  Test closure activities o Test closure activities collect data from completed test activities to consolidate experience, test ware, facts and numbers. For example, when a software system is released, a test project is completed (or cancelled), a milestone has been achieved, or a maintenance release has been completed. Test closure activities include the following major tasks: o Checking which planned deliverables have been delivered, the closure of incident reports or raising of change records for any that remain open, and the documentation of the acceptance of the system. o Finalizing and archiving test ware, the test environment and the test infrastructure for later reuse. o Handover of test ware to the maintenance organization. o Analyzing lessons learned for future releases and projects, and the improvement of test maturity. Q6. What is Quality? Explain Quality Viewpoints for producing and buying software. Quality: Quality is the degree to which a component, system or process meets specified requirements and/or user/customer needs and expectations.
  • 8. 8 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271  Customer: “Quality is fitness for use”  Software Engineer: “Quality is Conformance to specifications”  Other beliefs: o Meet customer standards (defined by general usage, or national or international body) o Meet and fulfill customer needs (business requirements) o Meet customer expectations (more than requirement for loyalty) o Meet anticipated /unanticipated future needs (understand future business needs)  Quality must be defined in measurable terms to use it as a reference  Some view based definitions of quality are:  Customer-Based Definition of Quality: Quality product must have ‘Fitness for use‘.  Manufacturing-Based Definition of Quality: This approach gives the definition of ‘Conformance to requirements‘.  Product-Based Definition of Quality: The product must have something that other similar products do not have which can help the customer satisfy his/her needs in a better way.  Value- Based Definition of Quality: Many times it is claimed that ‘People do not buy products, they buy benefits‘. Q7. Write a note on Psychology of Testing Psychological factors influencing testing & its success:  Clear objectives for testing  Proper Roles and balance of Self-testing  Independent Testing  Clear and courteous communication  Feedback on defects  Independent Testing: Different mind-set of developer and tester o Developers look positively to solve any problems in the design / code / software to meet specified needs o Testers/ reviewers critically look and the product / work- product with intention to find defects  Several stages of reviews and testing carried out throughout the lifecycle of the s/w, may be Independent reviews / tests  Degree of independence avoids author bias and is more effective in finding defects and failures  Levels of independence from lowest to highest: o Testing by the author/developer of the s/w o Testing by another member in developer’s team o Testing by tester from another organizational group like Independent testing team o Testing by tester from different organization/ company like outsourcing testing or certification by external agency Q8. “Degree of independent testing avoids author bias and is often more effective at finding defects and failures”. Explain. As per “Human Psychology”, it is difficult to find our own mistakes. This allows an independent test of the system.
  • 9. 9 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Several stages of reviews and testing are carried out throughout the life cycle and these may be independent reviews and tests. Early in the life cycle, reviews of requirements and design documents by someone other than the author helps find defects before coding starts and helps us build the right software. Following coding, the software can be tested independently. This degree of independence avoids author bias and is often more effective at finding defects and failures. Several levels of independence are listed here from the lowest level of independence to the highest:  Tests by the person who wrote the item under test;  Tests by another person within the same team, such as another programmer;  Tests by a person from a different organizational group, such as an independent test team;  Tests designed by a person from a different-organization or company, such as outsourced testing or certification by an external body.
  • 10. 10 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Unit-II Topics: Testing Throughout the Software Life Cycle
  • 11. 11 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Q1. Define software. Explain the characteristic of software. Any programmable excitable statement is called Instructions. A set of instruction which is executable sequentially to get desired output is called program. A set of programs which when executed sequentially to get desired result could software. Characteristics of Software:  Software cannot be manufactured; it is always developed in classical sense.  Software does not wear out i.e. software can be upgrade or modified  Availability: Software should be easily available to all users.  Reliability  Flexibility  Security  Usability  Maintainability  Portability Q2. Explain 2Vs of Software Testing (verification & validation).  In every development life cycle, a part of testing is focused on verification testing and a part is focused on validation testing.  Verification is concerned with evaluating a work product, component or system to determine whether it meets the requirements set. In fact, verification focuses on the question 'Is the deliverable built according to the specification?’  Validation is concerned with evaluating a work product, component or system to determine whether it meets the user needs and requirements. Validation focuses on the question 'Is the deliverable fit for purpose, e.g. does it provide a solution to the problem?’ Q3. Explain waterfall model with its advantages and disadvantages. The waterfall model was one of the earliest models to design. It is one approach toward software development using Analysis, Analysis Design, Coding, Testing, Deployment & maintenance.
  • 12. 12 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 The arrows in this model are unidirectional. It assumes that developer shall get all requirements in single attempt. Therefore this model is suitable only for static requirements. Once all requirements are analyzed and gather from customer, the requirements are converted into Low Level and High Level Design. The design can be Logical Flow, Diagrammatic Represents Flowchart, Data Flow Diagram of software. The actual conversion of software design, into program code is done in software coding. Coding is directly depended on system Design. As thy design is simple the coding is also easier. The programmer selects appropriate programming language and start software coding. Executable is tested as per the test plan in system testing. The software are executed to find bugs defects present if any Finally successful software is deployed to the costume and futures activities are handled through maintain advantages:  It is one of the oldest systematic & sequential approaches towards software development.  All the phases of software development are clearly defined i.e., each team member should know when his/her responsibility in development process.  It is one of the time consuming model because ones requirements are gathered from costumer, the work model is available only after the deployment. Costumer needs to specify all their requirements software development but it is often difficult for any costumer to give all their requirements explicitly. Q4. Explain the V-model of testing. The V-model was developed to address some of the problems experienced using the traditional waterfall approach. The V-model is a model that illustrates how testing activities (verification and validation) can be integrated into each phase of the life cycle. Within the V-model, validation testing takes place especially during the early stages, e.g. reviewing the user requirements, and late in the life cycle, e.g. during user acceptance testing. Although variants of the V-model exist, a common type of V-model uses four test levels. The four test levels used, each with their own objectives, are: Component Testing: Searches for defects in and verifies the functioning of software components (e.g. modules, programs, objects, classes etc.) that are separately testable.
  • 13. 13 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Integration Testing: Tests interfaces between components, interactions to different parts of a system such as an operating system, file system and hard ware or interfaces between systems. System Testing: It concerned with the behavior of the whole system/product as defined by the scope of a development project or product. The main focus of system testing is verification against specified requirements. Acceptance Testing: Validation testing with respect to user needs, requirements, and business processes conducted to determine whether or not to accept the system. In practice, a V-model may have more, fewer or different levels of development and testing, depending on the project and the software product. For example, there may be component integration testing after component testing and system integration testing after system testing. Test levels can be combined or reorganized depending on the nature of the project or the system architecture. For the integration of a commercial off-the-shelf (COTS) software product into a system, a purchaser may perform only integration tests at the system level (e.g. integration to the infrastructure and other systems) and at a later stage acceptance testing. Advantages of V-model:  Allows early testing.  Can be used with all the development models  Allows static and dynamic testing  Cost of failure can be minimized  Software Release can be well planned. Q5. Explain Lifecycle Testing for Iterative model & RAD model.
  • 14. 14 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Iterative Model:  Requirements may change at a previous stage of development and may be taken care of in the next stage  Feedback loop at every stage in development  Regression testing increasingly important on all iterations one after another  Testing plan to allow more testing at each subsequent delivery phase  More practical than the waterfall model Limitation: o They are many cycles of waterfall model o Fixed price projects have problem of estimation o Product architecture and design becomes fragile due to many iteration RAD:  Usable software created at fast speed with the involvement of the user for every development stage (functionality)  Miniature form of spiral model where requirements are added in small chunks and refined with every iteration  Components or functions are time-boxed, delivered and then assembled into working prototype  Early validation of technical risks and rapid response to changing customer requirements  Limitation: o Refactoring is the main constraint o Involves huge cycles of retesting and regression testing o Efforts of integration are huge o Risk of never achieving closure o Hard to use with legacy systems o Requires a system that can be modularized Q6. What is extreme programming? What are its characteristics? Extreme Programming (XP) is currently one of the most well-known agile development life cycle models. (See [Agile] for ideas behind this approach.) The methodology claims to be more human friendly than traditional development methods. Some characteristics of XP are:  It promotes the generation of business stories to define the functionality.  It demands an on-site customer for continual feedback and to define and carry out functional acceptance testing.  It promotes pair programming and shared code ownership amongst the developers.  It states that component test scripts shall be written before the code is written and that those tests should be automated.  It states that integration and testing of the code shall happen several times a day.  It states that we always implement the simplest solution to meet today's problems. With XP there are numerous iterations each requiring testing. XP developers write every test case they can think of and automate them. Every time a change is made in the code it is component tested and then integrated with the existing code, which is then fully integration-tested using the full set of test cases. This gives continuous integration, by which we mean that changes are incorporated continuously into the software build. At the same time, all test cases must be running at 100% meaning that all the test cases that have been identified and automated are executed
  • 15. 15 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 and pass. XP is not about doing extreme activities during the development process, it is about doing known vague-adding activities in an extreme manner. Q7. Discuss the characteristics of good testing. Following are characteristics of good testing:-  For every development activity there is a corresponding testing activity;  Each test level has test objectives specific to that level;  The analysis and design of tests for a given test level should begin during the corresponding development activity;  Testers should be involved in reviewing documents as soon as drafts are available in the development cycle. Q8. What are the different levels of testing? Explain each in brief. Component Testing  Component testing is also known as Unit, module & program testing, it searches for defects and verifies functionality of software that is separately testable.  In unit testing, the entire software is divided into smallest workable module called as unit and each and every unit is tested separately to ensure that it is working properly. Advantages of Unit Testing are  Error identification become simple  Error propagation gets minimize  Overall testing time will reduce The following tests are performed on an individual module during unit testing. o In Boundary Condition Testing Individual module is tested on their extremes boundaries, because maximum number of errors do occurs on boundaries rather than its operation bound. o Local data structure testing ensures the validity of data structure in software module o In independent path testing tester tests all the independent paths in module are working properly or not. o In interface testing, tester tests the interface of module with the system o Finally all error handling paths are tested to ensure that the module is working properly as an individual.  Component testing may include testing of functionality & specific non-functional characteristics such as resource behavior, performance testing, & structural testing test cases are derived from the driver class to test their stuffs.  Unit testing is also called as Grey Box Testing (GBT) 2. Integration Testing
  • 16. 16 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Integration testing tests interfaces between components, interactions to different parts of a system such as an operating system, file system and hard-ware or interfaces between systems. Note that integration testing should be differentiated from other integration activities. Integration testing is often carried out by the integrator, but preferably by a specific integration tester or test team. There may be more than one level of integration testing and it may be carried out on test objects of varying size. For example: • Component integration testing tests the interactions between software components and is done after component testing; • System integration testing tests the interactions between different systems and may be done after system testing. In this case, the developing organization may control only one side of the interface, so changes may be destabilize lazing. Business processes implemented as workflows may involve a series of systems that can even run on different platforms. The greater the scope of integration, the more difficult it becomes to isolate failures to a specific interface, which may lead to an increased risk. This leads to varying approaches to integration testing. One extreme is that all components or systems are integrated simultaneously, after which everything is tested as a whole. This is called 'big-bang' integration testing. Big-bang testing has the advantage that everything is finished before integration testing starts. Top-Down: testing takes place from top to bottom, following the control flow or architectural structure (e.g. starting from the GUI or main menu). Components or systems are substituted by stubs. • Bottom-Up: testing takes place from the bottom of the control flow upwards. Components or systems are substituted by drivers. • Functional Incremental: integration and testing takes place on the basis of the functions or functionality, as documented in the functional specification. 3. System Testing  System testing is concerned with the behaviour of the whole system/product as defined by the scope of a development project or product.  It may include tests based on risks and/or requirements specification, business processes, use cases, or other high level descriptions of system behaviour, interactions with the operating system, and system resources.  System testing is most often the final test on behalf of development to verify that the system to be delivered meets the specification and its purpose may be to find as many defects as possible.  Most often it is carried out by specialist testers that form a dedicated, and sometimes independent, test team within development, reporting to the development manager or project manager. In some organizations system testing is carried out by a third party team or by business analysts.  System testing should investigate both functional and non-functional requirements of the system. Typical non-functional tests include performance and reliability. Testers may also need to deal with incomplete or undocumented requirements. System testing of functional requirements starts by using the most appropriate specification-based (black- box) techniques for the aspect of the system to be tested. The following are testing to be conducted during system testing. o Performance Testing o Load / Stress
  • 17. 17 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 o Recovery o Security Testing 4. Acceptance Testing When the development organization has performed its system test and has corrected all or most defects, the system will be delivered to the user or customer for acceptance testing. The acceptance test should answer questions such as:  Can the system be released?  What, if any, are the outstanding (business) risks?  Has development met their obligations? Acceptance testing is most often the responsibility of the user or customer, although other stakeholders may be involved as well. The execution of the acceptance test requires a test environment that is for most aspects, representative of the production environment ('as-if production'). The goal of acceptance testing is to establish confidence in the system, part of the system or specific non-functional characteristics, e.g. usability, of the system. Acceptance testing is most often focused on a validation type of testing, whereby we are trying to determine whether the system is fit for purpose. Finding defects should not be the main focus in acceptance testing. Although it assesses the system's readiness for deployment and use, it is not necessarily the final level of testing. For example, a large-scale system integration test may come after the acceptance of a system. Acceptance testing may occur at more than just a single level, for example: • A Commercial off the Shelf (COTS) software product may be acceptance tested when it is installed or integrated. • Acceptance testing of the usability of a component may be done during component testing. Other types of acceptance testing that exist are contract acceptance testing and compliance acceptance testing. If the system has been developed for the mass market, e.g. commercial off-the-shelf software (COTS), then testing it for individual users or customers is not practical or even possible in some cases. Feedback is needed from potential or existing users in their market before the software product is put out for sale commercially. Very often this type of system undergoes two stages of acceptance test. The first is called alpha testing. This test takes place at the developer's site. A cross-section of potential users and members of the developer's organization are invited to use the system. Developers observe the users and note problems. Alpha testing may also be carried out by an independent test team. Beta testing, or field testing, sends the system to a cross-section of users who install it and use it under real-world working conditions. The users send records of incidents with the system to the development organization where the defects are repaired. Q9. Explain the significance of stubs and drivers with help of example. Stubs:- Stubs are dummy modules that are always distinguish as "called programs", or you can say that is handle in integration testing (top down approach), it used when sub programs are under construction. Stubs are considered as the dummy modules that always simulate the low level modules. Drivers: Drivers are also considered as the form of dummy modules which are always distinguished as "calling programs”, that is handled in bottom up integration testing; it is only used when main programs are under construction.
  • 18. 18 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Drivers are considered as the dummy modules that always simulate the high level modules. Component testing may be done in isolation from the rest of the system depending on the context of the development life cycle and the system. Most often stubs and drivers are used to replace the missing software and simulate the interface between the software components in a simple manner. A stub is called from the software component to be tested; a driver calls a component to be tested. Example of Stubs and Drivers: We have 3 modules login, home, and user module. Login module is ready and need to test it, but we call functions from home and user (which is not ready). To test at a selective module we write a short dummy piece of a code which simulates home and user, which will return values for Login, this piece of dummy code is always called Stubs and it is used in a top down integration. Considering the same Example above: If we have Home and User modules get ready and Login module is not ready, and we need to test Home and User modules Which return values from Login module, So to extract the values from Login module We write a Short Piece of Dummy code for login which returns value for home and user, So these pieces of code is always called Drivers and it is used in Bottom Up Integration Q10. What is Integration Testing? List and explain the approaches Integration Testing. Definition: “Testing performed to expose defects in the interfaces and in the interactions between integrated components or systems”  Integration testing starts when two components are individually tested (i.e. after performing unit testing) and ends when all component interfaces have been tested  Approaches/Methodologies/Strategies of Integration Testing: o Approaches of integration depend upon how the system is integrated There are two ways to integrate modules: o Non Incremental Software Integration  Big Bang Integration approach o Incremental Software Integration  Top-down Software Integration  Bottom-up Software Integration  Sandwich Integration Non Incremental Approach Big Bang Approach:
  • 19. 19 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 o All or most of the developed modules are coupled together to form a complete software system or major part of the system and then integration testing is performed o Effective in saving time o If test cases and results are not recorded then the integration process becomes difficult and the testing team may not achieve goal of integration testing o Effective for small systems but not the large ones Advantages:  Simple and convenient for small systems  To check the data flow from one module to another  Communication between various modules is checked  Needs less planning, less formal development process  No stub/driver is required to be designed and coded  No Cost incurred in creating stubs and drivers  Effective in terms of time as it is fast Disadvantages: maintenance  Since all modules are tested at once, high risk modules are not isolated and tested on priority  Integration testing can only commence when all modules are ready  Fault localization is difficult  Probability to miss interface faults is high  If defect is found in the integrated code then there can be much of throwaway code Incremental Software Integration: Top-Down Approach:  Top-level of application is tested first and then modules are tested till the component level  Involves testing the topmost component interface with other components in the order of top-down navigation until all components are covered  It takes help of stubs for testing  Only Highest level modules are tested in isolation  After the next module is tested, the modules directly called by that module are merged and the combination is tested until all subsystems are integrated to be finally tested  Modules subordinate to the main control module are incorporated into the system in either depth-first or breadth-first manner Bottom up Approach  Modules subordinate to the main control module are incorporated into the system in either depth-first or breadth-first manner  Opposite of top-down integration  Components for new product development become available in reverse order, starting from bottom  Drivers are used for testing  An Approach to integrate testing where the lowest level components are tested first, then used to facilitate the testing of higher level components  Process repeated until the component at top hierarchy is tested
  • 20. 20 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271  Module driver required to feed test case input to the interface of the module being tested Sandwich or Hybrid Approach:  Sandwich / Hybrid is a approach is combination of Top-down and Bottom-up approach of integration testing defined by Myers(1979)  Combines the advantages of both the approaches  Top-down approach starts from middle layer and goes downward  Bottom-up testing starts from middle layer and goes upward to the top layer  Sub teams or individuals conduct bottom-up testing of the parts or modules built by them before releasing them  Integration team assembles them together for top-down testing. Q11. “Integration testing is a crucial phase of testing process”. Discuss.  Integration testing involves integration of units to make a module/integration of modules to make a system integration of system with environmental variables if required to create a real-life application.  Integration testing may start at module level, where different units and components come together to form a module, and go up to system level.  If module is self-executable, it may be taken for testing by testers. If it needs stubs and drivers, it is tested by developers.  Though integration testing also tests the functionality of software under review, the main stress of integration testing is on the interfaces between different modules/systems.  Integration testing mainly focuses on input output protocols, and parameters passing between different units, modules and/or system. Focus of integration is mainly on low- level design, architecture, and construction of software. Integration testing is considered as ‘structural testing’. Below figure shows a system schematically There are various approaches of integration testing depending upon how the system is integrated. Different approaches have different benefits and limitations.  Bottom-Up Testing  Top-Down Testing Q12. Explain Conformance directed Testing Levels.  Levels of testing may be categorized as: o Fault-Directed Testing
  • 21. 21 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271  Component / Unit Testing  Integration Testing o Conformance Directed Testing  System Testing  Acceptance Testing  System Testing: “System Testing is final level of software testing process on behalf of developers where a complete system/ software is tested”  “Testing carried out to analyse the behaviour of the whole system according to the requirement specification is known as system testing”  Computer based system checked for validity and objectives met  System testing should investigate both functional and non-functional requirements of the system  System test may be based on risks, SRS, Business processes, use cases or other high level descriptions of system behaviour, interaction with operating systems and system resources  System testing includes: o Performance Testing  Load testing  Stress testing o Security Testing  Authentication testing  Authorization testing o Volume Testing o Sanity Testing o Auxiliary Testing o Recovery Testing Acceptance Testing:  Application undergoes a series of rigorous tests to ensure that the program passes the requirement of the client and has no bugs that may cause serious problems later on  Before the software is released to public, there are testing stages that ensure its appropriateness  User Acceptance testing  Operational Acceptance Testing  Contract and regulation Acceptance testing  Business Acceptance Testing  Alpha and Beta / Gamma Testing Q13. Compare the objectives of Integration and System Testing. Integration testing:  Integration testing involves integration of units to make a module/integration of modules to make a system integration of system with environmental variables if required to create a real-life application. 2. Integration testing may start at module level, where different units and components come together to form a module, and go up to system level.  If module is self-executable, it may be taken for testing by testers. If it needs stubs and drivers, it is tested by developers. Though integration testing also tests the functionality of
  • 22. 22 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 software under review, the main stress of integration testing is on the interfaces between different modules/systems.  Integration testing mainly focuses on input output protocols, and parameters passing between different units, modules and/or system.  Focus of integration is mainly on low-level design, architecture, and construction of software. System Testing:-  System testing comes under the category of black box testing therefore the knowledge of the internal structure is not required by the testers.  The entire software is tested carefully to make sure that it meets the quality and functional standards set by the client.  The criteria for system testing may involve an entire domain or selected parts depending upon the scope of testing. The types of system testing are as follows:  Performance testing  Load testing  Stress testing  Recovery testing  Security testing  Installation testing  Sanity testing Q14. What are the four types of software testing? Explain each. 1. Functional Testing The function of a system (or component) is 'what it does'. This is typically described in a requirements specification, a functional specification, or in use cases. There may be some functions that are 'assumed' to be provided that are not documented that are also part of the requirement for a system, though it is difficult to test against undocumented and implicit requirements. Functional tests are based on these functions, described in documents or understood by the testers and may be performed at all test levels (e.g. test for components may be based on a component specification). Functional testing considers the specified behaviour and is often also referred to as black- box testing. Function (or functionality) testing can, based upon ISO 9126, be done focusing on suitability, interoperability, security, accuracy and compliance. Security testing, for example, investigates the functions (e.g. a firewall) relating to detection of threats, such as viruses, from malicious outsiders. Testing functionality can be done from two perspectives: requirements-based or business- process-based. Requirements-based testing uses a specification of the functional requirements for the system as the basis for designing tests. A good way to start is to use the table of contents of the requirements specification as an initial test inventory or list of items to test (or not to test). We should also prioritize the requirements based on risk criteria (if this is not already done in the specification) and use this to prioritize the tests. This will ensure that the most important and most critical tests are included in the testing effort. Business-process-based testing uses knowledge of the business processes. Business processes describe the scenarios involved in the day-to-day business use of the system. For example, a personnel and payroll system may have a business process along the lines
  • 23. 23 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 of: someone joins the company, he or she is paid on a regular basis, and he or she finally leaves the company. Use cases originate from object-oriented development, but are nowadays popular in many development life cycles. They also take the business processes as a starting point, although they start from tasks to be performed by users. Use cases are a very useful basis for test cases from a business perspective. 2. Non-Functional Testing A second target for testing is the testing of the quality characteristics, or non-functional attributes of the system (or component or integration group). Here we are interested in how well or how fast something is done. We are testing something that we need to measure on a scale of measurement, for example time to respond. Non-functional testing, as functional testing, is performed at all test levels. Non-functional testing includes, but is not limited to, performance testing, load testing, stress testing, usability testing, maintainability testing, reliability testing and portability testing. It is the testing of 'how well' the system works. The characteristics and their sub-characteristics are, respectively:  Functionality: It consists of five sub-characteristics: suitability, accuracy, security, interoperability and compliance; this characteristic deals with functional testing.  Reliability: It is defined further into the sub-characteristics maturity (robustness), fault tolerance, recoverability and compliance.  Usability: It is divided into the sub-characteristics understandability, learnability, operability, attractiveness and compliance.  Efficiency: It is divided into time behaviour (performance), resource utilization and compliance.  Maintainability: It consists of five sub-characteristics: analyzability, changeability, stability, testability and compliance.  Portability: It also consists of five sub-characteristics: adaptability, installability, co- existence, replaceability and compliance. 3. Structural Testing The third target of testing is the structure of the system or component. If we are talking about the structure of a system, we may call it the system architecture. Structural testing is often referred to as 'white-box' or 'glass-box' because we are interested in what is happening 'inside the box'. Structural testing is most often used as a way of measuring the thoroughness of testing through the coverage of a set of structural elements or coverage items. It can occur at any test level, although is it true to say that it tends to be mostly applied at component and integration and generally is less likely at higher test levels, except for business-process testing. At component integration level it may be based on the architecture of the system, such as a calling hierarchy. A system, system integration or acceptance testing test basis could be a business model or menu structure. At component level, and to a lesser extent at component integration testing, there is good tool support to measure code coverage. Coverage measurement tools assess the percentage of executable elements (e.g. statements or decision outcomes) that have been exercised (i.e. covered) by a test suite. If coverage is not 100%, then additional tests may need to be written and run to cover those parts that have not yet been exercised. The techniques used for structural testing are structure-based techniques, also referred to as white-box techniques. Control flow models are often used to support structural testing. 4. Confirmation and Regression Testing
  • 24. 24 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 The final target of testing is the testing of changes. This category is slightly different to the others because if you have made a change to the software, you will have changed the way it functions, the way it performs (or both) and its structure. However we are looking here at the specific types of tests relating to changes, even though they may include all of the other test types. Confirmation Testing When a test fails and we determine that the cause of the failure is a software defect, the defect is reported, and we can expect a new version of the software that has had the defect fixed. In this case we will need to execute the test again to confirm that the defect has indeed been fixed. This is known as confirmation testing (also known as re-testing). Regression Testing The term 'regression testing' is something of a misnomer. It would be better if it were called 'anti-regression' testing because we are executing tests with the intent of checking that the system has not regressed (that is, it does not now have more defects in it as a result of some change). More specifically, the purpose of regression testing is to verify that modifications in the software or the environment have not caused unintended adverse side effects and that the system still meets its requirements. All of the test cases in a regression test suite would be executed every time a new version of software is produced and this makes them ideal candidates for automation. If the regression test suite is very large it may be more appropriate to select a subset for execution. Regression tests are executed whenever the software changes, either as a result of fixes or new or changed functionality. It is also a good idea to execute them when some aspect of the environment changes, for example when a new version of a database management system is introduced or a new version of a source code compiler is used. Q15. Explain Maintenance Testing. Maintenance Testing:  Once deployed, system is often in service for year or even decades during this time the system & its operational environment is often corrected, change or extended. Testing i.e. executing during these life cycle period is called Maintenance Testing.  Maintenance testing is different from maintainability testing, which defines how easy it is to maintain the system.  The development and test process applicable to new developments doesn’t change fundamentally for maintenance purpose the same test process steps will be apply & depending on size & risk of the changes made, several levels of testing are carried out during maintenance testing. A component test,, system test, Acceptance Test.  A maintenance test process usually begins with the receipt of an application for a change. The test manager will use these as basis for producing test plan. On the receipt of new or change the specification, corresponding test cases are specified or adapted. Once the necessary changes have been made, regression testing is performed. Usually maintenance testing will consist of two parts o Testing Changes o Regression Test to show that rest of system has not been affected maintenance work. The maintenance testing will perform under following condition.
  • 25. 25 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271  If costumer or end user requires support or they are not understanding some of the functionality of s/w.  When developer wants to enhance / upgrade software.  When any changes are informed by user. Q16. Explain Triggers for Maintenance Testing.  Maintenance Testing triggered by Modifications, Migration or retirement of the system  Maintenance testing for Modifications include: o Planned enhancements o Corrective and emergency changes o Changes of environment like upgrades of OS or databases o Patches to newly exposed or vulnerable parts of OS  Maintenance testing for Migrations include: o Operational testing of new environment o Changed software  Maintenance testing for Retirement of System include: o Testing of data migration or archiving  Modification is major part of Maintenance Testing  Two types of modifications include: o Planned Modifications may be Perfective Modifications Adaptive Modifications Corrective Planned Modification o Ad-hoc Corrective Modifications: concerned with defects requiring an immediate solution Structured approach of testing impossible  Risk analysis of system and specify set of standard tests
  • 26. 26 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Unit-III Topics: Static Technique
  • 27. 27 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Q1. What is static testing? What are its advantages? Static Testing: Testing of a component or system at specification or implementation level without execution of that software, for e.g. reviews or static code analysis.  Software work products are examined manually or with a set of tools, but not executed  Not all work products can be subjected to execution  Dynamic and static testing are complementary methods as they tend to identify different defects effectively and efficiently  In addition to finding defects the objectives of static testing are: o Informational o Communicational and o Educational  Reviews represent project milestones and support to establish test basis for the product  Review feedback helps testers focus their testing and are a means of customer/user communication with developers  Early feedback on quality issues can be established  E.g. early reviews of user requirement as against during user acceptance testing  Allows for process improvements avoiding similar errors to be repeated in future  Static tests contribute to an increased awareness of quality Advantages:  Since static testing can start early in the life cycle, early feedback on quality issues can be established, e.g. an early validation of user requirements and not just late in the life cycle during acceptance testing.  By detecting defects at an early stage, rework costs are most often relatively low and thus a relatively cheap improvement of the quality of software products can be achieved.  Since rework effort is substantially reduced, development productivity figures are likely to increase.  The evaluation by a team has the additional advantage that there is an exchange of information between the participants.  Static tests contribute to an increased awareness of quality issues. Q2. Explain the phases of formal review. Phases of a formal review A typical formal review process consists of six main steps:  Planning  Kick-off  Preparations  Review meeting  Rework  Follow Up. Planning The review process for a particular review begins with a 'request for review' by the author to the moderator (or inspection leader). A moderator is often assigned to take care of the scheduling (dates, time, place and invitation) of the review. On a project level, the project planning needs to allow time for review and rework activities, thus providing engineers with time to thoroughly participate in reviews.
  • 28. 28 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Although more and other entry criteria can be applied, the following can be regarded as the minimum set for performing the entry check:  A short check of a product sample by the moderator (or expert) does not reveal a large number of major defects. For example, after 30 minutes of checking, no more than 3 major defects are found on a single page or fewer than 10 major defects in total in a set of 5 pages.  The document to be reviewed is available with line numbers.  The document has been cleaned up by running any automated checks that apply.  References needed for the inspection are stable and available.  The document author is prepared to join the review team and feels confident with the quality of the document.  Within reviews the following focuses can be identified:  Focus on higher-level documents, e.g. does the design comply to the requirements;  Focus on standards, e.g. internal consistency, clarity, naming conventions, templates;  Focus on related documents at the same level, e.g. interfaces between software functions;  Focus on usage, e.g. for testability or maintainability. Kick-off An optional step in a review procedure is a kick-off meeting. The goal of this meeting is to get everybody on the same wavelength regarding the document under review and to commit to the time that will be spent on checking. During the kick-off meeting the reviewers receive a short introduction on the objectives of the review and the documents. The relationships between the document under review and the other documents (sources) are explained, especially if the number of related documents is high. Role assignments, checking rate, the pages to be checked, process changes and possible other questions are also discussed during this meeting. Of course the distribution of the document under review, source documents and other related documentation, can also be done during the kick-off. Preparation The participants work individually on the document under review using the related documents, procedures, rules and checklists provided. The individual participants identify defects, questions and comments, according to their understanding of the document and role. All issues are recorded, preferably using a logging form. Spelling mistakes are recorded on the document under review but not mentioned during the meeting. The annotated document will be given to the author at the end of the logging meeting. Using checklists during this phase can make reviews more effective and efficient, for example a specific checklist based on perspectives such as user, maintainer, tester or operations, or a checklist for typical coding problems. Review Meeting The meeting typically consists of the following elements (partly depending on the review type): logging phase, discussion phase and decision phase. Every defect and its severity should be logged. The participant who identifies the defect proposes the severity. Severity classes could be:  Critical: defects will cause downstream damage; the scope and impact of the defect is beyond the document under inspection.
  • 29. 29 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271  Major, defects could cause a downstream effect (e.g. a fault in a design can result in an error in the implementation).  Minor, defects are not likely to cause downstream damage (e.g. non-compliance with the standards and templates). Rework Based on the defects detected, the author will improve the document under review step by step. Not every defect that is found leads to rework. It is the author's responsibility to judge if a defect has to be fixed. If nothing is done about an issue for a certain. Follow-up The moderator is responsible for ensuring that satisfactory actions have been taken on all (logged) defects, process improvement suggestions and change requests. Although the moderator checks to make sure that the author has taken action on all known defects, it is not necessary for the moderator to check all the corrections in detail. Q3. Explain roles and responsibilities of members present in review process. The participant in any type of formal review must have adequate knowledge of review process, the best & most efficient review situation occurs when participant gains. Following are the members & responsibilities in review process. Moderator / Manager:  It is a chairperson of the entire review process. He/she determines incorporation with author, type of review, approach & composition of review team. The moderator is responsible of scheduling of review process.  Moderator prepares policy, plan objectives & review process.  The training of reviewer can conducted by moderator the moderator performs entry check & follow up on rework, in order to control, the quality of input & output of review process.  Moderator can also define exit criteria. Author:  Author is writer of the document under review, the authors goal should be learn to as much possible with regards to improving quality of document but also to improve his or her ability to write futures documents.  The author’s task is to eliminate under areas & to understand the defects found.  If author’s document exceeds exit criteria then author must involve in the rework phase. Scriber / Recorder: During logging phase recorder has to record each defect mentioned and any suggestions for process improvements. Reviewer:  The task of reviewer is to check authors documents for defects the levels of domain knowledge or technical expertise needed by reviewer will depend on type of review & type of document which is under review.  The reviews should be chosen to represent different prospective & rates In review process. In addition to document under review the material reviewer reviews includes source, standards, checklist etc. The sole responsibility is to review author’s document & try to find as many defects as present in document. Manager: The manager is involved in reviews as he/she decides on execution of reviews, allocates time in project schedules & determines whether review process object have been met. The
  • 30. 30 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 manager is also responsible for providing readymade tools, review training if requested by participants Q4. What are the different types of reviews? What are the goals and characteristics of inspection? The main review types, their main characteristics and common objectives are described below. Walkthrough A walkthrough is characterized by the author of the document under review guiding the participants through the document and his or her thought processes, to achieve a common understanding and to gather feedback. This is especially useful if people from outside the software discipline are present, who are not used to, or cannot easily understand software development documents. The content of the document is explained step by step by the author, to reach consensus on changes or to gather information. The specific goals of a walkthrough depend on its role in the creation of the document. In general the following goals can be applicable:  To present the document to stakeholders both within and outside the software discipline, in order to gather information regarding the topic under documentation;  To explain (knowledge transfer) and evaluate the contents of the document;  To establish a common understanding of the document;  To examine and discuss the validity of proposed solutions and the viability of alternatives, establishing consensus. Key characteristics of walkthroughs are:  The meeting is led by the authors; often a separate scribe is present.  Scenarios and dry runs may be used to validate the content.  Separate pre-meeting preparation for reviewers is optional. Technical Review A technical review is a discussion meeting that focuses on achieving consensus about the technical content of a document. Compared to inspections, technical reviews are less formal and there is little or no focus on defect identification on the basis of referenced documents, intended readership and rules. During technical reviews defects are found by experts, who focus on the content of the document. The experts that are needed for a technical review are, for example, architects, chief designers and key users. In practice, technical reviews vary from quite informal to very formal. The goals of a technical review are to:  Assess the value of technical concepts and alternatives in the product and project environment;  Establish consistency in the use and representation of technical concepts;  Ensure, at an early stage, that technical concepts are used correctly;  Inform participants of the technical content of the document.  Key characteristics of a technical review are:  It is a documented defect-detection process that involves peers and technical experts.  It is often performed as a peer review without management participation.  Ideally it is led by a trained moderator, but possibly also by a technical expert.
  • 31. 31 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271  A separate preparation is carried out during which the product is examined and the defects are found.  More formal characteristics such as the use of checklists and a logging list or issue log are optional. Inspection Inspection is the most formal review type. The document under inspection is prepared and checked thoroughly by the reviewers before the meeting, comparing the work product with its sources and other referenced documents, and using rules and checklists. In the inspection meeting the defects found are logged and any discussion is postponed until the discussion phase. This makes the inspection meeting a very efficient meeting. Depending on the organization and the objectives of a project, inspections can be balanced to serve a number of goals. For example, if the time to market is extremely important, the emphasis in inspections will be on efficiency. In a safety-critical market, the focus will be on effectiveness. The generally accepted goals of inspection are to:  Help the author to improve the quality of the document under inspection;  Remove defects efficiently, as early as possible;  Improve product quality, by producing documents with a higher level of quality;  Create a common understanding by exchanging information among the inspection participants;  Train new employees in the organization's development process;  Learn from defects found and improve processes in order to prevent recurrence of similar defects;  Sample a few pages or sections from a larger document in order to measure the typical quality of the document, leading to improved work by individuals in the future, and to process improvements. Key characteristics of an inspection are:  It is usually led by a trained moderator (certainly not by the author).  It uses defined roles during the process.  It involves peers to examine the product.  Rules and checklists are used during the preparation phase.  A separate preparation is carried out during which the product is examined and the defects are found.  The defects found are documented in a logging list or issue log.  A formal follow-up is carried out by the moderator applying exit criteria.  Optionally, a causal analysis step is introduced to address process improvement issues and learn from the defects found.  Metrics are gathered and analysed to optimize the process. Q5. What are the success factors of reviews? Explain. Implementing (formal) reviews is not easy as there is no one way to success and there are numerous ways to fail. The next list contains a number of critical success factors that improve the chances of success when implementing reviews. It aims to answer the question, 'How do you start (formal) reviews?' Find a 'champion'
  • 32. 32 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 A champion is needed, one who will lead the process on a project or organizational level. They need expertise, enthusiasm and a practical mind-set in order to guide moderators and participants. The authority of this champion should be clear to the entire organization. Management support is also essential for success. They should, amongst other things, incorporate adequate time for review activities in project schedules. Pick things that really count Select the documents for review that are most important in a project. Reviewing highly critical, upstream documents like requirements and architecture will most certainly show the benefits of the review process to the project. These invested review hours will have a clear and high return on investment. In addition make sure each review has a clear objective and the correct type of review is selected that matches the defined objective. Don't try and review everything by inspection; fit the review to the risk associated with the document. Some documents may only warrant an informal review and others will repay using inspection. Of course it is also of utmost importance that the right people are involved. Explicitly plan and track review activities To ensure that reviews become part of the day-to-day activities, the hours to be spent should be made visible within each project plan. The engineers involved are prompted to schedule time for preparation and, very importantly, rework. Tracking these hours will improve planning of the next review. As stated earlier, management plays an important part in planning of review activities. Train participants It is important that training is provided in review techniques, especially the more formal techniques, such as inspection. Otherwise the process is likely to be impeded by those who don't understand the process and the reasoning behind it. Special training should be provided to the moderators to prepare them for their critical role in the review process. Manage people issues Reviews are about evaluating someone's document. Some reviews tend to get too personal when they are not well managed by the moderator. People issues and psychological aspects should be dealt with by the moderator and should be part of the review training, thus making the review a positive experience for the author. During the review, defects should be welcomed and expressed objectively. Follow the rules but keep it simple Follow all the formal rules until you know why and how to modify them, but make the process only as formal as the project culture or maturity level allows. Do not become too theoretical or too detailed. Checklists and roles are recommended to increase the effectiveness of defect identification. Continuously improve process and tools Continuous improvement of process and supporting tools (e.g. checklists), based upon the ideas of participants, and ensures the motivation of the engineers Involved. Motivation is the key to a successful change process. There should also be an emphasis, in addition to defect finding, on learning and process Improvement. Report results Report quantified results and benefits to all those involved as soon as possible, and discuss the consequences of defects if they had not been found this early. Costs should of course
  • 33. 33 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 be tracked, but benefits, especially when problems don't occur in the future, should be made visible by quantifying the benefits as well as the costs. Just do it! The process is simple but not easy. Each step of the process is clear, but experience is needed to execute them correctly. So, try to get experienced people to observe and help where possible. But most importantly, start doing reviews and start learning from every review. Q6. List down the types of Static Analysis by Tools. Explain them.  Most of the Static Analysis tools focus on software code  Tools typically used by developers before or during component and integration testing and by designers during s/w modelling  Tools : o can not only show structural attributes such as depth of nesting or Cyclomatic complexity and check against the coding standards o but also have graphic depictions of control flow, data relationships and number of distinct paths from one line of code another  Static Analysis tools are important because: o All languages are prone to recognizable fault modes o These faults may escape conventional scrutiny by dynamic testing and may show only when commercial product is in use o All programming languages have problems and programmers cannot assure to protect against them o Programming languages cannot be standardized  Coding Standards: Coding Standards consists of o Set of Programming rules (dynamic memory allocation for array) o Naming conventions (class names to begin with C) o GUI standards o Layout specifications adopted  Code Metrics: Code analysis uses Structural attributes of the code such as o Comment frequency o Depth of nesting o Cyclomatic number o Number of LOC  These metrics help to design alternatives when redesigning a piece of code  Complexity metrics identify high risk and complex areas  Cyclomatic Complexity Metric (CCM) is based on the number of decisions in the program  Code Structure: Control Flow Structure: o Addresses sequence in which instructions are executed o Reflects the iterations and loops in a program’s design o Control Flow Analysis identifies unreachable code or dead code o Many code metrics depend on the Control Flow Structure  Data Flow Structure: o Follows the trail of data items as it is accessed and modified by the code o Number of times transactions applied to the data item
  • 34. 34 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 o Data Flow measures show how data act as they are transformed by the program o Defects like undefined symbol, referencing variables, undefined values may be found  Data Structure: o Refers to organization of data itself, independent to program o Data arranged as lists, queues, stacks or other well-defined structure have well- defined algorithms for creating, modifying or deleting them o Helps design test cases to show correctness of a program Q7. Define the following terms: 1. Cyclomatic complexity  Cyclomatic complexity is a source code complexity measurement that is being correlated to a number of coding errors. It is calculated by developing a Control Flow Graph of the code that measures the number of linearly-independent paths through a program module.  Lower the Program's cyclomatic complexity, lower the risk to modify and easier to understand. It can be represented using the below formula: C (G) = E − N + 2P Where E = the number of edges of the graph. N = the number of nodes of the graph. P = the number of connected components. 2. Data Flow  Data flow is an abstract representation of the sequence and possible changes of state of data objects, where the state of an object is any of creation (created); used: used or modified; destruction (killed).  Data flow structure follows the trail of a data item as it is accessed and modified by the code. Using Data flow, one can understand how the data acts as they are transformed by the program and also, defects like referencing a variable with an undefined value and variables that are never used can be identified. 3. Control Flow  The control flow structure addresses the sequence in which the instructions are executed.  This aspect of structure reflects the iterations and loops in a program's design. If only the size of a program is measured, no information is provided on how often an instruction is executed as it is run. Control flow analysis can also be used to identify unreachable (dead) code. In fact many of the code metrics relate to the control flow structure, e.g. number of nested levels or cyclomatic complexity. 4. Entry Criteria  Entry criterion is used to determine when a given test activity should start. It also includes the beginning of a level of testing, when test design or when test execution is ready to start.
  • 35. 35 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Examples for Entry Criterion:  Verify if the Test environment is available and ready for use.  Verify if test tools installed in the environment are ready for use.  Verify if Testable code is available.  Verify if Test Data is available and validated for correctness of Data. 5. Exit Criteria  Exit criterion is used to determine whether a given test activity has been completed or NOT.  Exit criteria can be defined for all of the test activities right from planning, specification and execution.  Exit criterion should be part of test plan and decided in the planning stage. Examples of Exit Criteria:  Verify if all tests planned have been run.  Verify if the level of requirement coverage has been met.  Verify if there are NO Critical or high severity defects that are left outstanding.  Verify if all high risk areas are completely tested.  Verify if software development activities are completed within the projected cost.  Verify if software development activities are completed within the projected timelines. Q8. Compare Static and Dynamic Testing Static Testing Dynamic Testing Testing done without executing the program Testing done by executing the program This testing does verification process Dynamic testing does validation process Static testing is about prevention of defects It is about finding and fixing the defects Static testing gives assessment of code and documentation Dynamic testing gives bugs/bottlenecks in the software system. Static testing involves checklist and process to be followed Dynamic testing involves test cases for execution This testing can be performed before compilation Dynamic testing is performed after compilation Static testing covers the structural and statement coverage testing Dynamic testing covers the executable file of the code Cost of finding defects and fixing is less Cost of finding and fixing defects is high Return on investment will be high as this process involved at early stage Return on investment will be low as this process involves after the development phase
  • 36. 36 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Unit-IV Topics: Test Design Technique
  • 37. 37 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Q1. Define “Test Conditions”. Describe the process of identifying test conditions. Test Condition From a testing perspective, we look at the test basis in order to see what could be tested - these are the test conditions. A test condition is simply something that we could test. E.g. If we have a requirements specification, the table of contents can be our initial list of test conditions. Identifying Test Conditions  When identifying test conditions, we want to 'throw the net wide' to identify as many as we can, and then we will start being selective about which ones to take forward to develop in more detail and combine into test cases. We could call them 'test possibilities'.  Testing everything is known as exhaustive testing; and that is an impractical goal. Therefore, a subset of possible tests should be selected. In practice the subset we select may be a very small subset and yet it has to have a high probability of finding most of the defects in a system.  We need some intelligent thought processes to guide our selection; test techniques (i.e. test design techniques) are such thought processes. A testing technique helps us select a good set of tests from the total number of all possible tests for a given system.  Different techniques offer different ways of looking at the software under test, possibly challenging assumptions made about it. Each technique provides a set of rules or guidelines for the tester to follow in identifying test conditions and test cases.  The test conditions that are chosen will depend on the test strategy or detailed test approach. They might be based on: o Risk o Models of the system o Likely failures o Compliance requirements o Expert advice or heuristics Q2. What is the meaning of “Traceability” in software testing? Why is traceability important?  Test conditions should be able to be linked back to their sources in the test basis this is called traceability.  Traceability can be either horizontal through all the test documentation for a given test level (e.g. system testing, from test conditions through test cases to test scripts) or vertical through the layers of development documentation (e.g. from requirements to components). Importance of Traceability  The requirements for a given function or feature have changed. Some of the fields now have different ranges that can be entered. Which tests were looking at those boundaries? They now need to be changed. How many tests will actually be affected by this change in the requirements? These questions can be answered easily if the requirements can easily be traced to the tests.  A set of tests that has run OK in the past has started to have serious problems. What functionality do these tests actually exercise? Traceability between the tests and the
  • 38. 38 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 requirement being tested enables the functions or features affected to be identified more easily.  Before delivering a new release, we want to know whether or not we have tested all of the specified requirements in the requirements specification. We have the list of the tests that have passed - was every requirement tested? Q3. What are the different types of testing techniques? Explain Each testing technique falls into one of a number of different categories. Broadly speaking there are two main categories, static and dynamic. Dynamic techniques are subdivided into three more categories: specification-based (black- box, also known as behavioural techniques), structure-based (white-box or structural techniques) and experience-based. Specification-based techniques include both functional and non-functional techniques (i.e. quality characteristics). Static Testing Techniques Most static testing techniques can be used to 'test' any form of document including source code, design documents and models, functional specifications and requirement specifications. However, 'static analysis' is a tool-supported type of static testing that concentrates on testing formal languages and so is most often used to statically test source code.
  • 39. 39 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Specification-Based (Black-Box) Testing Techniques The first of the dynamic testing techniques we will look at are the specification-based testing techniques. These are also known as 'black-box' or input/output-driven testing techniques because they view the software as a black-box with inputs and outputs, but they have no knowledge of how the system or component is structured inside the box. In essence, the tester is concentrating on what the software does, not how it does it. Structure-Based (White-Box) Testing Techniques Structure-based testing techniques (which are also dynamic rather than static) use the internal structure of the software to derive test cases. They are commonly called 'white-box' or 'glass-box' techniques (implying you can see into the system) since they require knowledge of how the software is implemented, that is, how it works. For example, a structural technique may be concerned with exercising loops in the software. Different test cases may be derived to exercise the loop once, twice, and many times. This may be done regardless of the functionality of the software. Experience-Based Testing Techniques In experience-based techniques, people's knowledge, skills and background are a prime contributor to the test conditions and test cases. The experience of both technical and business people is important, as they bring different perspectives to the test analysis and design process. Due to previous experience with similar systems, they may have insights into what could go wrong, which is very useful for testing. Q4. Explain equivalence partitioning and boundary value analysis with examples. Equivalence Partitioning It is very difficult to test entire software as whole because software is collection of set program. In equivalence partitioning s/w tester divide entire software into set of equivalence classes & each every equivalence program is tested by using set of valid & invalid I/P condition. The domain of possible I/P data for each I/P data element into equivalence classes. An equivalence class is group of data values where tester assumes that test objects processes them in same way. The test of one representative of equivalence class is such as sufficient because it is assume that for any other I/P value for same equivalence Class the test object will not show different variables. Besides equivalence classes for correct I/P, those for incorrect I/P values must be tested as well. To test equivalence Classes we have four different types of equivalence classes. 1) If continuous numerical domain is specified then create 1 valid & 2 invalid equivalence classes. I/PRange 20 <= x <= 50 Valid - x = {20, 21…….49, 50} Invalid - i) x < 20 ii) x > 50 2) If no. of values should entered then create / valid (all possible correct values) & 2 invalid equivalence classes (less & more than correct no.) I/P ……. Specific value a = 5 Valid x ϵ 5 Invalid - x ϵ 5 or x < 5 X > 5 3) If set of values is specifies where each value may possibly be treated differently than create one valid equivalence class for each value of set
  • 40. 40 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 (Containing exactly these values) & one additional invalid equivalence class (Containing all possible other value). I/P  Member of set x = {a, e, i, o, u} Valid  x ϵ (a, e, i, o, u) Invalid  x ϵ {b, c, d, f,…. z} 4) If there is condition that must be fulfilled then create 1 valid and 1 invalid equivalence class to test the condition fulfills or not fulfill. I/P  Boolean Value Valid  TRUE Invalid  FALSE Int a = 5, b = 3, c = 2 If (a > b & b & b > c) Test Completion Criteria: For equivalence Partitioning can be define as Boundary Value Analysis It delivers a very reasonable addition to the test cases that have been identified by equivalence Classes. Faults often appears at the boundaries of equivalence Classes. In boundary value analysis s/w tester emphasizes on boundary condition because maximum no. of errors are generally occurs at boundary rather that within operational bound. Testers assume that if software works properly on the boundary then it will definitely work within boundary condition. The most of the errors in software lies on boundary because boundaries are often not defined clearly or programmers misunderstand them. A test with boundary values usually discovers the failure the technique can only we applied if set of data which is in one equivalence Class has identifiable boundaries. Boundaries value Analysis checks borders of equivalence Classes on every border, the exact boundary value & both nearest adjacent value (Inside/ Outside equivalence. Class) are tested. If the I/P condition for the program is the range within close internal ([a, b]) then using BVA we have six test cases as follows. 1) [a,b] a - 1, a a + 1 b -1 b b + 1 2) An I/P file has restricted number of data records between 1 & 100 the test values should be 1,100,2,99. 3) If permitted no of O/P values is to be rested processed just as with no of input values: If O/P of 1-4 data values is test occurred test cases are 1,4,0,5. Test completion criteria for Boundary value is define as Q5. Explain, how is Equivalence Class Partitioning different from BVA? Equivalence Partitioning:  “A Black-box test design technique in which test cases are designed to execute representatives from equivalence partitions”
  • 41. 41 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271  Equivalence Partition: A portion of an input or output domain for which the behaviour of a component or system is assumed to be the same, based on the specification.  Equivalence Partitioning (EP) is applied at all levels of testing  The technique divides (i.e. partitions) a set of test conditions into groups or sets that can be considered same (i.e. system handles them equivalently) “Equivalence Partitioning‟  Equivalent partitions are also known as equivalence classes.  Equivalence testing considers that for each partition, a single test case associated to that partition is sufficient to evaluate the behaviour of the system. More test cases for a partition may not find new defects or faults in the behaviour of the system.  Equivalence classes are formed by considering each condition specified on an input value. The input values are then partitioned into a valid EC and one or more invalid EC. Boundary Value Analysis (BVA):  Boundary Value Testing (BVT) or BVA is a black box testing technique that refines equivalence class testing. BVT is functional testing technique that allows partitioning the inputs and outputs in ordered sets with distinct boundaries. Values under same set would be treated in similar manner.  Test values are selected such that they are inside, on and just outside the boundaries. Test cases are designed to focus near the limits of valid ranges or boundaries of equivalence classes. Efforts of software testing focus at the extreme boundaries of the equivalence classes.  Errors are easily tracked because when input values change from valid to invalid at extreme ends; there is more probability of occurrence of errors.  Purpose of BVT is to concentrate the testing effort on error-prone areas accurately pinpointing the boundaries of conditions (E.g. programmer may interpret requirement of SRS as >=, <=, >, <, = in his program) Q6. What is decision table? Explain with example. A decision table is a good way to deal with combinations of things (e.g. inputs). This technique is sometimes also referred to as a cause-effect table. The reason for this is that there is an associated logic diagramming technique called cause- effect graphing' which was sometimes used to help derive the decision table.  Decision tables provide a systematic way of stating complex business rules, which is useful for developers as well as for testers.  Decision tables can be used in test design whether or not they are used in specifications, as they help testers explore the effects of combinations of different inputs and other software states that must correctly implement business rules.  It helps the developers to do a better job can also lead to better relationships with them. Testing combinations can be a challenge, as the number of combinations can often be huge. Testing all combinations may be impractical if not impossible. We have to be satisfied with testing just a small subset of combinations but making the choice of which combinations to test and which to leave out is also important. If you do not have a systematic way of selecting combinations, an arbitrary subset will be used and this may well result in an ineffective test effort. Consider example of triangle function.
  • 42. 42 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Q7. Explain State Transition based testing with an example.  State transition tables are useful tool to capture certain types of system requirements and also document internal system design  State transition tables document events that are processed by the system as well as system’s responses  Easy to use and provide information that is complete and systematic  It consists of 4 columns: o Current State o Event o Action o Next State  The procedure to build the state transition table is as follows:  For each state of the system  For each event/trigger of the system  Find the corresponding (Action, Next State, if any)  Document (State, Event, Action, Next State)  The benefits of using state transition table in testing are: o It enumerates all possible state transition combinations, not just the valid ones but also the invalid ones o Testing of critical, high risk systems including aviation, financial or medical applications requires testing every state transition pair including the invalid pairs o Knowledge of valid and invalid state transition provide necessary and complete information that makes decision more stable and consistent in a given environment Example: Digital watch:  The software responds to input requests to change the display mode for a time display device.  The display mode can be set to one of the four values:  Two corresponding to displaying either time or date.  The other two when altering either time or date.
  • 43. 43 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271 Four possible input requests: o Change mode (CM) o Reset (R) o Time Set (TS) o Date Set (DS)  Change Mode (CM):Activation of this shall cause the display mode to move between “Display Time (T)” and “Display Date (D)”  Reset (R): If display mode is set to T or D, then a “reset” shall cause the display mode to be set to “Alter time (AT)” or “Alter Date (AD)” modes.  Time Set (TS): Activation of this shall cause the display mode to return to T from AT.  Date Set (DS): Activation of this shall cause the display mode to return to D from AD. Q8. Write a short note on Test Coverage. Test coverage measures in some specific way the amount of testing performed by a set of tests (derived in some other way, e.g. using specification-based techniques). Wherever we can count things and can tell whether or not each of those things has been tested by some test, then we can measure coverage. The basic coverage measure is given by using below formula:- Coverage = (Number of coverage items exercised / Total number of coverage items) x 100% Where the 'coverage item' is whatever we have been able to count and see whether a test has exercised or used this item. Types of coverage There are three different types of coverage are:  Statement coverage  Decision coverage
  • 44. 44 | Salvi College Prof: Sonu Raj | sonuraj681@gmail.com | 8080837038 | 8976249271  Condition coverage Q9. Explain white box testing. The basis for white box technique is the source code of the test objects therefore these techniques are often caused code based testing technique or structural testing technique. Generic idea of white box technique is to execute every part of the code of test object at least once flow oriented test cases are identified, analyzing program logic & then executed. However the expected result should determine using requirement or specifications, not the code. These are done in order to decide if the execution resulted in failure. The focus of examination of white box technique is on the statements of the test objects. The primary goal of white box testing is then to achieve a previously define coverage of the statements, e.g. executes are possible statements in the program. The basic white box test design techniques are as follows:  Statements Coverage  Branch Coverage  Path Coverage Statement Coverage: These analysis focuses on each statement of test object the test cases shall execute a predefined minimum quota or even all statements of test objects. The first step is to translate source code into control flow graph. The graph makes it easier to specify in detail the control elements that must be covered in a graph the statements are represented as node a control flow between statements are resented by edges if sequences of unidirectional statement appear in program fragment then they are illustrated as one single node. Conditional statements like if….else & loops like while, do …..While have more than one edges going out from them. After execution of test cases it must be verified which of the statements have been executed. Statement coverage must ensure that each & every statement of a program must be executed at least once. The test completion criteria for statement coverage can define as Statement Coverage= (No of executable state/ Total no of state)*100 Branch Coverage: A more advance criteria for white box testing is branch coverage of control flow graph. E.g. Edges in the graph are Centre of tension. Execution of each statement is not coverage but rather the executions of decisions are more important. The result of decision determines which statement is executed next. Branch sure every decision with both possible Test completion criteria for branch coverage is defined a Branch Coverage= (No of executable branches/Total no of Branches)*100 Path Coverage Unit now test case determination focused on statement or branches of control flow as well as complexity repetitions, the previous deliberations are not sufficient or not adequate test, path coverage requires execution of all different paths through test objects. The test completion criteria for P.C. cannot define mathematically because it will depend on no. of repeat ion of loop. No. of path coverage of test object can be determine using Cyclomatic caomplexity, which gives total no. of maximum paths available in control flow.