You are on page 1of 112

Vallurupalli Nageswara Rao Vignana Jyothi Institute of

Engineering &Technology

Department of Computer Science & Engineering

SUBJECT: SOFTWARE QUALITY ASSURANCE AND


TESTING
Subject Code: 18PE1CS07

Topic Name: Software Testing Strategy and Environment


IV year

K. Haripriya
Assistant Professor
Email: haripriya_k@vnrvjiet.in
<Web link of your created resource if any>

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 1
Agenda
▪ Establishing testing policy
▪ Structured approach to testing
▪ Test factors
▪ Economics of System Development Life Cycle (SDLC) Testing
▪ Software Testing Methodology.
▪ Defects hard to find
▪ Verification and validation
▪ Eight considerations in developing testing methodologies
▪ Testing tactics checklist.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 2
Establishing testing policy

A software testing policy serves two purposes.

➢ First, it is the basis for defining what software testers will include in the test
processes.

➢ Second, it explains to outside parties, such as organizational management, IT


customers and users, as well as project personnel, the role and
responsibilities of software testing.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 3
Establishing testing policy
Criteria for a Testing Policy
▪ A testing policy is management’s definition of testing for a department.
▪ A testing policy involves the following four criteria:

➢ Definition of testing- A brief but clear definition of testing.

➢ Testing system- The method through which testing will be achieved and
enforced.

➢ Evaluation- How information services management will measure and


evaluate testing.

➢ Standards- The standards against which testing will be measured.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 4
Establishing testing policy
▪ Good testing does not just happen, it must be planned; and a testing policy
should be the cornerstone of that plan.

▪ A good practice is for management to establish the testing policy for the IT
department, have all members of IT management sign that policy as their
endorsement and intention to enforce that testing policy, and then
prominently display that endorsed policy where everyone in the IT
department can see it.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 5
Establishing testing policy
Methods for Establishing a Testing Policy

▪ The following three methods can be used to establish a testing policy:

1. Management directive: One or more senior IT managers write the policy.


They determine what they want from testing, document that into a policy,
and issue it to the department. This is an economical and effective method to
write a testing policy;
▪ The potential disadvantage is that it is not an organizational policy, but rather
the policy of IT management.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 6
Establishing testing policy
Methods for Establishing a Testing Policy

2. Information services consensus policy: IT management convenes a group of


the more senior and respected individuals in the department to jointly
develop a policy. While senior management must have the responsibility for
accepting and issuing the policy, the development of the policy is
representative of the thinking of all the IT department, rather than just
senior management.
▪ The advantage of this approach is that it involves the key members of the IT
department. Because of this participation, staff is encouraged to follow the
policy.
▪ The disadvantage is that it is an IT policy and not an organizational policy

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 7
Establishing testing policy
Methods for Establishing a Testing Policy

3. Users’ meeting: Key members of user management meet in conjunction with


the IT department to jointly develop a testing policy.
▪ Again, IT management has the final responsibility for the policy, but the
actual policy is developed using people from all major areas of the
organization.
▪ The advantage of this approach is that it is a true organizational policy and
involves all of those areas with an interest in testing.
▪ The disadvantage is that it takes time to follow this approach, and a policy
might be developed that the IT department is obligated to accept because it
is a consensus policy and not the type of policy that IT itself would have
written.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 8
Establishing testing policy
▪ Testing is an organizational responsibility. It is the recommendation of the
author that a user committee be convened to develop a testing policy. This
meeting serves the following purposes:
➢ It permits all involved parties to participate in the development of a testing
policy.
➢ It is an educational process where users understand the options and costs
associated with testing.
➢ It clearly establishes for all involved departments that testing is an
organizational responsibility and not just an IT responsibility

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 9
Structured approach to testing
Building a Structured Approach to Software Testing

▪ Traditionally, the SDLC places testing immediately prior to installation and


maintenance .All too often, testing after coding is the only verification
technique used to determine the adequacy of the system.
▪ When testing is constrained to a single phase and confined to the latter
stages of development, severe consequences can develop.
▪ It is not unusual to hear of testing consuming 50 percent of the development
budget.
▪ All errors are costly, but the later in the SDLC the error is discovered, the
more costly the error.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 10
Structured approach to testing

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 11
Structured approach to testing
▪ Indeed, an error discovered in the latter parts of the SDLC must be paid four
different times.
➢ The first cost is developing the program erroneously, which may include
writing the wrong specifications, coding the system wrong, and documenting
the system improperly.
➢ Second, the system must be tested to detect the error.
➢ Third, the wrong specifications and coding must be removed and the proper
specifications, coding, and documentation added.
➢ Fourth, the system must be retested to determine whether the problem(s)
have been corrected.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 12
Structured approach to testing
▪ If information services has as its goal lower cost and higher quality systems, it
must not isolate verification to a single phase in the development process;
rather, it must incorporate verification into each phase of development.
▪ One of the most prevalent and costly mistakes on systems development
projects today is to defer the activity of detecting and correcting problems
until late in the project.
▪ A major justification for an early verification activity is that many costly errors
are made before coding begins.
▪ Studies have shown that the majority of system errors occur in the design
phase.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 13
Structured approach to testing
▪ Below Figure represents the results of numerous studies that show that
approximately two-thirds of all detected system errors can be attributed to
errors made during the design phase.
▪ This means that almost two-thirds of the errors must be specified and coded
into programs before they can be detected.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 14
Structured approach to testing
▪ The success of conducting verification throughout the development cycle
depends upon the existence of clearly defined and stated products at each
development stage.
▪ The more formal and precise the statement of the development product, the
more open and responsive it is to the analysis required to support
verification.
▪ Many of the new system development methodologies encourage firm
products even in the early development stages.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 15
Structured approach to testing
Below Table presents the recommended testing process as a life cycle chart
showing the verification activities for each phase.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 16
Structured approach to testing
▪ The following activities should be performed at each phase:
➢ Analyze the software documentation for internal testability and adequacy.
➢ Generate test sets based on the software documentation at this phase.

