Test Cases Design for Software Database Provisioning Development



Similar documents
International Journal of Advanced Research in Computer Science and Software Engineering

SELECTING A DEVELOPMENT APPROACH Original Issuance: February 17, 2005 Revalidated: March 27, 2008

A Review of an MVC Framework based Software Development

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS4507 Advanced Software Engineering

How To Model Software Development Life Cycle Models

Unit 1 Learning Objectives

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

A COMPARISON BETWEEN DIFFERENT TYPES OF SOFTWARE DEVELOPMENT LIFE CYCLE MODELS IN SOFTWARE ENGINEERING

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

How To Design An Information System

What is a life cycle model?

Chapter 2 Software Processes

Information Technology Policy

Software Development Life Cycle (SDLC)

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

A Survey of Software Development Process Models in Software Engineering

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

COMP 354 Introduction to Software Engineering

Advanced Software Engineering. Software Development Processes

To introduce software process models To describe three generic process models and when they may be used

Evolving a New Software Development Life Cycle Model SDLC-2013 with Client Satisfaction

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Chapter 3. Technology review Introduction

Software Process and Models

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

Benefits of Test Automation for Agile Testing

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Unit I. Introduction

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

LECTURE 1. SYSTEMS DEVELOPMENT

Classical Software Life Cycle Models

Chakra Vs Spiral Model - A Practical Approach

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Enterprise Systems Development: Impact of Various Software

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Elite: A New Component-Based Software Development Model

System Development Life Cycle Methodology

A Capability Maturity Model (CMM)

3C05: Unified Software Development Process

Basic Unified Process: A Process for Small and Agile Projects

SOFTWARE DEVELOPMENT SD

Don t forget the testers

Chapter 4: Different models and methods for SDLC Learning objectives Introduction SDLC Models

The most suitable system methodology for the proposed system is drawn out.

Software Development Life Cycle Models- Comparison, Consequences

How Silk Central brings flexibility to agile development

Plan-Driven Methodologies

Supporting Workflow Overview. CSC532 Fall06

Software Configuration Management Plan

Introduction to Systems Analysis and Design

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

SOFTWARE PROCESS MODELS

White Paper IT Methodology Overview & Context

Chapter 13: Program Development and Programming Languages

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Title: Topic 3 Software process models (Topic03 Slide 1).

CHAPTER. Software Process Models

Software Project Models

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Lecture 3 Software Development Processes

When is Agile the Best Project Management Method? Lana Tylka

INTRODUCTION TO SOFTWARE ENGINEERING

Agile Software Development Methodologies and Its Quality Assurance

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

I219 Software Design Methodology

Software Development Life Cycle

Large Scale Systems Design G52LSS

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

How To Understand The Software Process

Software Testing, Mythology & Methodologies

Increasing Development Knowledge with EPFC

General Problem Solving Model. Software Development Methodology. Chapter 2A

Karunya University Dept. of Information Technology

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

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

The traditional project management uses conventional methods in software project management process.

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

Appendix 2-A. Application and System Development Requirements

Surveying and evaluating tools for managing processes for software intensive systems

A Comparison of SOA Methodologies Analysis & Design Phases

Chapter 1: Introduction to Rapid Application Development (RAD) 1. Introductions

INTRODUCTION. Chapter Motivation

Contrastive Analysis of Software Development Methodologies

Software Engineering

Chap 1. Introduction to Software Architecture

Chapter 8 Approaches to System Development

Software Project Management using an Iterative Lifecycle Model

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

How To Understand And Understand The Software Development Process In Korea

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Agile Projects 7. Agile Project Management 21

Transcription:

Test Cases Design for Software Database Provisioning Development Sunguk Lee Research Institute of Industrial Science and Technology Pohang, Gyeongbuk, South Korea sunguk@rist.re.kr Abstract This paper presents the concepts of test case based approach for the development of software systems. A variety of software development approaches are presented wherein they share some common methodology stages wherein testing plays a vital role for the success of the product. Software testing provides an objective, independent view of the software to allow the end-user to appreciate and understand the risks of software implementation. Examples of test cases for developed software have been presented. Keywords: Test Case, Software Development, Software Testing 1. Introduction The fast growing market demand for innovative software solutions motivates the software development technology to evolve into a more defined, managed and delivered. The drive for the need of a better quality control of the software development process has given rise to the discipline of software engineering that aims to apply the systematic approach exemplified in the engineering paradigm to the process of software development. Significant advantages and disadvantages are present to the various software development methodologies and approaches, but the best approach to solving a problem with software will often depend on the type of problem. Choosing the best approach may vary depending on the analysis of the problem at hand. Among these approaches, software testing plays a significant role for the success of the implementation of the software solution. It is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. It is provided to ensure that the software product: meets the requirements specified (e.g. the user expects), desired functions work as expected, This paper presents the concepts of test cases design for the development of software systems. There are a variety of software development approaches and they share some common methodology stages wherein testing plays a vital role for the success of the product. Software testing provides an objective, independent view of the software to allow the end-user to appreciate and understand the risks of software implementation. The rest of this paper is organized as follows: Section 2 discusses about the different software development approaches; Section 3 outlines the concepts of a Test Case and Examples for Test Cases are designed; and the concluding remarks in Section 4. 95

