ISAS SEMINAR ON
SOFTWARE TESTING
Presented by Jaikumar Sudharshan
CONTENTS 1. 2. 3. 4. 5.
Introduction Testing objectives Testing principles Classification of testing Black box testing
CONTENTS 1. 2. 3. 4. 5.
White box testing Performance testing Reliability testing Security testing Testing automation
CONTENTS 1. 2. 3. 4. 5.
Available Tools And Techniques Testing level Testing cycle Summary Queries
INTRODUCTION Software testing: Testing a software for its Correctness Completeness Security.
INTRODUCTION
SQA – Software Quality Assurance is testing a software product completely in a broader aspect. Software testing is a part of SQA.
TESTING OBJECTIVES Testing
= executing a program to find an
error Quality of a test case: probability of finding an as-yet undiscovered error. A successful test uncovers a lot of undiscovered error
TESTING PRINCIPLES All tests should be Made according to customer requirements planned long before testing begins begin in-the-small and progress toward inthe-large Exhaustive testing is not possible
Classification of testing It is broadly classified based on point of view a test engineer takes as Black-box testing White-box testing
BLACK BOX TESTING Only
inputs and output functionality are visible Inputs are given and outputs are compared against specification. No implementation details of the code are considered.
Data driven testing.
BLACK BOX TESTING Targets: To find incorrect or missing functions interface errors performance errors
WHITE BOX TESTING Contrary
to black-box testing. structure and code are visible. Implementation of the software is given importance programming language, logic, and styles are considered.
WHITE BOX TESTING Targets: To check Control-flow Looping data-flow all the nodes or paths are covered or traversed at least once.
PERFORMANCE TESTING software
should not take infinite time or infinite resource to execute. PERFORMANCE BUGS – process that causes system performance to degrade. Usage of workload to check software performance.
PERFORMANCE TESTING Targets: To check CPU cycles. Disk space. Disk access operations. Memory usage.
RELIABILITY TESTING probability
of failure-free operation of a
software. Robustness testing - degree to which it can function correctly in the presence of exceptional inputs.
RELIABILITY TESTING Targets: To check for robustness problems such as machine crashes. process hangs. abnormal termination.
SECURITY TESTING Need for security testing: Flaws in software can be exploited by hackers. With the development of the Internet, software security problems are becoming even more severe.
SECURITY TESTING Targets: To check security violations. validating the effectiveness of security measures. Simulated security attacks to find security vulnerabilities.
TESTING AUTOMATION The need: Software testing can be very costly. Automation is a good way to cut down time and cost. In order to automate the testing process we have to generate the test cases to check for complete correctness.
TESTING AUTOMATION Today
we still don't have a full-scale system that has achieved this goal. significant amount of human intervention is still needed in testing. The degree of automation remains at the automated test script level.
AVAILABLE TOOLS AND TECHNIQUES
3. 4. 5.
A lot of testing tools are available. some of them are Mothora : mutation testing tool developed at Purdue university. Can create and execute test cases, measure adequacy Determine input – output correctness, remove bugs
AVAILABLE TOOLS AND TECHNIQUES 2. 3. 5.
NuMega's Boundschecker, National's Purify Runtime checking and debugging aids. Check and protect against memory leaks and pointer problems. Ballista COTS Software Robustness Testing Harness : Full scale automated robustness testing tool.
TESTING LEVELS Acceptance
testing – system requirementperformed after testing and before implementation phase. Alpha testing - testing by an independent test team at developers' site. Beta testing – beta versions released outside the company sometimes to open public to increase feedback.
TESTING CYCLE
SUMMARY Testing
is a destructive activity. Testing cannot show the absence of defects. Testing > 30% of total effort.
SUMMARY All
tests should be traceable to customer requirements. White-box testing. Black-box testing
SUMMARY Software
quality, reliability and security are tightly coupled. Robustness, performance, reliability testing.
SUMMARY •Testing automation •Testing cycle •Testing levels
QUERIES