▪ In addition, the following should be performed during the design and


program phases:
➢ Determine that the software documentation is consistent with the software
documentation produced during previous phases.
➢ Refine or redefine test sets generated earlier

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 17
Economics of Testing
▪ One information services manager described testing in the following manner:
“Too little testing is a crime, but too much testing is a sin.”
▪ The risk of under-testing is directly translated into system defects present in
the production environment. The risk of over testing is the unnecessary use
of valuable resources in testing computer systems that have no flaws, or so
few flaws that the cost of testing far exceeds the value of detecting the
system defects.
▪ Effective testing is conducted throughout the system development life cycle
(SDLC). The SDLC represents the activities that must occur to build software,
and the sequence in which those activities must occur.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 18
Economics of Testing
▪ Most of the problems associated with testing occur from one of the following
causes:
➢Failing to define testing objectives
➢Testing at the wrong phase in the life cycle
➢Using ineffective testing techniques.

▪ The cost-effectiveness of testing is illustrated in Figure as a testing cost curve.


As the cost of testing increases, the number of undetected defects
decreases.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 19
Economics of Testing

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 20
Economics of Testing
▪ Few organizations have established a basis to measure the effectiveness of
testing.
▪ This makes it difficult for the individual systems analyst/programmer to
determine the cost-effectiveness of testing.
▪ Without testing standards, the effectiveness of the process cannot be
evaluated in sufficient detail to enable the process to be measured and
improved.
▪ The use of a standardized testing methodology provides the opportunity for a
cause and effect relationship to be determined.
▪ In other words, the effect of a change in the methodology can be evaluated
to determine whether that effect resulted in a smaller or larger number of
defects.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 21
Economics of Testing

▪ The establishment of this relationship is an essential step in improving the


test process.
▪ The cost-effectiveness of a testing process can be determined only when the
effect of that process can be measured. When the process can be measured,
it can be adjusted to improve the cost-effectiveness of the test process for
the organization.
▪ Studies at IBM demonstrated that an application system built by an
immature system development process will produce 60 errors (defects).
These studies also showed that testing prior to coding is 50 percent effective
in detecting errors, and after coding, 80 percent effective. This study and
others show that it is at least 10 times as costly to correct an error after
coding as before, and 100 times as costly to correct a production error.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 22
Economics of Testing

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 23
Defects Versus Failures

▪ A defect found in the system being tested can be classified as wrong, missing,
or extra.
▪ The defect may be within the software or in the supporting documentation.
While the defect is a flaw in the system, it has no negative impact until it
affects the operational system.
▪ A defect that causes an error in operation or negatively impacts a
user/customer is called a failure.
▪ The main concern with defects is that they will turn into failures. It is the
failure that damages the organization.
▪ Some defects never turn into failures. On the other hand, a single defect can
cause millions of failures.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 24
Why Are Defects Hard to Find?
▪ Some defects are easy to spot, whereas others are more subtle. There are at
least two reasons defects go undetected:

➢ Not looking - Tests often are not performed because a particular test
condition is unknown. Also, some parts of a system go untested because
developers assume software changes don’t affect them.

➢ Looking but not seeing - This is like losing your car keys only to discover they
were in plain sight the entire time. Sometimes developers become so familiar
with their system that they overlook details, which is why independent
verification and validation should be used to provide a fresh viewpoint

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 25
Why Are Defects Hard to Find?
▪ Defects typically found in software systems are the results of the following
circumstances:

➢ IT improperly interprets requirements. Information technology (IT) staff


misinterpret what the user wants, but correctly implement what the IT people
believe is wanted.
➢ The users specify the wrong requirements. The specifications given to IT staff are
erroneous.
➢ The requirements are incorrectly recorded. Information technology staff fails to
record the specifications properly.
➢ The design specifications are incorrect. The application system design does not
achieve the system requirements, but the design as specified is implemented
correctly.
➢ The program specifications are incorrect. The design specifications are
incorrectly interpreted, making the program specifications inaccurate; however, it
is possible to properly code the program to achieve the specifications.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 26
Why Are Defects Hard to Find?
➢ There are errors in program coding. The program is not coded according to
the program specifications.
➢ There are data entry errors. Data entry staff incorrectly enter information
into the computers.
➢ There are testing errors. Tests either falsely detect an error or fail to detect
one.
➢ There are mistakes in error correction. The implementation team makes
errors in implementing your solutions.
➢ The corrected condition causes another defect. In the process of correcting a
defect, the correction process itself institutes additional defects into the
application system

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 27
Software Testing Guidelines
▪ Experience has shown there are six general software testing guidelines that,
if followed, can significantly improve software testing. These guidelines are
the primary reason for building the software testing process:
1. Software testing should reduce software development risk: Risk is
present in all software development projects, and testing is a control that
reduces those risks.
2. Testing should be performed effectively: Testing should be performed in a
manner in which the maximum benefits are achieved from the software
testing efforts.
3. Testing should uncover defects: Ideally, at the conclusion of testing there
should be no defects in the software.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 28
Software Testing Guidelines
4. Testing should be performed using business logic: Money should not be
spent on testing unless it can be spent economically to reduce business
risk. In other words, it does not make business sense to spend more money
on testing than the losses that might occur from the business risk.
5. Testing should occur throughout the development life cycle: Testing is not
a phase, but rather a process. It begins when development begins and
ends when the software is no longer being used.
6. Testing should test both structure and function: Testing should test the
functional requirements to ensure they are correct, and test the adequacy
of the software structure to process those functional requirements in an
effective and efficient manner

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 29
Test Factors
▪ The test factors describe the broad objectives of testing.
▪ These are the risks/concerns that testers need to evaluate to ensure the
objectives identified by that factor have been achieved.
▪ Testers should customize these factors for their specific system.

