Software Testing Concept
-
Upload
rama-janvi -
Category
Documents
-
view
224 -
download
0
Transcript of Software Testing Concept
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 1/25
Software Testing Concept and Methodologies
Fundamentals of Software Testing
Some of you are from IT background and some of you are from Non-IT, however there is
no difference in the work that you will be doing once you are assigned to a project.
– Software/Application??
– Group of programs designed for end user using operating system and system
utilities.
– A self contained program that performs well- defined set of tasks under user
control.
– Programs, procedures, rules, and any associated documentation pertaining
to the operation of a system.
Evolution of software product
What is a software product?
A software product is made up of software packages that are separately installable. Ex.
Word, online sales application,
What are the activities involved when you think about developing a project?
Marketing
Survey is done by marketing people in the market for various product and benchmark the
product. MRS( Marketing requirement survey) is created at the end of the survey.
Software Requirement AnalysisThis is also known as feasibility study. In this phase, the development team visits the
customer and studies their system. For a few projects, technical feasibility is a significant concern: Is it technically feasible
to build a Star Wars missile defense system? Is it technically feasible to build a natural language English-to-French translator? For most projects, however, feasibility depends
on non-technical issues: Are the project’s cost and schedule assumptions realistic? Does
the project have an effective executive sponsor? Does the company have a business case
for the software when the real cost—rather than the initial blue-sky, wishful-thinking cost —is considered?
Ex- Contractor A and B made flyover at Domlur but they did not exchange/discuss their blueprints hence there is a gap of around 6 mtrs.
By the end of the feasibility study, the team furnishes a document that holds the different
specific recommendations for the candidate system. It also includes the personnel
assignments, costs, project schedule, and target dates. The requirements gathering processis intensified and focussed specially on software. To understand the nature of the
program(s) to be built, the system engineer ("analyst") must understand the information
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 2/25
domain for the software, as well as required function, behavior, performance and
interfacing. The essential purpose of this phase is to find the need and to define the
problem that needs to be solved .
System Analysis and Design
In this phase, the software development process, the software's overall structure isdefined. In terms of the client/server technology, the number of tiers needed for the
package architecture, the database design, the data structure design etc are all defined in
this phase. A software development model is created. Analysis and Design are verycrucial in the whole development cycle. Any gap in the design phase could be very
expensive to solve in the later stage of the software development. Much care is taken
during this phase. The logical system of the product is developed in this phase.
Code Generation
The design must be translated into a machine-readable form. The code generation step
performs this task. If the design is performed in a detailed manner, code generation can
be accomplished without much complication. Programming tools like Compilers,Interpreters, Debuggers are used to generate the code. Different high level programming
languages like C, C++, Pascal, Java are used for coding. With respect to the type of application, the right programming language is chosen.
Formal reviews are conducted after every 500 lines of code e.g. Code Inspection and
code walkthrough
What happen if we send this software directly to production?
What all issues we may face?
If we send the software directly to production without thorough testing, system may fail
at the initial stage itself, and even if it doesn’t there may be some functionality which was
not even thought of and tested.e.g. in online shopping system add products to cart and one page can hold description of
ten carts only and then next page appears with additional product added to cart, but it was
never tested, every time cart with less than 10 products was tested, hence testing of morethan 10 products in a cart was skipped and leads to bad impression on customer.
Will the customer again want to visit the site??
Off course NO
What else a customer expect from any application other than perfect functionality?
Look and Feel:- If the application is very dull, not very well presentable then alsocustomer would not like to visit that site again.
user-friendly:- If the application is not user friendly, instead of common language
understood by people some other language is used or it is not easy to browse it, searchingis not convenient etc then even though functionality of the application is perfect still this
application would be a failure as the end- user is not at all satisfied.
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 3/25
Testing
Once the code is generated, the software program testing begins. Different testing
methodologies are available to unravel the bugs that were committed during the previous phases. Different testing tools and methodologies are already available. Some companies
build their own testing tools that are tailor made for their own development operations.
Maintenance
Software will definitely undergo change once it is delivered to the customer. There are
many reasons for the change. Change could happen because of some unexpected inputvalues into the system. In addition, the changes in the system could directly affect the
software operations. The software should be developed to accommodate changes that
could happen during the post implementation period.
Marketing
Survey is done by marketing people for various product and benchmark
the products. Create MRS( Marketing Requirement survey)
Requirement analysis
Feasibility study (social, economical etc)
investigate the need for possible software automation in the given system.
Domain expert Create URS ( User Requirement specification)
Design
software's overall structure is defined.
Software architecture, interdependence of modules, interfaces, databaseetc is defined.
System analyst Create SRS( High level design, Low level design etc)
Code Generation
design must be translated into a machine-readable form taking input as
SRS.
Done by Team of developers.
Reviews after every 500 lines of code
Code Inspection
Code Walkthrough
Testing
New/patched build is tested by Test engineers for stability of the
application.
Maintainence Software is maintained due to changes ( unexpected values into the
system)
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 4/25
Software development life cycle
Requirement analysis:-
As we were talking about feasibility study, which also includes working in team, work
cohesively with other people engaged in the similar or other activities.
Eg. The flyover that is being constructed at Domlur airport. Contract was given to 2
contractors, they started constructing flyover without exchanging their blue prints, resultwas that once they finished their part of flyover there was a gap of almost 6 mtrs in
height. Had they have exchanged their blueprints they would have constructed it muchearlier and without any disruption and disturbance and loss of money and effort. Nowthey have to do some workaround as it has to be completed somehow…
Why these situations occur???
Majorly due to lack of proper testing.
Overconfidence
Even the software developed by best of the developers may fail.
It is not only the system that is being developed is tested but the system with which our
product is interfaced that is also tested for interfacing not the product as a whole.
System
An inter-related set of components, with identifiable boundaries, working together for
some purpose.
Analysis
The process of identifying requirements, current problems, constraints ,Opportunities for improvement , timelines and Resources costs .
OperationalTesting
RequirementAnalysis
High leveldesign
DetailedSpecifications
Coding
Unit Testing
IntegrationTesting
Review/Test
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 5/25
Design
The business of finding a way to meet the functional requirements within the specifiedconstraints using the available technology
Software Development life cyclePhases or stages of a project from inception through completion and delivery of the final
product…… and maintenance too!
As per IEEE Standards, SDLC broadly consist of 3 phases:-
• Definition
• Development
• Maintainence
Definition Phase
– Focuses on WHAT
–
What information to be processed?– What functions and performances are desired?
– What interfaces are to be established?
– What design constraints exists?
– What validation criteria are required to define a success system?
Development Phase
– Focuses on
– How the database should be designed ?
– How the software architecture to be designed ?
– How the design will be translated in to a code ?
–
How testing will be performed ?
Three specific steps in Development Phase are:-
– a. Design
– b. Coding
– c. Testing (ignored due to lack of time, due time to market, additional cost
involved, lack of testing requirement understanding etc.) )
Maintenance Phase
“Maintainability is defined as the ease with which software can be understood, corrected,adapted and enhanced”
Maintenance phase focuses on CHANGE that is associated with Error correction
Adaptation required as the software environment evolves
Enhancements brought about by changing customer requirements
Reengineering carried out for performance improvements
SDLC Phases
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 6/25
• Identify Problems/Objectives
• Determine information Requirements
• Analyze System needs
• Design the recommended system
• Develop and Document software
• Testing the System• Implementation and maintaining the system
SDLC Phases : Requirement Identification & Analysis Phase
• Request for Proposal
• Proposal
• Negotiation
• Contract
• User Requirement Specification
• Software Requirement Specification
Software Requirement Specifications
IEEE 830 :
Software Requirement Specification is a means of
translating the ideas in the minds of the clients(the inputs)into a set of formal document (the output) of the
requirement phase
The Role
Bridge the communication gap between the client
the user and the developer
SDLC Phases- Design
High Level Design
HLD Document contains items in a macro level
• List of modules and a brief description of each
• Brief functionality of each module
• Interface relationship among modules
• Dependencies between modules
• Database tables identified with key elements
• Overall architecture diagrams along with technology details
Low Level Design
• Detailed functional logic of the module, in pseudo code
• Database tables, with all elements, including their type and size
• All interface details
• All dependency issues
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 7/25
• Error MSG listing
• Complete input and output format of a module
HLD and LLD phases put together called Design phase
SDLC Phases`Code Generation
o design must be translated into a machine-readable form taking input as
SRS.
o Done by Team of developers.
o Reviews after every 500 lines of code
Code Inspection
Code WalkthroughTesting
New/patched build is tested by Test engineers for stability of the application.
MaintainenceSoftware is maintained due to changes ( unexpected values into the system)
Get Started with Testing !!!!!!!
– What is testing?
– We Test !! We Test !! Why?
– Testing Defined
– Is Product Successful
– Product Success criteria
– Testability
–Test factors
As we have talked about that we cannot launch any product successfully without testing.Even the product designed by best of the best developers needs to be tested and verified
under various circumstances. The U.S. space shuttle Columbia with a seven-member
crew, disintegrated in flames over central Texas shortly before it was scheduled to land atCape Canaversal in Florida. On February 1, 2003, at an altitude of 63 kilometers and a
velocity of 20,000 km/hr, Columbia disintegrated killing 7 astronauts.
Columbia was designed and developed by most of the intelligent people employed in NASA. And the product was tested very well before its launch, still it failed leading to
disaster and taking lives of 7 best astronauts that includes Kalpana Chawla from India.
The product failed not because it was not tested well but it could have been tested moreto avoid this disaster.
Hence testing is very vital in all application/products however more aggressive where
lives are involved for e.g medical equipments, space shuttles etc.
What is Testing?
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 8/25
• process used to help identify the correctness, completeness and quality of
developed computer software.
• Find out difference between actual and expected behavior.
• The process of exercising software to verify that it satisfies specified requirements
of end user and to detect errors
• The process of revealing that an artifact fails to satisfy a set of requirements• What Is Software Testing?
• Software testing is a process used to help identify the correctness, completeness
and quality of developed computer software. With that in mind, testing can never completely establish the correctness of computer software. Only the process of
formal verification can prove that there are no defects.
• What is the expected behavior of the system? Testing is to check if there is nodifference between actual output and expected output.
• It is to put software under various test to check that it satisfies some requirements
of end user/Client and hence detecting errors if it fails to satisfy a set of requirements.
What Is Software Testing?
Software testing is a process used to help identify the correctness, completeness and
quality of developed computer software. With that in mind, testing can never completely
establish the correctness of computer software. Only the process of formal verificationcan prove that there are no defects.
What is the expected behavior of the system? Testing is to check if there is no difference
between actual output and expected output.It is to put software under various test to check that it satisfies some requirements of end
user/Client and hence detecting errors if it fails to satisfy a set of requirements.
Testing is to establish confidence that a system does what it is supposed to do and even if it “misbehaves” it should not crash, it should do it decently.It is to confirm that system performs its intended functions correctly, moreover testing
does not guarantee bug free product and good testing cannot be a substitute for good
programming ex. If I do a very poor programming assuming that if there are any bugs mytesters would find it and I would fix them later. This idea would take more time plus
more effort in debugging those many number of bugs and in all the cost would be much
higher than it would have been if the code has been developed effectively.Testing is not a debugging or preventing process, it is only to ensure that within an
application I have found/detect these many number of bugs and rest debugging/fixing of
bugs is done by developers.
It improves quality and identify risks as well.
– We Test !! We Test !! Why
• Detect programming errors - programmers, like anyone else, can make mistakes.
• To catch bugs/defect/errors.
• To check program against specifications
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 9/25
• Cost of debugging is higher after release
• Client/end user should not find bugs
• Some bugs are easier to find in testing
• Challenge to release a bug-free product.
• Verifying Documentation.
• To get adequate trust and confidence on the product.• To meet organizational goals
• Like meeting requirements, satisfied customers, improved market share, Zero
Defects etc
• Since the software can perform 100000 correct operations per second, it has the
same ability to perform 100000 wrong operations per second, if not tested
properly.
• Ensuring that system is ready for use
• Understanding limits of performance.
• Learning what a system is not able to do
•
Evaluating capabilities of system
As we were discussing about the need of software testing hence we test our software to :-
Detect programming errors:- Even though we have best developers developing the
product still there may be flaws somewhere due to misconception, due to lack of understanding in integrating modules of 2 great developers. Most of the time developers
think that their code is perfect, it cannot have bugs and that’s where the problem is. They
think that finding bugs in their code means that some one is proving them inefficient.Hence we test code not to prove a developer inefficient but to find bug in code not in
developer.
Testing at earlier stage is much cheaper than testing at later stage.If Client find bugs which were uncovered earlier then we loses credibility and may lose business as well.
There are several functionality related that occur in real life scenarios related only so
while testing at customer site during beta testing we can uncover these defects there andthen.
To release a bug free product seems to be a dream yet to be fulfilled, hence it is a real
challenge to release a product that is bug-free.
Testing defined !!
– Def-1
Process of establishing confidence that a program or system does what it issupposed to.
– Def-2
Process of exercising or evaluating a system or system component by manual
or automated means to verify that it satisfies specified requirement (IEEE 83a)– Def-3
Testing is a process of executing a program with the intent of finding errors(Myers)
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 10/25
– Def-4
Testing is any activity aimed at evaluating an attribute or capability of a
program or system and determining that it meets its required results.
Testing is defined in a number of ways by various veterans.
Of course, none of these definitions claims that testing shows that software is free fromdefects. Testing can show the presence, but not the absence of problems.
Is Product successful ???
• When Client/Customer perceives it as value-added to his business.
• Timeliness of delivery of the product within budget and scope.
• The business perceives that the system satisfactorily addresses the true businessgoals.
• End user feels that look, feel, and navigation are easy.
• Team is prepared to support and maintain the delivered product.
What is the criteria for a successful product?
A product is successful only when it is adding any value to customer business, only if it
increases its revenue, credibility in the market and so on.To develop a product we set a target time for completion and released to customer. If we
can stick to that time without increasing budget and scope of the product then the product
is successful.Using the developed product true business goals should be met else the product
developed can be a failure leading to finance loss, customer satisfaction loss, and loss of
business further from that client as well as associates.
Look and feel should be accepted by user who will be finally using that product.
Product Success Criteria
• Functionality
• Usability
• Likeability
• Configurability
• Maintainability
• Interoperability
•
Product Success Criteria (PSC) so as to address the following. These criteria, oncearrived at the initial stage of the project, shall be the basis for strategy and planning.
Functionality: The business perceives that the system satisfactorily addresses the true business goals. The system is functionally compliant. The system was delivered on time
and within budget and scope.
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 11/25
Usability: The user perceives the system as value-added to his or her job and is easy to
learn and use.
Likeability: End user feels that look, feel, and navigation are easy.
Configurability: All changes to project scope, schedule, and budget were handled under awell-defined and visible change control process.
Maintainability: The operations staff is prepared to maintain and support the delivered
system.
Interoperability: The organizational interoperability groups perceive that the solution is
consistent with interoperability and reusability standards and goals.
Testability
• Operability
•Controllability
• Observability
• Understandability
• Suitability
• Stability
• Accessibility
• Navigability
• Editorial Continuity
• Scalability
• Context Sensitivity
• Structural Continuity
Testability and Product Success Criteria
Testability is the possible extent to which the software product under consideration can be evaluated to determine-
Operability: The better it works; the more efficiently it can be tested.
Controllability: The better we can control it, the more the Software Testing can be
automated & optimized
Observability: What you see is what you test.
Simplicity: The less there is to test, the more quickly we can test.
Understandability: The more information we have, the smarter we will test.
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 12/25
Suitability: The more we know about the intended use of the system, the better we can
organize our Software Testing to find important bugs
Stability: The fewer the changes, the fewer the disruptions to Software Testing
Accessibility: Web site shall be accessible when incorporating frames, JavaScript,Cascading Style Sheets, Dynamic HTML, and multimedia technology such as QuickTime
or Flash.
Navigability: Site's architecture is firmly represented by the visually designed interface
for ease of motion within the site.
Editorial Continuity: Ensure that users can easily move from page to page in a multi- page section within your web site and still retain a sense of location.
Scalability: Modular interface design structure to support major edits and visual design
overhauls.
Context Sensitivity: Interface reinforcing the content of the web site and enhances theoverall brand presentation strategy.
Structural Continuity: Ensuring that users are able to understand and utilize every
component of the navigational system in order to move throughout the web site.Software Testing shall be aligned with software project and shall meet
Test Factors
Functionality (exterior
quality)
Engineering (interior
quality)
Adaptability (future
quality)
Correctness Efficiency Flexibility
Reliability Testability Reusability
Usability Documentation Maintainability
Integrity Structure
Correctness
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 13/25
To claim that software is correct, we have to assure that the data entered, processed, and
outputted is accurate and complete. We can achieve this through controlling data element
across the entire transaction. This requires that:• Well defined Functional specifications.
• Design conformance with user requirements.
• Program conformance to design specifications.• Testing to ensure requirements are properly implemented.
• Availability of right programs and data in the released system.
• Proper management change requests
Reliability
This will ensure that the system will perform its intended function with the required
precision over an extended period of time. This shall ensure:• Establishing the system in operational environment to meet the expected level of
accuracy and completeness.
• Designing and implementing process tolerance through the data integrity controls.
• Performing manual, regression, and functional tests to ensure proper functioningof the data integrity controls.
• Verification of the installation for system accuracy and completeness.• Maintaining accuracy of system requirements and also, system updation.
Ease of Use
This will address effort required to learn, operate, prepare input for, and interpret outputfrom the system. This test factor deals with the how quickly and easily the people
interfacing with the application system will learn to use it. The points addressed here are:
• Defining the usability specifications for the application system.• Design to optimize the usability related requirements
• Conformance of programs to the design in order to optimize the ease of use.
• Testing to ensure that the application is easy to use.• Proper presentation and communication of usability instructions to appropriate
individuals.
• Preserving usability as and when the system is maintained.
File integrity
This ensures appropriate storage and maintenance of data. This requires that:
• Defined file integrity requirements.• Controls in design that ensure the integrity of the file.
• Proper implementation of specified file integrity controls.
• Proper testing to ensure proper functioning of the file integrity.• Verification of file integrity to ensure delivery of right riles prior to system
release.
• Preserving integrity of the files during the maintenance phase.
Maintainability
This factor addresses effort required to locate and fix an error in an operational system so
that system operates smoothly. This addresses:
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 14/25
• Specification of the desired level of maintainability of the system.
• Development of design and program to achieve the desired level of
maintainability.• Inspection of system to ensure that it is maintainable.
• Verifying system documentation for completeness.
• Maintainability is preserved as the system is updated.
Software Testing Life Cycle
The development process must be iterative-- let’s see how that works
The traditional development process involves a long building phase after you’vespecifiedd the application. After the app is built, you move to a testing phase where you
find bugs and fix them. Many people view testing as a “washing machine” that you clean
your code with at the end of the development phase.
– STLC-V Model
–
The responsibility for testing• Unit Test is the responsibility of the Development Team
• System Testing is the responsibility of SQA
• User Acceptance Testing is the Responsibility of the User Representatives Team• Technology Compliance Testing is the responsibility of the Systems Installation
& Support Group.
Requirement
Requirement
Req. Review
DesignDesign
Design Review
CodeCode
Code Review
Develop UnitTest
Develop UnitTest
Review Unit Test
Execute Unit TestExecute Unit Test
Execute Integrationtests
Execute Integrationtests
Execute SystemTests
Execute SystemTests
Develop integrationTests
Develop integrationTests
Review Integration Tests
Develop AcceptanceTests
Develop AcceptanceTests
Review Acceptance tests
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 15/25
STLC:- Activities
Scope/Requirement
Base line inventory
Acceptance criteria
Schedule Prioritization
Test references
Sign off req
Plan
Approach
Process and Tools
Methodology
Delivery Models
Risk Plan
Project Overflow
Quality Objectives
Configuration Plan
Design
Test Design
Specifications
Test Scenarios
Test Cases
Test Data
Tool Development
Execution
Implement Stubs
Test Data Feeders
Batch Processes
Execute Testing
Collate Test Data
Identify Bugs
Defect Analysis Check Unexpected Behavior
Identify defective application areas
Identify erroneous test data
Identify defect trends/patterns
Test Approach
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 16/25
Test Process :- The project under development or incorporation of accepted changes in
the project or project under maintenance which implemented changes, use the testing
process. Based on the nature of the project, adequate testing shall be arrived at the project level.
The Test Approach• sets the scope of system testing
• the overall strategy to be adopted
• the activities to be completed• the general resources required
• the methods and processes to be used to test the release.
• details the activities, dependencies and effort required to conduct the
System Test
Test approach will be based on the objectives set for testing
Test approach will detail the way the testing to be carried out
Types of testing to be done viz Unit, Integration and system testing
the general resources required
The method of testing viz Black–box, White-box etc.,
Details of any automated testing to be done
Details the activities, dependencies and effort required to conduct the System
Test
Software Testing Life Cycle- Phases
1. Requirement Analysis2. Prepare Test Plan
3. Test Case Designing
4. Test Case Execution5. Bug Reporting, Analysis and Regression testing
6. Inspection and release
7. Client acceptance and support during acceptance8. Test Summary analysis
Requirement Analysis
Objective
The objective of Requirement Analysis is to
ensure software quality by eradicating errors as earlier as
possible in the developement process, as the errors
noticed at the end of the software life cycle are more
costly compared to that of early ones, and there by
validating each of the Outputs.
The objective can be acheived by three basic issues:
• Correctness
• Completeness
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 17/25
• Consistency
Type of Requirement
• Functional
• Data
• Look and Feel• Usability
• Performance
• Operational
• Maintainability
• Security
• Scalability
• Etc…….
Evaluating Requirements
What Constitutes a good Requirement?
Clear:-
Unambiguous terminology
Concise:-
no unnecessary narrative or non-relevant facts
Consistent
requirements that are similar are stated in similar terms. Requirements donot conflict with each other .
Complete
all functionality needed to satisfy the goals of the system is specified to alevel of detail sufficient for design to take place.
Requirement Analysis
Difficulties in conducting requirement analysis
Analyst not prepared
Customer has no time/interest
Incorrect customer personnel involved
Insufficient time allotted in project schedule
Prepare Test Plan- Activities
• Scope Analysis of project
• Document product purpose/definition
• Prepare product requirement document
• Develop risk assessment criteria
• Identify acceptance criteria
• Document Testing Strategies.
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 18/25
• Define problem - reporting procedures
• Prepare Master Test Plan
Design-Activities
• Setup test environment
• Design Test Cases: Requirements-based and Code-based Test Cases• Analyze if automation of any test cases is needed
Execution- Activities
• Initial Testing, Detect and log Bugs
• Retesting after bug fixes
• Final Testing
• Implementation
• Setup database to track components of the automated testing system, i.e. reusable
modules
Bug Reporting, Analysis, and Regressing Testing
Activities
Detect Bugs by executing test cases
Bug Reporting
Analyze the Error/Defect/Bug
Debugging the system
Regression testing
Inspection and Release-Activities
• Maintaining configuration of related work products• Final Review of Testing
• Metrics to measure improvement
• Replication of Product
• Product Delivery Records
• Evaluate Test Effectiveness
Client Acceptance
• Software Installation
• Provide Support during Acceptance Testing
• Analyze and Address the Error/Defect/Bug
• Track Changes and Maintenance
• Final Testing and Implementation
• Submission, client Sign-off
• Update respective Process
Support during Acceptance-Activities
• Pre-Acceptance Test Support
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 19/25
• Installing the software on the client’s environment
• Providing training for using the software or maintaining the software
• Providing hot-fixes as and when required to make testing activity to continue
• Post Acceptance Test Support
• Bug Fixing
During acceptance lets see what do we mean by hot-Fixes. In acceptance phase product is
installed and executed in users environment. There may be some failure to software
might be due to some configuration files mismatch or some other interface.When Bill Gates was giving Live demo for Microsoft windows new version suddenly a
Unwanted popup appears and whole world was watching this demo, Bill did some
changes to config files and it worked fine. This is termed as HOT_FIX( to make smallchanges to software to continue testing activity)
Test Summary Analysis- Requirement
• Quantitative measurement and Analysis of Test Summary
• Evaluate Test Effectiveness• Test Reporting
o Report Faults – (off-site testing)
o Report Faults – (on-site/ field testing)
Testing Life Cycle - Team Structure
• An effective testing team includes a mixture of members who has
o Testing expertise
o Tools expertise
o Database expertise
o
Domain/Technology expertise
The testing team must be properly structured, with defined roles andresponsibilities that allow the testers to perform their functions with minimal
overlap.
There should not be any uncertainty regarding which team member should perform which duties.
The test manager will be facilitating any resources required for the testing team.
Testing Life Cycle - Roles & Responsibilities
Clear Communication protocol should be defined with in the testing team to
ensure proper understanding of roles and responsibilities.
The roles chart should contain both on-site and off-shore team members.
Test Manager
Single point contact between Wipro onsite and offshore team
Prepare the project plan
Test Management
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 20/25
Test Planning
Interact with Wipro onsite lead, Client QA manager
Team management
Work allocation to the team
Test coverage analysis
Co-ordination with onsite for issue resolution. Monitoring the deliverables
Verify readiness of the product for release through release review
Obtain customer acceptance on the deliverables
Performing risk analysis when required
Reviews and status reporting
Authorize intermediate deliverables and patch releases to customer.
Test Lead
Resolves technical issues for the product group
Provides direction to the team members
Performs activities for the respective product group
Review and Approve of Test Plan / Test cases
Review Test Script / Code
Approve completion of Integration testing
Conduct System / Regression tests
Ensure tests are conducted as per plan
Reports status to the Offshore Test Manager
Test Engineer
Development of Test cases and Scripts
Test Execution
Result capturing and analysing
Defect Reporting and Status reporting
– Software Testing Phases
– Software Testing Phases
– Unit Testing
– Functional Testing
–Integration Testing
– System Testing
– Acceptance Testing
– Interface Testing
– Regression Testing
– Special Testing
– Unit Testing
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 21/25
– Unit Testing is a verification effort on the smallest unit of the software
design the software component or module.
– Why Unit Testing?
– Testing early for each component and prevent the defect from being carried
forward to next stage.– To ensure that the design specifications have been correctly implemented.
– Approach
– Uses the component-level design description as a guide.
– Important control paths are tested to uncover errors within the boundary of
the module.
– Unit testing is white-box oriented, and this can be conducted in parallel for
multiple components.
– the relative complexity of tests and uncovered errors are limited by the
constraints scope established for unit testing.– Unit Testing
– module interfaces are tested to ensure that the information properly flows
into and out of the program unit under test.
– The local data structure is examined to ensure that data stored temporarily
maintains its integrity during all steps in an algorithm’s execution.
– Boundary conditions are executed to ensure that the module operates
properly at boundaries established to limit or restrict processing.
– All independent paths (basis paths) through the control structure are
exercised to ensure that all statements in a module have been executed at
least once
–
All error handling paths are tested.
– Unit testing to uncover errors like
• Comparison of different data types
• Incorrect logical operators or precedence
• Expectation of equality when precision errors makes equality unlikely.
• Incorrect comparison of variables
• Improper or nonexistent loop termination
• Failure to exit when divergent iteration is encountered.
• Improperly modified loop variables, etc.
– Some of the Computational Errors uncovered while Unit Testing
• Misunderstood or incorrect arithmetic precedence
• Mixed mode operations
• Incorrect initialization
• Precision inaccuracy
• Incorrect symbolic representation of an expression
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 22/25
– Potential errors while error handling is evaluated
• Error description is unintelligible
• Error notes does not correspond to error encountered
• Error condition causes system intervention prior to error handling
• Exception- condition processing is incorrect• Error description does not provide enough information to assist in the
location of the cause of error.
– Unit Testing Procedure
• Unit testing is normally considered as an adjunct to the coding step.
• Unit test case design begins ,once the component level design has been
developed, reviewed and verified.
• A review of design information provides guidance for establishing test cases
that are likely to uncover errors.
• Each test case should be coupled with a set of expected results.
– Unit Test Steps
• The Unit test criteria, the Unit test plan, and the test case specifications are
defined.
• A code walkthrough for all new or changed programs or modules is
conducted.
• Unit Test data is created, program or module testing is performed, and a
Unit test report is written.
• Sign-offs to integration testing must be obtained, Sign-off can be provided
by the lead programmer, project coordinator, or project administrator.
Step1. Unit test criteria is a narrative describing what will be done to verify that
the program code operates properly and according to specifications.
The unit test plan is doc that defines the process for testing the code, including
descriptions and procedures for all tests and evaluations.
These above items and test specifications are prepared before the program or
module is coded.
Step2. Code walk through is done to review to the requirements, design, and
coding before the testing to ensure compliance to the IS standards.
Step3. Unit test data are specific values or transactions that are created for the
purpose of testing the code.Test data should be meticulously prepared so that a
full range of data values and combinations are considered, and all instructionpaths within the module are executed.
The unit test report records the results and findings of the test and provides the
basis for determining if the unit is ready for system testing.
– Unit Testing Example
– A Sample Source code
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 23/25
– Eg: login.java check for syntactical error,
variable usages, Coverage observed.
– Functional Testing
– Functional Testing is a kind of black box testing because a program’s
internal structure is not considered.–
– Give the inputs, check the outputs without concentrating on how the
operations are performed by the system.
–
– When black box testing is conducted , the SRS plays a major role and the
functionality is given the utmost importance.
Select test data to exercise each aspect of functionality identified in the
program’s requirements specifications
Functional Testing of word processor calls for using each required feature of of the program at least once. Such features include editing, formatting, search etc
– Functional Testing
– Focus on system functions
– developed from the requirements
– Behavior testing
– Should
– know expected results
– test both valid and invalid input
– Unit test cases can be reused
–
New end user oriented test cases have to be developed as well.
• Tests module against functional and non-functional specifications
• Specification used to derive test cases
• Do not look at module code (except to debug)
• Attempt to force behavior that doesn't match specification
• Problem – how to select inputs that have a high probability of causing error
– User Interface
• This stage will also include Validation Testing
• which is intensive testing of the new Front end
• fields and screens. Windows GUI Standards;• valid, invalid and limit data input; screen & field
• look and appearance, and overall consistency
• with the rest of the application.
Vertical First Testing: - When the complete set of functionality is taken for one
module and tested it is called Vertical First testing.
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 24/25
Horizontal First Testing : - If a similar function is taken across all the modules
and it is tested, it is called horizontal-first testing.
– Integration testing
•testing with the components put together.
– Why integration Testing ?
• Data can be lost across an interface.
• One module can have an inadvertent, adverse effect on another.
• Sub-functions, when combined, may not produce the desired major function.
• Individually acceptable imprecision may be magnified to unacceptable levels.
• Global data structures can create problems, and so on…
–Types of approaches- Top-Down
–
is an incremental approach to testing of the program structure. Modules are
integrated by moving downward through the control hierarchy, beginning with
the main control module, this could be done as depth- first or breadth-first
manner.
–Type of Approaches- Bottom-Up
A
x
1 2
zy
8/3/2019 Software Testing Concept
http://slidepdf.com/reader/full/software-testing-concept 25/25
as the name implies, begins construction and testing with atomic modules i.e., fromthe components at the lowest levels in the program structure
– Integration testing- Example
E.g.: Login.java and ConnectionPool.java
Login class calls the ConnectionPool object , Integration testing identifies
errors not observed while code Debugging or Reviews.
A
x
1 2
zy