SOFTWARE TESTING: TECHNIQUES & TYPES



Similar documents
An Analysis on Objectives, Importance and Types of Software Testing

Software Testing Interview Questions

A Brief Overview of Software Testing Techniques and Metrics

Basic Testing Concepts and Terminology

CS 451 Software Engineering Winter 2009


Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Levels of Software Testing. Functional Testing

Software testing. Objectives

Testing Introduction. IEEE Definitions

Oracle Insurance Policy Administration System Quality Assurance Testing Methodology. An Oracle White Paper August 2008

Presentation: 1.1 Introduction to Software Testing

Software Testing Strategies and Techniques

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Test-Driven Development Issues for Right to Left Language Applications

TEST PLAN Issue Date: <dd/mm/yyyy> Revision Date: <dd/mm/yyyy>

Classification of Software Testing Tools Based on the Software Testing Methods

Software Engineering. How does software fail? Terminology CS / COE 1530

STUDY OF DEFECTS, TESTCASES AND TESTING CHALLENGES IN WEBSITE PROJECTS USING MANUAL AND AUTOMATED TECHNIQUES

CSTE Mock Test - Part III Questions Along with Answers

A Survey of Effective and Efficient Software Testing

Identification and Analysis of Combined Quality Assurance Approaches

Benefits of Test Automation for Agile Testing

Software Testing Tutorial

Introduction to Software Engineering. 8. Software Quality

Introduction to Automated Testing

CSTE Mock Test - Part I - Questions Along with Answers

Standard Glossary of Terms Used in Software Testing. Version 3.01

Sample Exam Syllabus

Software Quality. Software Quality Assurance and Software Reuse. Three Important Points. Quality Factors

Chapter 8 Software Testing

Quality Management. Lecture 12 Software quality management

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Basic Unix/Linux 1. Software Testing Interview Prep

Keywords: SQA,Black Box Testing( BBT), White Box testing(wbt).

Chapter 11: Integration- and System Testing

How To Improve Software Quality

White Papers: Unit Testing. Unit Testing

Science and Practice of Software Testing

Chapter 11, Testing, Part 2: Integration and System Testing

TESTING: FIRST STEP TOWARDS SOFTWARE QUALITY

Testing Tools Content (Manual with Selenium) Levels of Testing

GUIDELINES FOR APPLICATION SOFTWARE TESTING

Cloud Testing: A Review Article

The ROI of Test Automation

SECTION 4 TESTING & QUALITY CONTROL

Standard Glossary of Terms Used in Software Testing. Version 3.01

How To Write Software

Improvised Software Testing Tool

Smarter Balanced Assessment Consortium. Recommendation

FSW QA Testing Levels Definitions

Procedure for Assessment of System and Software

An Increase in Software Testing Robustness: Enhancing the Software Development Standard for Space Systems

Essentials of the Quality Assurance Practice Principles of Testing Test Documentation Techniques. Target Audience: Prerequisites:

Latest Research and Development on Software Testing Techniques and Tools

Regression Testing Based on Comparing Fault Detection by multi criteria before prioritization and after prioritization

Design and Implementation of Life Insurance Assets Management methods using Create Insurance System

Advancements in the V-Model

Effective Software Verification for Medical Devices

International Software Test Institute

ABSTRACT. would end the use of the hefty 1.5-kg ticket racks carried by KSRTC conductors. It would also end the

Software quality engineering. Quality assurance. Testing

CHAPTER 20 TESING WEB APPLICATIONS. Overview

Best Practices for Improving the Quality and Speed of Your Agile Testing

Effective Software Security Management

Quality Assurance - Karthik

Darshan Institute of Engineering & Technology Unit : 7

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process

IEEE ComputerSociety 1 Software and Systems Engineering Vocabulary

An integrated life cycle quality model for general public market software products

SOFTWARE TESTING - QUICK GUIDE SOFTWARE TESTING - OVERVIEW

Software Quality Testing Course Material

Optimization of Software Quality using Management and Technical Review Techniques

Chapter 11: Integrationand System Testing

SOFTWARE SECURITY TESTING A PERTINENT FRAMEWORK

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Software Engineering I: Software Technology WS 2008/09. Integration Testing and System Testing

CS314: Course Summary

Testing and Scrum. Agenda. Fall 2007 Scrum Gathering

Performance Testing. on Production System

SOFTWARE REQUIREMENTS

MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

Software Testing Certifications

Group18-CUCE2012. Mr. Mobile Project. Software Testing Plan (STP) Version: 4.0. CM Identifier: G18_SE004