▪ Reliability
➢ The level of accuracy and completeness expected in the operational
environment is established.
➢ Data integrity controls are implemented in accordance with the design.
➢ Manual, regression, and functional tests are performed to ensure the
data integrity controls work.
➢ The completeness of the system installation is verified.
➢ The accuracy requirements are maintained as the applications are
updated.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 30
Test Factors

▪ Authorization

➢ The rules governing the authorization of transactions are defined.


➢ The application is designed to identify and enforce the authorization
rules.
➢ The application implements the authorization rules.
➢ Unauthorized data changes are prohibited during the installation process.
➢ The method and rules for authorization are preserved during
maintenance.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 31
Test Factors
▪ File integrity
➢ Requirements for file integrity are defined.
➢ The design provides for the controls to ensure the integrity of the file.
➢ The specified file integrity controls are implemented.
➢ The file integrity functions are tested to ensure they perform properly.
➢ The integrity of the files is preserved during the maintenance phase.

▪ Audit trail
➢ The requirements to reconstruct processing are defined.
➢ The audit trail requirements are incorporated into the system.
➢ The audit trail functions are tested to ensure the appropriate data is saved.
➢ The audit trail of installation events is recorded.
➢ The audit trail requirements are updated during systems maintenance.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 32
Test Factors
▪ Continuity-of-processing
➢ The impact of each system failure is defined.
➢ The contingency plan and procedures have been written.
➢ Recovery testing verifies that the contingency plan functions properly.
➢ The integrity of the previous systems is ensured until the integrity of the
new system is verified.
➢ The contingency plan is updated and tested as system requirements
change.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 33
Test Factors
▪ Service level
➢ The desired service level for all aspects of the system is defined.
➢ The method to achieve the predefined service levels is incorporated into the system
design.
➢ The programs and manual systems are designed to achieve the specified service level.
➢ Stress testing is conducted to ensure that the system can achieve the desired service
level when both normal and above normal volumes of data are processed.
➢ A fail-safe plan is used during installation to ensure service is not disrupted.
➢ The predefined service level is preserved as the system is maintained.
▪ Access control
➢ Access to the system is defined.
➢ The procedures to enforce the access rules are designed.
➢ The defined security procedures are implemented.
➢ Compliance tests are utilized to ensure that the security procedures function in a
production environment.
➢ Access to the computer resources is controlled during installation.
➢ The procedures controlling access are preserved as the system is updated.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 34
Test Factors
▪ Methodology
➢ The system requirements are defined and documented in compliance with the
development methodology.
➢ The system design is executed in accordance with the design methodology.
➢ The programs are constructed and documented in compliance with the programming
methodology.
➢ Testing is performed in compliance with the test methodology.
➢ The integration of the application system in a production environment complies with
the installation methodology.
➢ System maintenance is performed in compliance with the maintenance methodology.
▪ Correctness
➢ The user has fully defined the functional specifications.
➢ The developed design conforms to the user requirements.
➢ The developed program conforms to the system design specifications.
➢ Functional testing ensures that the requirements are properly implemented.
➢ The proper programs and data are placed into production.
➢ The user-defined requirement changes are properly implemented in the operational
system

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 35
Test Factors
▪ Ease-of-use
➢ The usability specifications for the application system are defined.
➢ The system design attempts to optimize the usability of the implemented
requirements.
➢ The program optimizes ease of use by conforming to the design.
➢ The relationship between the manual and automated system is tested to ensure the
application is easy to use.
➢ The usability instructions are properly prepared and disseminated to the appropriate
individuals.
➢ As the system is maintained, its ease of use is preserved.
▪ Maintainable
➢ The desired level of maintainability is specified.
➢ The design is developed to achieve the desired level of maintainability.
➢ The program is coded and designed to achieve the desired level of maintainability.
➢ The system is inspected to ensure that it is maintainable.
➢ The system documentation is complete.
➢ Maintainability is preserved as the system is updated

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 36
Test Factors
▪ Portable
➢ The portability in moving the system among hardware or software components is
determined
➢ The design is prepared to achieve the desired level of portability.
➢ The program is designed and implemented to conform to the portability design.
➢ The system is subjected to a disaster test to ensure that it is portable.
➢ The documentation is complete to facilitate portability.
➢ Portability is preserved as the system is maintained.
▪ Coupling
➢ The interface between the system being developed and related systems is defined.
➢ The design takes into account the interface requirements.
➢ The program conforms to the interface design specifications.
➢ Functional and regression testing are performed to ensure that the interface between
systems functions properly.
➢ The interface between systems is coordinated prior to the new system being placed
into production.
➢ The interface between systems is preserved during the systems maintenance process.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 37
Test Factors
▪ Performance
➢ The performance criteria are established.
➢ The design specifications ensure that the desired level of performance is
achieved.
➢ The program is designed and implemented to achieve the performance criteria.
➢ The system is compliance tested to ensure that the desired performance levels
are achieved.
➢ System performance is monitored during the installation phase.
➢ The desired level of performance is preserved during system maintenance.
▪ Ease-of-operation
➢ The operational needs are incorporated into the system design.
➢ The operational procedures are tested to ensure they achieve the desired level
of operational usability.
➢ The operating procedures are implemented during the installation phase.
➢ Changes to the operational system are updated in the operating procedures.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 38
Test Factors

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 39
Test Factors

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 40
Functional Testing
Functional Testing
▪ This is a type of black box testing that is based on the specifications of the
software that is to be tested.
▪ The application is tested by providing input and then the results are
examined that need to conform to the functionality it was intended for.
▪ Functional Testing of the software is conducted on a complete, integrated
system to evaluate the system's compliance with its specified requirements.
▪ There are five steps that are involved when testing an application for
functionality.
▪ An effective testing practice will see the above steps applied to the testing
policies of every organization and hence it will make sure that the
organization maintains the strictest of standards when it comes to software
quality.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 41
Functional Testing
Steps