2. Software Development Approaches Software development refers to as the development of a software product that includes activities of computer programming. It is also known as application development, software design, designing software, software application development, enterprise application development, or platform development. It may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products [1]. Different approaches can be used for a software development; some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece. The following are some of the stages or phases that most methodologies have in common: [1]: Analysis Phase Requirements Phase Design Phase Implementation (coding) Phase Testing Deployment Maintenance and bug fixing These stages are often referred to collectively as the software development lifecycle, or SDLC. Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. Significant advantages and disadvantages are present to the various methodologies, but the best approach to solving a problem with software will often depend on the type of problem. Choosing the best approach may vary depending on the analysis of the problem at hand [1]. 2.1 Waterfall based Approach The Waterfall model is a traditional sequential development approach, in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance [1, 2]. The basic principles are [2]: Project is divided into sequential phases, with some overlap and splashback acceptable between phases. Emphasis is on planning, time schedules, target dates, budgets and implementation of an entire system at one time. Tight control is maintained over the life of the project via extensive written documentation, formal reviews, and approval/signoff by the user and information technology management occurring at the end of most phases before beginning the next phase. 96

2.2 Prototyping Software prototyping is the development approach of activities during software development, the creation of prototypes, i.e., incomplete versions of the software program being developed [1, 2]. The basic principles are [2]: 2.3 Spiral Approach Not a standalone, complete development methodology, but rather an approach to handle selected parts of a larger, more traditional development methodology (i.e. incremental, spiral, or rapid application development (RAD)). Attempts to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process. User is involved throughout the development process, which increases the likelihood of user acceptance of the final implementation. Small-scale mock-ups of the system are developed following an iterative modification process until the prototype evolves to meet the users requirements. While most prototypes are developed with the expectation that they will be discarded, it is possible in some cases to evolve from prototype to working system. A basic understanding of the fundamental business problem is necessary to avoid solving the wrong problem. The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottomup concepts. It is a meta-model, a model that can be used by other models [2]. The basic principles are: 2.4 RAD Approach Focus is on risk assessment and on minimizing project risk by breaking a project into smaller segments and providing more ease-of-change during the development process, as well as providing the opportunity to evaluate risks and weigh consideration of project continuation throughout the life cycle. "Each cycle involves a progression through the same sequence of steps, for each part of the product and for each of its levels of elaboration, from an overall concept-of-operation document down to the coding of each individual program." Each trip around the spiral traverses four basic quadrants: (1) determine objectives, alternatives, and constraints of the iteration; (2) evaluate alternatives; Identify and resolve risks; (3) develop and verify deliverables from the iteration; and (4) plan the next iteration. Begin each cycle with an identification of stakeholders and their win conditions, and end each cycle with review and commitment Rapid application development (RAD) is a software development methodology, which involves iterative development and the construction of prototypes [2]. 97

The basic principles are: Key objective is for fast development and delivery of a high quality system at a relatively low investment cost. Attempts to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process. Key emphasis is on fulfilling the business need, while technological or engineering excellence is of lesser importance. Active user involvement is imperative. Iteratively produces production software, as opposed to a throwaway prototype. Produces documentation necessary to facilitate future development and maintenance. Standard systems analysis and design methods can be fitted into this framework. 2.5 Other Approaches Other methodology practices include [2]: Object-oriented development methodologies known as object-oriented analysis and design (OOAD) [4]. Top-down programming. Unified Process (UP) is an iterative software development methodology framework, based on Unified Modeling Language (UML). One popular version of UP is the Rational Unified Process (RUP). Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve via collaboration between self-organizing cross-functional teams. 3. Test Cases Design for Software Development Test cases in software development refer to the set of conditions or variables under which a tester will determine whether an application or software system is working correctly or not. Test cases are often referred to as test scripts, particularly when written. Written test cases are usually collected into test suites [3, 5]. A single test case is usually a single step, or occasionally a sequence of steps, to test the correct behaviour/functionalities, features of an application. An expected result or expected outcome is usually given [3]. Information that is included within a test case: test case ID test case description test step or order of execution number related requirement(s) 98

depth test category author check boxes for whether the test is automatable and has been automated. Expected Result and Actual Result. Additional fields that may be included and completed when the tests are executed: pass/fail remarks Larger test cases may also contain prerequisite states or steps, and descriptions. Figure 1 shows an example flow of events in software (e.g. point of sale system). The following example is included in the testing phase of the development of a Point of Sale System (POS). As shown in Figure 1, the flow of steps for processing a sale is presented. Table 1 depicts an example of a Test Case for a normal processing of a sale. Table 2 and Table 3 shows sample Test Cases for not correct functionality as the software is being tested. Expected results are shown to determine whether the test pass or fails. Table 1. Test Case for Processing Sale Test Case Name: Process Sale - Normal Use Case Name: Process Sale Use Case Path to be [U1, S1, U2.1, S2.1, U3.1, S3.1, U4.1, S4.1] exercised: Input Data: 12345 Initial Condition: Cashier (Benjo) is allowed to process a sale transaction No item is in the shopping cart New sale transaction is already created Item 12345 is a valid input Expected Result: New sale transaction is still open for additional items Cashier is still authorized to work on the current transaction. 1 line item is now on the shopping cart New line item has been established for item 12345. System is ready to accept for additional item. 99