Information Systems Development Process (Software Development Life Cycle)

Defining Quality Workbook. <Program/Project/Work Name> Quality Definition

Software Engineering Compiled By: Roshani Ghimire Page 1

AUTOMATED TESTING and SPI. Brian Lynch

Manual Testing Online Training Concepts : Software Testing Manual Module 1: Testing fundamentals. Introduction:

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

The Theory of Software Testing

Analysis of Object Oriented Software by Using Software Modularization Matrix

Karunya University Dept. of Information Technology

Contents. -Testing as a Services - TaaS 4. -Staffing Strategies 4. -Testing as a Managed Services - TaaMS 5. -Services 6.

Software Testing. Quality & Testing. Software Testing

Evaluation of the Iceland State Financial and Human Resource System REPORT OF THE INDIVIDUAL EVALUATOR. Annex 2 SYSTEM AND SOFTWARE QUALITY

Software Testing Lifecycle

Software Engineering Question Bank

A SURVEY AND CLASSIFICATION OF SOFTWARE TESTING TOOLS

Transcription:

SOFTWARE TESTING: TECHNIQUES & TYPES Ravinder Yadav, Aakash Goyal, Surender Kumar Rawal Dronacharya College Of Engineering Abstract Software testing is the process of testing the software product.software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.software testing is a specialised discipline requiring unique skills.software testing provides a means to reduce errors,cut maintenance and overall software costs.numerous software development and testing methodologies,tools, and techniques have emerged over the last few decades promising to enhance software quality.one of the major problems within software testing area is how to get a suitable set of cases to test a software system.this set should assure maximum effectiveness with the least possible number of test cases.during the software development life cycle,testing is highly needed to assure the quality of the software process and product.for many years, researchers and practitioners came-up with a variety of software tools to automate the testing process.in this paper,we will classify a set of testing techniques and types. I. INTRODUCTION Software testing is the process of testing the software product. Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.software testing is a specialised discipline requiring unique skills.software testing provides a means to reduce errors, cut maintenance and overall software costs.software testing is a technique aimed at evaluating an attribute or capability of a program or product and determining that it meets its quality. Software testing is also used to test the software for other software quality factors like reliability, usability, integrity, security, capability, efficiency, portability, maintainability, compatibility etc.the testing of software is an important means of assessing the software to determine its quality II. NEED FOR SOFTWARE TESTING Software development involves developing software against a set of requirements.software testing is needed to verify and validate that the software that has been built has been built to meet these specifications.testing ensures that what you get in the end is what you wanted to build.we check out if there is any problem, any error in the system, which can make software unusable by the client.this helps in the prevention of errors in a system. III. SOFTWARE TESTING TECHNIQUES 1. MANUAL TESTING(Static Testing): Manual testing is the process of manually testing software for defects. It requires a tester to play the role of an end user and use most of all features of the application to ensure correct behavior. It is a slow process and laborious where testing is done statically.it is done in early phase of life cycle. It is also called static testing. It is done by analyst, developer and testing team. Different Manual testing Techniques are as follows:- A) walk through B) Informal Review C) Technical Review D) Inspection 2. AUTOMATED TESTING(Dynamic Testing): Automated software testing is a process in which software tools execute pre-scripted tests on a software application before it is released into production. In this tester runs the script on the testing tool and testing is done. Automated testing is also called dynamic testing. Automated testing is further classified into four types A) Correctness testing B) Performance testing C) Reliability testing D) Security testing A)CORRECTNESS TESTING: Correctness is the minimum requirement of software. Correctness testing has following three forms:- I) White box testing: In White Box testing Knowledge of the internal program design and code required. Tests are based on coverage of code statements, branches, paths, conditions. White box testing is the process of giving the input to the system and checking how the system processes that input to generate the required output.white box testing is also called white box analysis, clear box testing or clear box IJIRT 101605 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 78