The determination of the functionality that the intended application is meant


I
to perform.

II The creation of test data based on the specifications of the application.

III The output based on the test data and the specifications of the application.

IV The writing of Test Scenarios and the execution of test cases.

The comparison of actual and expected results based on the executed test
V
cases.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 42
Unit Testing
Unit Testing

▪ This type of testing is performed by the developers before the setup is


handed over to the testing team to formally execute the test cases.
▪ Unit testing is performed by the respective developers on the individual units
of source code assigned areas.
▪ The developers use test data that is separate from the test data of the quality
assurance team.
▪ The goal of unit testing is to isolate each part of the program and show that
individual parts are correct in terms of requirements and functionality.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 43
Unit Testing
LIMITATIONS OF UNIT TESTING

▪ Testing cannot catch each and every bug in an application. It is impossible to


evaluate every execution path in every software application. The same is the
case with unit testing.
▪ There is a limit to the number of scenarios and test data that the developer
can use to verify the source code. So after he has exhausted all options there
is no choice but to stop unit testing and merge the code segment with other
units.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 44
Integration Testing
Integration Testing
▪ The testing of combined parts of an application to determine if they function
correctly together is Integration testing.
▪ There are two methods of doing Integration Testing
▪ Bottom-up Integration testing
▪ Top Down Integration testing.
▪ In a comprehensive software development environment, bottom-up testing
is usually done first, followed by top-down testing.
▪ The process concludes with multiple tests of the complete application,
preferably in scenarios designed to mimic those it will encounter in
customers' computers, systems and network.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 45
Integration Testing
S.No Integration Testing Method

Bottom-up integration
1 This testing begins with unit testing, followed by tests of progressively higher-level
combinations of units called modules or builds.

Top-Down integration
2 This testing, the highest-level modules are tested first and progressively lower-level
modules are tested after that.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 46
System Testing
System Testing
▪ This is the next level in the testing and tests the system as a whole. Once all
the components are integrated, the application as a whole is tested
rigorously to see that it meets Quality Standards. This type of testing is
performed by a specialized testing team.
▪ System testing is so important because of the following reasons:
• System Testing is the first step in the Software Development Life Cycle,
where the application is tested as a whole.
• The application is tested thoroughly to verify that it meets the functional
and technical specifications.
• The application is tested in an environment which is very close to the
production environment where the application will be deployed.
• System Testing enables us to test, verify and validate both the business
requirements as well as the Applications Architecture.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 47
Regression Testing
Regression Testing
▪ Whenever a change in a software application is made it is quite possible that
other areas within the application have been affected by this change. To
verify that a fixed bug hasn't resulted in another functionality or business
rule violation is Regression testing. The intent of Regression testing is to
ensure that a change, such as a bug fix did not result in another fault being
uncovered in the application.
▪ Regression testing is so important because of the following reasons:
• Minimize the gaps in testing when an application with changes made has
to be tested.
• Testing the new changes to verify that the change made did not affect
any other area of the application.
• Mitigates Risks when regression testing is performed on the application.
• Test coverage is increased without compromising timelines.
• Increase speed to market the product.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 48
Acceptance Testing
Acceptance Testing
▪ This is arguably the most importance type of testing as it is conducted by the
Quality Assurance Team who will gauge whether the application meets the
intended specifications and satisfies the client's requirements. The QA team
will have a set of pre written scenarios and Test Cases that will be used to
test the application.
▪ More ideas will be shared about the application and more tests can be
performed on it to gauge its accuracy and the reasons why the project was
initiated. Acceptance tests are not only intended to point out simple spelling
mistakes, cosmetic errors or Interface gaps, but also to point out any bugs in
the application that will result in system crashers or major errors in the
application.
▪ By performing acceptance tests on an application the testing team will
deduce how the application will perform in production. There are also legal
and contractual requirements for acceptance of the system.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 49
Alpha Testing
ALPHA TESTING
▪ This test is the first stage of testing and will be performed amongst the teams
(developer and QA teams). Unit testing, integration testing and system
testing when combined are known as alpha testing. During this phase, the
following will be tested in the application:
• Spelling Mistakes
• Broken Links
• Cloudy Directions
• The Application will be tested on machines with the lowest specification
to test loading times and any latency problems.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 50
Beta Testing
BETA TESTING