Figure 1. Flow of Processing Sale Event of a Point of Sale (POS) 100

Table 2. Test Case for Processing Sale - Negative Test Case Name: Process Sale item is not registered/recognized Use Case Name: Process Sale Use Case Path to be [U1, S1, U2.1, S2.2] exercised: Input Data: 54321 Initial Condition: Cashier (Benjo) is allowed to process a sale transaction No item is in the shopping cart New sale transaction is already created Item 54321 is not a registered or recognized item Expected Result: New sale transaction is still open for additional items Cashier is still authorized to work on the current transaction. Still there are no items added in the shopping cart No new line has been established. Displays an error message for unregistered or unrecognized item System is ready to accept for additional item. Table 3. Test Case for Processing Sale - Negative Test Case Name: Process Sale quantity exceeds inventory limit Use Case Name: Process Sale Use Case Path to be [U1, S1, U2.2, S3.2] exercised: Input Data: 7 Initial Condition: Cashier (Benjo) is allowed to process a sale transaction New sale transaction is already created 1 item is in the shopping cart Default value of item s quantity is 1 Inventory limit for the item in the cart is 5 7 is a valid input Expected Result: New sale transaction is still open for additional items Cashier is still authorized to work on the current transaction. Still there are no items added in the shopping cart No new line has been established. Displays an error message for item that exceeds inventory limit System is ready to accept for additional item. Figure 2 shows the flow of managing items event for a Point of Sale (POS) system. The flow of activities will show the behaviour of the functionality of the system as it will be tested. Table 4 depicts the normal behaviour of a Test Case for managing items while Table 5 presents a Test Case for managing items with insufficient item details supplied and duplicated item codes. 101

Figure 2. Flow of Managing Items Event of a Point of Sale (POS) Test Case Name: Use Case Name: Use Case Path to be exercised: Input Data: Initial Condition: Expected Result: Table 4. Test Case for Managing Items Manage Items - Normal Manage Items [U1, S1, U2.1, S2.1, U3.1, S3.1, U3.1, 3.2] 67890-Bear Brand-Nestle-Milk-Lynlyn Poultry Supply-20.00-22.00-10 Only the administrator is allowed to manage items There are existing number of items in the database Add New Item transaction is active No duplicate of item code Admin is still authorized to work on another new transaction. New record has been appended on the database for item 67890. The form is ready to receive a new item as another entry. 102

Test Case Name: Table 5. Test Case for Managing Items - Negative Use Case Name: Use Case Path to be exercised: Input Data: Initial Condition: Expected Result: Manage Items insufficient item details supplied/ duplicate item codes Manage Items [U1, S1, U2.1, S2.1, U3.1, S3.1, U3.1, S3.1] 67890-Nido-Nestle-Milk-Lynlyn Poultry Supply- 20.00-22.00-10 Only the administrator is allowed to manage items There are existing number of items in the database The admin has already selected a type of item to be added Add New Item transaction is active Item code 67890 is already a duplicate of another item in the database New sale transaction is still open for additional items Admin is still authorized to work on the current transaction. No record is appended/updated in the database System is ready to accept for another item System is ready to accept additional lacking details Software s complexity and accelerated development schedules make avoiding defects difficult. To assure quality software, the defects found during the testing and implementation phase will be given solutions or at least minimize the occurrence. The summary of defects must then be summarized and identify necessary actions to address and correct these defects as shown in Table 6. Table 1. Summary of Defects Defects Resolutions Process Sale item is not registered/recognized Displays an error message for unregistered or unrecognized item Process Sale quantity exceeds inventory limit Manage Items insufficient item details supplied/ duplicate item codes ---- --- 103

4. Conclusions Software testing refers to an investigation conducted to provide assurance of the quality of the software product or service under test. It includes processes of executing a program or application with the intent of finding software bugs (errors or other defects). It is provided to ensure that the software product: meets the requirements specified (e.g. the user expects), desired functions work as expected. This paper presents the concepts of test case based approach for the development of software systems. Test cases for software testing have been designed to determine whether an application or software system is working correctly or not References [1] http://en.wikipedia.org/wiki/software_development. [2] http://en.wikipedia.org/wiki/software_development_methodology. [3] http://en.wikipedia.org/wiki/test_case. [4] Georges Gauthier Merx & Ronald J. Norman (2006). Unified Software Engineering with Java. p.201. [5] http://en.wikipedia.org/wiki/oracle_(software_testing). 104