analysis.white box testing is applicable at integration, unit and system levels of the software testing process.white box testing is considered as a security testing method that can be used to validate whether code implementation follows intended design, to validate. II) Black box testing: Black Box testing includes no knowledge of internal design or code required.tests are based on requirements and functionality. Black box testing is testing software based on output requirements and without any knowledge of the internal structure or coding in the program.basically Black box testing is an integral part of Correctness testing but its ideas are not limited to correctness testing only.the goal is to test how well the component conforms to the published requirement for the component.black box testing have little or no regard to the internal logical structure of the system,it only examines the fundamental aspect of the system.it makes sure that input is properly accepted and output is correctly produced. implemented security functionality, and to uncover exploitable vulnerabilities. III) Grey box testing: The Graybox Testing Methodology is a software testing method used to test software applications.the methodology is platform and language independent.the current implementation of the Graybox methodology is heavily dependent on the use of a host platform debugger to execute and validate the software under test. Recent studies have confirmed that the Graybox method can be applied in real time using software executing on the target platform.grey box testing techniques combined the testing methodology of white box and black box. Grey box testing technique is used for testing a piece of software against its specifications but using some knowledge of its internal working as well.the understanding of internals of the program in grey box testing is more than black box testing, but less than clear box testing. B)PERFORMANCE TESTING: it is the testing which refers to the assessment of the performance of a human examinee.performance Testing involve all the phases as the mainstream testing life cycle as an independent discipline which involve strategy such as plan, design, execution, analysis and reporting.not all software has specification on performance explicitly. But every system will have implicit performance requirements. Performance has always been a great concern and driving force of computer evolution.the goals of performance testing can be performance bottleneck identification, performance comparison and evaluation.by performance testing we can measure the characteristics of performance of any applications. One of the most important objectives of performance testing is to maintain a low latency of a website, high throughput and low utilization. C)RELIABILITY TESTING: The purpose of reliability testing is to discover potential problems with the design as early as possible and, ultimately, provide confidence that the system meets its reliability requirements.reliability testing is related to many aspects of software in which testing process is included; this testing process is an effective sampling method to measure software reliability. In system after software is developed reliability testing techniques like analyze or fix techniques can be carried out to check whether to use the software. D)SECURITY TESTING: it is the testing which determines that an Information System protects data and maintains functionality as intended. Software quality, reliability and security are tightly coupled. Flaws in software can be exploited by intruders to opens security holes.security testing makes sure that only the authorized personnel can access the program and only the authorized personnel can access the functions available to their security level.the security testing is performed to check whether there is any information leakage in the sense by encrypting the application or using wide range of software s and hardware's and firewall etc. IV. SOFTWARE TESTING TYPES There are many types of software testing.some of them are: 1.UNIT TESTING: Unit is the smallest module i.e. smallest collection of lines of code which can be tested. Unit testing is just one of the levels of testing which go together to make the big picture of testing a system.it complements integration and system level testing. It should also complement code reviews and walkthroughs. Unit testing is IJIRT 101605 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 79

generally seen as a white box test class that is it is biased to looking at and evaluating the code as implemented rather than evaluating conformance to some set of requirements.it is the verification and validation technique where the programmer gains confidence that individual units of source code are fit for use. 2.INTEGRATION TESTING:Integration testing is a systematic technique for constructing the program structure while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested components and build a program structure that has been dictated by design.it is of two types: Top down Integration testing and Bottom up Integration testing. Top down Integration testing is an incremental approach to construct program structure. Modules are integrated by moving downward through the structure, beginning with the main control module. Modules subordinate to the main control module are incorporated into the structure in either a depthfirst or breadth-first manner. Bottom up Integration testing, as its name implies, begins construction and testing with atomic modules. Because components are integrated from the bottom up, processing required for components subordinate to a given level is always available and the need for stubs is eliminated. 3.ACCEPTANCE TESTING:it is the testing which involves running a suite of tests on the completed system. Acceptance testing (also known as user acceptance testing) is a type of testing carried out in order to verify if the product is developed as per the standards and specified criteria and meets all the requirements specified by customer.this type of testing is generally carried out by a user/customer where the product is developed externally by another party. Acceptance testing falls under black box testing methodology where the user is not very much interested in internal working/coding of the system, but evaluates the overall functioning of the system and compares it with the requirements specified by them.user acceptance testing is considered to be one of the most important testing by user before the system is finally delivered or handed over to the end user. Acceptance testing is also known as validation testing,final testing. 4.SYSTEM TESTING:System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic System testing is actually a series of different tests whose primary purpose is to fully exercise the computer-based system. Although each test has a different purpose, all work to verify that system elements have been properly integrated and perform allocated functions. 5.ALPHA TESTING: Alpha testing is a type of acceptance testing carried out at developer s site by users.in this type of testing, the user goes on testing the system and the outcome is noted and observed by the developer simultaneously. 6.BETA TESTING: Beta testing is a type of testing done at user s site. The users provide their feedback to the developer for the outcome of testing. This type of testing is also known as field testing. Feedback from users is used to improve the system/product before it is released to other users/customers. 7.COMPATIBILITY and LOAD TESTING: Compatibility testing, part of software nonfunctional tests, is testing conducted on the application to evaluate the application's compatibility with the computing environment.load TESTING is the testing which conducted to evaluate the compliance of a system or component with specified performance requirements. Load testing is the process of subjecting a computer, peripheral, server, network or application to a work level approaching the limits of its specifications. Load testing can be done under controlled lab conditions to compare the capabilities of different systems or to accurately measure the capabilities of a single system. In this we can check whether the software can handle the load of many user or not. 8.STRESS TESTING: Stress testing is a testing, which is conducted to evaluate a system or component at or beyond the limits of its specified requirements to determine the load under which it fails and how. IJIRT 101605 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 80