▪ This test is performed after Alpha testing has been successfully performed. In
beta testing a sample of the intended audience tests the application. Beta
testing is also known as pre-release testing.
▪ Beta test versions of software are ideally distributed to a wide audience on
the Web, partly to give the program a "real-world" test and partly to provide
a preview of the next release.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 51
Beta Testing

▪ In this phase the audience will be testing the following:


• Users will install, run the application and send their feedback to the project
team.
• Typographical errors, confusing application flow, and even crashes.
• Getting the feedback, the project team can fix the problems before releasing
the software to the actual users.
• The more issues you fix that solve real user problems, the higher the quality
of your application will be.
• Having a higher-quality application when you release to the general public
will increase customer satisfaction.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 52
Non-Functional Testing

Non-Functional Testing

▪ This section is based upon the testing of the application from its non-
functional attributes.
▪ Non-functional testing of Software involves testing the Software from the
requirements which are non functional in nature related but important a well
such as performance, security, user interface etc.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 53
Non-Functional Testing
Some of the important and commonly used non-functional testing types are
mentioned as follows:
Performance Testing
▪ It is mostly used to identify any bottlenecks or performance issues rather
than finding the bugs in software. There are different causes which
contribute in lowering the performance of software:
• Network delay.
• Client-side processing.
• Database transaction processing.
• Load balancing between servers.
• Data rendering.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 54
Non-Functional Testing
▪ Performance testing is considered as one of the important and mandatory
testing type in terms of following aspects:
• Speed (i.e. Response Time, data rendering and accessing)
• Capacity
• Stability
• Scalability
▪ It can be either qualitative or quantitative testing activity and can be divided
into different sub types such as Load testing and Stress testing.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 55
Load Testing
LOAD TESTING
▪ A process of testing the behavior of the Software by applying maximum load
in terms of Software accessing and manipulating large input data. It can be
done at both normal and peak load conditions. This type of testing identifies
the maximum capacity of Software and its behavior at peak time.
▪ Most of the time, Load testing is performed with the help of automated tools
such as Load Runner, AppLoader, IBM Rational Performance Tester, Apache
JMeter, Silk Performer, Visual Studio Load Test etc.
▪ Virtual users (VUsers) are defined in the automated testing tool and the
script is executed to verify the Load testing for the Software. The quantity of
users can be increased or decreased concurrently or incrementally based
upon the requirements.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 56
Stress Testing
STRESS TESTING

▪ This testing type includes the testing of Software behavior under abnormal
conditions. Taking away the resources, applying load beyond the actual load
limit is Stress testing.
▪ The main intent is to test the Software by applying the load to the system
and taking over the resources used by the Software to identify the breaking
point. This testing can be performed by testing different scenarios such as:
• Shutdown or restart of Network ports randomly.
• Turning the database on or off.
• Running different processes that consume resources such as CPU, Memory,
server etc.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 57
Workbench Concept

▪ To understand testing methodology, you must understand the workbench


concept.
▪ In IT organizations, workbenches are more frequently referred to as phases,
steps, or tasks.
▪ The workbench is a way of illustrating and documenting how a specific
activity is to be performed.
▪ Defining workbenches is normally the responsibility of a process
management committee, which in the past has been more frequently
referred to as a standards committee.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 58
Workbench Concept
There are four components to each workbench:

1. Input: The entrance criteria or deliverables needed to complete a task.


2. Procedures to do: The work tasks or processes that will transform the
input into the output.
3. Procedures to check: The processes that determine that the output meet
the standards.
4. Output: The exit criteria or deliverables produced from the workbench

NOTE:
Testing tools are not considered part of the workbench because they are
incorporated into either the procedures to do or procedures to check.
The workbench is illustrated in below Figure, and the software development
life cycle, which is comprised of many workbenches, is illustrated in next
Figure .

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 59
Workbench Concept

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 60
Workbench Concept

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 61
Workbench Concept
The workbench concept can be used to illustrate one of the steps involved in
building systems.
The programmer’s workbench consists of the following steps:

1. Input products (program specs) are given to the producer


(programmer).
2. Work is performed (e.g., coding/debugging); a procedure is followed; a
product or interim deliverable (e.g., a program/module/unit) is
produced.
3. Work is checked to ensure product meets specs and standards, and that
the do procedure was performed correctly.
4. If the check process finds problems, the product is sent back for
rework.
5. If the check process finds no problems, the product is released to the
next workbench

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 62
Functional and structural Testing
▪ When testers test your project team’s solution, they’ll perform functional or
structural tests.
▪ Functional testing is sometimes called black box testing because no
knowledge of the system’s internal logic is used to develop test cases.
▪ For example, if a certain function key should produce a specific result when
pressed, a functional test would be to validate this expectation by pressing
the function key and observing the result.
▪ When conducting functional tests, you’ll be using validation techniques
almost exclusively.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 63
Functional and structural Testing
▪ Conversely, structural testing is sometimes called white box testing because
knowledge of the system’s internal logic is used to develop hypothetical test
cases.
▪ Structural tests predominantly use verification techniques.
▪ If a software development team creates a block of code that will allow a
system to process information in a certain way, a test team would verify this
structurally by reading the code, and given the system’s structure, see if the
code could work reasonably.
▪ If they felt it could, they would plug the code into the system and run an
application to structurally validate the code.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 64
Functional and structural Testing
▪ Each method has its pros and cons, as follows:
➢ Functional testing advantages:
▪ Simulates actual system usage
▪ Makes no system structure assumptions
➢ Functional testing disadvantages:
▪ Includes the potential to miss logical errors in software
▪ Offers the possibility of redundant testing
➢ Structural testing advantages:
▪ Enables you to test the software’s logic
▪ Enables you to test structural attributes, such as efficiency of code
➢ Structural testing disadvantages:
▪ Does not ensure that you’ve met user requirements
▪ May not mimic real-world situations

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 65
Why Use Both Testing Methods?
▪ Both methods together validate the entire system.
▪ For example, a functional test case might be taken from the documentation
description of how to perform a certain function, such as accepting bar code
input.
▪ A structural test case might be taken from a technical documentation
manual.
▪ To effectively test systems, you need to use both methods.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 66
Structural and Functional Tests Using
Verification and Validation Techniques
▪ Testers use verification techniques to confirm the reasonableness of a system
by reviewing its structure and logic.

