Testing & Release Get started with Testing? -What is Testing? -We Test!!We Test!!Why? -Testing Defined. -Is product Sucessful. -Product Success Criteria. -Testability. -Test Factors.
Testing & Release
Get started with Testing?
-What is Testing?
-We Test!!We Test!!Why?
-Testing Defined.
-Is product Sucessful.
-Product Success Criteria.
-Testability.
-Test Factors.
What is testing?
Process used to help identify the correctness,completeness
and quality of developed computer system.
Find out difference between actual and expected behaviour.
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 Testing(cont..)?
Establishing conifidence that a system does what it is supposed
to do.
Confirming that a system performs its intended functions correctly.
Does not guarantee bugfree product.
No substitute for good programming.
Can't prevent/debug bugs,only detect.
Offer advise on product quality and risks.
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.
Cost of debugging is higher
after release.
We Test!!We Test!!Why
client/end user should not find bugs.
Some bugs are easier to find in testing.
Challenge to release a bug-free product.
Verifying documentations.
To get adequate trust and conifidence on the product.
To meet organizational goals.
-like meeting requirements,satisfied customers,improved market
share,zero Defects etc.
We Test!!We Test!!Why
Ensuring that system is ready for use.
Understanding limits of performance.
Learing what a system is not able to do.
Evaluating capabilities of system.
Testing Defined
Def-1
Process of establishing confidence that a program or system
does what it is supposed 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.
Testing Defined
Def-3
Testing is a process of executing a program with the intent
of finding errors.
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.
Is product Successful???
When client/customer perceives it as value-added to his business.
Timelines of delivery of the product within budget and scope.
The business perceives that the system satisfactorily addresses
the true business goals.
End user feels that look,feel,and navigation are easy.
Team is prepared to support and maintain the delivered product.
Product success criteria
Functionality.
Usability.
Likeability.
Configuability.
Maintainability.
interoperability.
Testability
Operability.
Controllability.
Obserbability.
Understandability.
Suitability.
Accessibility.
Navigability.
Editorial continuity.
Testability(cont..)
Scalability.
Context Sensitivity.
Structural continuity.
Test Factors
Functionality(exterior
Quality)
-correctness.
-Reliability.
-usability.
-integrity.
Testing Factors(cont..)
Engineering (interior
Quality)
-Efficiency.
-Testability.
-Documentation.
-Structure.
Testing factor(cont..)
Adaptability(future
Quality)
-Flexability.
-Reusability.
-Maintainability.
Software Testing life Cycle
Conventional Testing Process
Buliddesignspec Test & fix
Here Testing was happening only towards the end of the life cycle.
Software development life cycle
Requirment analysis
Detailedspecifications
OperationalTesting
IntegrationTesting
Unit Testing
Coding
High leveldesign
Review test
SDLC-v Model
Code review
Develop integration test
Design Review
design
Review acceptance Tests
Develop acceptance Tests
Req Review
Requirement
Review unit test
Develop unit test
Review integration test
code
Execute system test
Execute intergations test
Execute unit test
STLC:-Activities
Scope Requirements
-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 Objectivies.
Configurations 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 applications area.
Identify erroneous test data.
Identify defects trends/Patterns.
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(cont..)
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 ect.,
Details of any automated testing to be done.
Details the activities,dependencies and effort required to conduct
the system test.
Requirements Analysis
The Objective can be acheived by three basic issuses:
-Correctness.
-Completeness.
-Consistency.
Evaluating Requirements What constitutes a good Requirements?
-Clear
Unambiguous terminology.
-concise
no unnecessary narrative or non-relevant facts.
-consistent
Requirements that are similar are stated in similar terms.
Requirements do not conflict with each other.
-Complete
All functionality needed to satisfy the goals of the system.
Requirement analysis
Difficulties in conducting Requirements analysis.
-Analyst not prepared.
-Customer has no time/interest.
-Incorrect Customer personnel involved.
-Insufficient time allotted in project schedule.
Software testing phase
Unit testing.
Functional Testing.
Integration Testing.
System Testing.
Acceptance Testing.
Interface Testing.
Regressive Testing.
Special Testing.
Unit Testing
Unit testing is a verification
effort on the smallest unit of the
Software design the software
component or module.
Why unit testing?
Test 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.
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.
Functional testing(cont..) 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 causes test cases have to be
developed as well.
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
functions.
Individually acceptable imprecision may be magnified to
unacceptable levels.
Global data structures can create problems and so on..
System Testing
Purpose
Test the entire system as a whole.
Assumptions
completed
-Unit testing.
-functional testing.
-Integrations testing.
Regressive Testing
”selective retesting to detect faults introduced during modifications
of a system or system or system component,
”..a testing process which is applied after a program is modified.”
Bug reporting,analysis,and regressive testing
Activities
-Detect Bugs by executing test cases.
-Bug Reporting.
-Analyze the error/Defect/bug.
-Debugging the system.
-Regressive 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 installations.
Provide support during acceptance Testing.
Analyze and address the error/Defect/Bug.
Track Changes and Maintenance.
Final testing and implementations.
Submission,client sign-off.
Update respective process.