9.REGRESSION TESTING: It is the testing which is to be done to software that was previously working correctly and stops working as intended due to changes.regression testing means Re-testing after fixes or modifications of the software or its environment. 10.SANITY TESTING: This testing is an initial effort to determine if a new software version is performing well enough to accept it for a major testing effort. 11.LOOP TESTING: This white box technique focuses on the validity of loop constructs. four different classes of loops can be defined simple loops,nested loops,concatenated loops,unstructured loops. 12. OPEN SOURCE TESTING: It is a functional and/or unit testing framework for open source software products. 13.END TO END TESTING: it is similar to system testing; involves testing of a complete application environment in a situation that mimics real-world use. 14.RECOVERY TESTING: This testing tests how well a system recovers from crashes, HW failures or other problems. V. GOAL OF SOFTWARE TESTING Goals are the output of the software process. Software testing has following goals: 1) Verification and validation :Testing can also be used for verifying that the product or the software works as desired and validate whether the software fulfills condition laid down. 2) Priority Coverage: Testing should be performed in efficient and effective manner within the budget and schedule limits. 3) Balanced: Testing process must balance the requirements, technical limitation and user expectation. 4) Traceable: Documents should be prepared of both success and failures of testing process. So no need to test same thing again. 5) Deterministic: We should know what we are doing, what we are targeting, what will be the possible outcome. VI. CONCLUSION This paper on Software testing describes in detail about software testing, need of software testing, Software testing goals.testing can show the presence of faults in a system; it cannot prove there are no remaining faults. Software testing is often less formal and rigorous than it should, and a main reason for that is because we have struggled to define best practices, methodologies, principles, standards for optimal software testing. To perform testing effectively and efficiently, everyone involved with testing should be familiar with basic software testing goals, principles, limitations and concepts.we further explains different Software testing techniques such as Correctness testing, Performance testing, Reliability testing, Security testing.we also describes about unit testing, Integration testing, acceptance testing and system testing.integration testing is testing increments of the system; release testing involves testing a system to be released to a customer.test automation reduces testing costs by supporting the test process with a range of software tools. REFERENCES [1]Wikipedia Software Testing [2]Software Testing Techniques Shivkumar Hasmukhrai Trivedi [B.com, M.Sc I.T (Information Technology), P.G.D.B.M Pursuing] Senior System Administrator, S.E.C.C [Socio Economic and Cast Census]Central Govt. Project Bhavnagar [Gujarat India] [3]Software Testing Techniques and Strategies Abhijit A. Sawant1, Pranit H. Bari2 and P. M. Chawan3 Department of Computer Technology, VJTI, University of Mumbai, INDIA [4]Classification of Software Testing Tools Based on the Software Testing Methods Khaled M.Mustafa, Rafa E. Al-Qutaish, Mohammad I. Muhairat Al-Zaytoonah University of Jordan, Airport Street, Amman, Jordan. [5]Lessons Learned in Software Testing, by C. Kaner, J. Bach, and B. Pettichord [6]Testing Computer Software, by C. Kaner, J. Falk, and H. Nguyen [7]Effective Software Testing, by E. Dustin [8]Software testing, by Ron Patton [9]Software engineering, by Roger Pressman [10]http://people.engr.ncsu.edu/txie/testingresearc hsurvey.htm [11]http://www.engpaper.com IJIRT 101605 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 81

[12]http://www.people.engr.ncsu.edu/txie/testingre searchsurvey.htm [13]www.cs.cmu.edu/luluo/Courses/17939Report.p df [14]www.findwhitepapers.com [15]www.scribd.com [16] Sahil Batra and Dr. Rahul Rishi, IMPROVING QUALITY USING TESTING STRATEGIES, Journal of Gobal Research in Computer Science, Volume 2,No.6,June 2011. [17] S.M.K Quadri and Sheikh Umar Farooq, Software Testing-Goals,Principles and Limitations, International Journal of Computer Applications, Volume 6-No.9,September 2010. IJIRT 101605 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 82