▪ Validation techniques, on the other hand, strictly apply to physical testing, to


determine whether expected results occur.

▪ We will conduct structural tests primarily using verification techniques, and


functional tests using validation techniques.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 67
Structural and Functional Tests Using
Verification and Validation Techniques
▪ Using verification to conduct structural tests would include

➢ Feasibility reviews: Tests for this structural element would verify the
logic flow of a unit of software.

➢ Requirements reviews: These reviews verify software attributes; for


example, in any particular system, the structural limits of how much load
(transactions or number of concurrent users) a system can handle

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 68
Structural and Functional Tests Using
Verification and Validation Techniques
▪ Functional tests are virtually all validation tests, and inspect how the system
performs. Examples of this include
➢ Unit testing. These tests verify that the system functions properly—for
example, pressing a function key to complete an action.
➢ Integrated testing. The system runs tasks that involve more than one
application or database to verify that it performed the tasks accurately.
➢ System testing. These tests simulate operation of the entire system, and
verify that it ran correctly.
➢ User acceptance. This real-world test means the most to your business.
Unfortunately, there’s no way to conduct it in isolation. Once your
organization staff, customers, or vendors begin to interact with your system,
they’ll verify that it functions properly for you.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 69
Structural and Functional Tests Using
Verification and Validation Techniques
▪ Verification and validation are not mutually exclusive, so you will conduct
functional tests with verification and structural tests with validation during
your project.

▪ Following Table shows the relationships just explained, listing each of the six
test activities, who performs them, and whether the activity is an example of
verification or validation.

▪ For example, when conducting a feasibility review, developers and users


verify that the software could conceivably perform after the solution is
implemented the way the developers expect.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 70
Structural and Functional Tests Using
Verification and Validation Techniques

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 71
Testing That Parallels the Software
Development Process
▪ When the processes for developing software and testing software are shown
in a single diagram, they are frequently presented as what is known as a “V
diagram.”

▪ On one side of the V are the steps for developing software, and on the other
side are the steps for testing software.

▪ Figure below illustrates the V diagram for the seven-step software testing
process.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 72
Testing That Parallels the Software
Development Process

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 73
Testing That Parallels the Software
Development Process
▪ The process for developing software contains the following generic steps:

1. Define the requirements for the software system.


2. Design the software system based on the requirements.
3. Build the software based on the design.
4. Test the software (which involves unit testing and frequently integration
testing).
5. Install the software in an operational environment.
6. Maintain the software as changes are needed
(Note: unless changes are significant, the developers will test the changes and
then install the new version.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 74
Testing That Parallels the Software
Development Process
The process for testing software involves the following steps:

1. Prepare for testing a software system.


2. Plan the tests that will be conducted on the software system.
3. Execute the steps as defined in the test plan.
4. Conduct acceptance testing by the software system users.
5. Analyze test results and report them to the appropriate software system
stakeholders.
6. Test the installation of the software into the operational environment, and
test changes made to the software after it is placed into the operational
environment.
7. Conduct a post-implementation analysis to evaluate the effectiveness and
efficiency of the test process

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 75
Testing That Parallels the Software
Development Process
▪ Each of the seven steps in the software-testing process can be represented
by the software testing workbench.
▪ In the seven-step process, these testing workbenches comprise multiple
steps. Therefore, there would be multiple workbenches within the overall
workbench for each step.
▪ An IT organization should customize the seven-step testing process for its
particular situation.
▪ The seven-step process presented is one that testers might use for a large,
complex software system.
▪ The following sections discuss eight considerations that your organization
should use when customizing the seven-step software testing process.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 76
Customizing the Software-Testing Process(8 considerations in
developing testing strategy)
▪ The following are eight considerations you need to address when customizing
the seven-step software-testing process:
1. Determine the test strategy objectives.
2. Determine the type of development project.
3. Determine the type of software system.
4. Determine the project scope.
5. Identify the software risks.
6. Determine when testing should occur.
7. Define the system test plan standard.
8. Define the unit test plan standard.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 77
1. Determining the Test Strategy Objectives
▪ Test strategy is normally developed by a team very familiar with the business
risks associated with the software; tactics are developed by the test team.
Thus, the test team needs to acquire and study the test strategy.
▪ In this study, the test team should ask the following questions:
➢ What is the ranking of the test factors?
➢ Which of the high-level risks are the most significant?
➢ What damage can be done to the business if the software fails to perform
correctly?
➢ What damage can be done to the business if the software is not completed on
time?
➢ Which individuals are most capable of understanding the impact of the identified
business risks?

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 78
2. Determining the Type of Development Project
▪ The type of development project refers to the environment/methodology in
which the software will be developed.
▪ As the environment changes, so does the testing risk.
▪ For example, the risks associated with the traditional development effort
differ from the risks associated with off-the-shelf purchased software.
▪ Different testing approaches must be used for different types of projects, just
as different development approaches are used

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 79
3. Determining the Type of Software System
▪ The type of software system refers to the processing that will be performed
by that system.
▪ This step contains 16 different software system types.
▪ However, a single software system may incorporate more than one of these
types.
▪ Identifying the specific software type will help build an effective test plan.
➢ Batch (general). Can be run as a normal batch job and makes no unusual
hardware or input-output actions (for example, a payroll program or a
wind tunnel data analysis program).
➢ Event control. Performs real-time data processing as a result of external
events (for example, a program that processes telemetry data).
➢ Process control. Receives data from an external source and issues
commands to that source to control its actions based on the received data.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 80
➢ Procedure control. Controls other software (for example, an operating
system that controls the execution of time-shared and batch computer
programs).
➢ Advanced mathematical models. Resembles simulation and business
strategy software, but has the additional complexity of heavy use of
mathematics.
➢ Message processing. Handles input and output messages, processing the
text or information contained therein.
➢ Diagnostic software. Detects and isolates hardware errors in the computer
where it resides or in other hardware that can communicate with that
computer.
➢ Sensor and signal processing. Similar to that of message processing, but
requires greater processing to analyze and transform the input into a usable
data processing format.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 81
▪ Simulation. Simulates an environment, mission situation, other hardware;
inputs from these to enable a more realistic evaluation of a computer
program or hardware component.
▪ Database management. Manages the storage and access of (typically large)
groups of data. Such software can also prepare reports in user-defined
formats based on the contents of the database.
▪ Data acquisition. Receives information in real time and stores it in some form
suitable for later processing (for example, software that receives data from a
space probe and files it for later analysis).
▪ Data presentation. Formats and transforms data, as necessary, for
convenient and understandable displays for humans. Typically, such displays
would be for some screen presentation.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 82
➢ Decision and planning aids. Uses artificial intelligence techniques to provide
an expert system to evaluate data and provide additional information and
consideration for decision and policy makers.
➢ Pattern and image processing. Generates and processes computer images.
Such software may analyze terrain data and generate images based on stored
data.
➢ Computer system software. Provides services to operational computer
programs.
➢ Software development tools. Provides services to aid in the development of
software (for example, compilers, assemblers, and static and dynamic
analyzers)

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 83
4. Determining the Project Scope
▪ The project scope refers to the totality of activities to be incorporated into
the software system being tested—the range of system
requirements/specifications to be understood.
▪ The scope of new system development is different from the scope of changes
to an existing system.
▪ This step describes some of the necessary characteristics, but this list must
be expanded to encompass the requirements of the specific software system
being tested.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 84
▪ The scope of the project usually delimits the scope of the testing effort.
Consider the following issues:
▪ New systems development:
➢ What business processes are included in the software?
➢ Which business processes will be affected?
➢ Which business areas will be affected?
➢ What existing systems will interface with this system?
➢ Which existing systems will be affected?
▪ Changes to existing systems:
➢ Are the changes corrective or is new functionality being added?
➢ Is the change caused by new standards?
➢ What other systems are affected?
➢ Is regression testing needed?

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 85
5. Determining When Testing Should Occur
▪ The previous steps have identified the type of development project, the type
of software system, the project scope, and the technical risks.
▪ Using that information, the point in the development process when testing
should occur must be determined.
▪ The previous steps have identified what type of testing needs to occur, and
this step will tell when it should occur.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 86
▪ Testing can and should occur throughout the phases of a project.
▪ Examples of test activities to be performed during these phases are:
▪ A. Requirements phase activities
➢ Determine test strategy
➢ Determine adequacy of requirements
➢ Generate functional test conditions
▪ B. Design phase activities
➢ Determine consistency of design with requirements
➢ Determine adequacy of design
➢ Generate structural and functional test conditions

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 87
▪ C. Program phase activities
➢ Determine consistency with design
➢ Determine adequacy of implementation
➢ Generate structural and functional test conditions for programs/units
▪ D. Test phase activities
➢ Determine adequacy of the test plan
➢ Test application system
▪ E. Operations phase activities
➢ Place tested system into production
▪ F. Maintenance phase activities
➢ Modify and retest

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 88
6. Identifying the Software Risks
▪ Strategic risks are the high-level business risks faced by the software system;
software system risks are subsets.
▪ The purpose of decomposing the strategic risks into tactical risks is to assist
in creating the test scenarios that will address those risks.
▪ It is difficult to create test scenarios for high-level risks.
▪ Tactical risks can be categorized as follows:
➢ Structural risks
➢ Technical risks
➢ Size risks

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 89
▪ Work Papers 1, 2, and 3 provide the method for assessing the structural,
technical, and size risks, respectively.
▪ These Work Papers are to be completed by the test team interacting with the
development team and selected end users/customers.
▪ Each of the three Work Papers identifies a risk, a rating for the risk, and a
weight associated with the risk.
▪ The identification of the risk and its associated weight are supplied as part of
the tactical risk assessment process.
▪ Weight is an indication of the relative importance of each risk in relationship
to the other risks

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 90
▪ To complete Work Papers 1, 2, and 3, perform the following steps:
1. Understand the risk and the ratings provided for that risk. The higher the
predefined rating, the greater the risk. In most instances, ratings will be
between 1 and 4.
2. Determine the applicable rating for the software system being tested. Select
one of the listed ratings for each risk and place it in the Ratings column. For
example, on the Structural Risk Assessment Work Paper (1), if you
determined that the amount of time since the last major change to the
existing area of business was more than two years, you would note that a low
rating was indicated, and put a 1 in the Ratings column.
3. Calculate and accumulate the risk score. The ratings you provided in the
Ratings column should be multiplied by the weight to get a score. The score
for each work paper should then be accumulated and the total score posted
to Work Paper 4. When the three work papers have been completed, you will
have posted three scores to the Risk Score Analysis Work Paper

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 91
▪ To complete Work Paper 4, perform the following steps:
▪ 1. Calculate average risk score by risk area. To do this, total the number of risks
on Work Papers 1, 2, and 3 and divide that into the total score on Work Paper 4
to obtain an average score for the three risk areas. Do the same for the total risk
score for the software.
▪ 2. Post comparative ratings. After you have used these Work Papers a number of
times, you will develop average scores for your application systems. Take the
score totals for your application systems and rank them from high to low for each
of the three risk areas. Then determine an average for the high third of the
scores, the middle third of the scores, and the low third of the scores. This
average is the cumulative rating for your company’s applications and can be
permanently recorded on Work Paper 4. This will enable you to compare the
score of the system you are testing against comparative ratings so you can
determine whether the system you are working on is high, medium, or low risk in
each of the three risk areas and overall.
▪ 3. List at the bottom of Work Paper 4 all the risk attributes from the three
worksheets that received a high-risk rating. Identify the area (for example,
structure) and list the specific risk that was given a high rating. Then, for each of
those risks, determine the specific test concern and list it on Work Paper 4.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 92
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 93
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 94
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 95
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 96
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 97
7. Defining the System Test Plan Standard
▪ A tactical test plan must be developed to describe when and how testing will
occur.
▪ This test plan will provide background information on the software being
tested, on the test objectives and risks, as well as on the business functions
to be tested and the specific tests to be performed.
▪ The test plan is the road map you should follow when conducting testing. The
plan is then decomposed into specific tests and lower-level plans.
▪ After execution, the results are rolled up to produce a test report. A
recommended test plan standard is illustrated in following Figure, it is
consistent with most of the widely accepted published test plan standards.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 98
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 99
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 100
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 101
8. Defining the Unit Test Plan Standard
▪ During internal design, the system is divided into the components or units
that perform the detailed processing.
▪ Each of these units should have its own test plan.
▪ The plans can be as simple or as complex as the organization requires based
on its quality expectations.
▪ The importance of a unit test plan is to determine when unit testing is
complete. It is a bad idea economically to submit units that contain defects
to higher levels of testing. Thus, extra effort spent in developing unit test
plans, testing units, and ensuring that units are defect free prior to
integration testing can have a significant payback in reducing overall test
costs.
▪ Figure 3-8 presents a suggested unit test plan. This unit test plan is consistent
with the most widely accepted unit test plan standards.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 102
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 103
Converting Testing Strategy to Testing
Tactics
▪ Developing tactics is not a component of establishing a testing environment.
▪ However, understanding the tactics that will be used to implement the
strategy is important in creating work processes, selecting tools, and
ensuring that the appropriate staff is acquired and trained.
▪ The tactics address the test plans, test criteria, testing techniques, and
testing tools used in validating and verifying the software system under
development.
▪ The testing methodology cube represents a detailed work program for
testing software systems .
▪ A detailed testing work program is important to ensure that the test factors
have been adequately addressed at each phase of the systems development
life cycle.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 104
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 105
▪ The cube is a three-dimensional work program.
▪ The first and most important dimensions are the test factors that are
selected for a specific application system test strategy.
▪ If the testing process can show that the selected test factors have been
adequately handled by the application system, the test process can be
considered satisfactorily completed.
▪ In designing the test work program, there are concerns in each phase of the
life cycle that the test factors will not be achieved. While the factors are
common to the entire life cycle, the concerns vary according to the phase of
the life cycle.
▪ These concerns represent the second dimension of the cube.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 106
▪ The third dimension of the cube is the test tactics.
▪ There are criteria that, if satisfied, would assure the tester that the
application system has adequately addressed the risks. Once the test tactics
have ensured that the risks are addressed, the factors can also be considered
satisfied and the test tactics are complete.
▪ The test tactics outline the steps to be followed in conducting the tests,
together with the tools and techniques needed for each aspect of testing.
▪ The test phases are representative of the more commonly accepted system
development life cycles.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 107
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 108
Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 109
▪ The above one is a checklist that you can use to assess the items to be
addressed by the test planning process.
▪ Use this checklist as you build your test process; it will help ensure that the
test process will address the components of effective testing.
▪ A Yes response to any checklist items means that you’ve chosen an effective
process component for your test process.
▪ If you don’t want to include a particular item in your test process, insert No
for that item.
▪ Use the Comments column to clarify your response and to provide guidance
for building the test process.

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 110
References

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 111
THANK YOU

Department of Computer Science & Engineering, VNRVJIET, Hyderabad October 28, 2021 112

You might also like