Software Testing and Maintenance

Similar documents
A Study on Various Testing tools and Testing Strategies

Automated testing in ERP using Rational Functional Tester

Examination Questions Time allowed: 1 hour 15 minutes

Chapter 9. Software Testing

Chap 2. Introduction to Software Testing

Types of Software Testing: Different Testing Types with Details

Sample Exam Syllabus

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Bridge Course On Software Testing

UNIT-4 Black Box & White Box Testing

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

CA Test Data Manager Key Scenarios

Test design techniques

UNIT-4 Black Box & White Box Testing

Software Engineering (CSC 4350/6350) Rao Casturi

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Sample Exam. Advanced Test Automation - Engineer

Program Correctness and Efficiency. Chapter 2

Business Process Testing

Software Engineering Fall 2014

SOLUTION BRIEF CA TEST DATA MANAGER FOR HPE ALM. CA Test Data Manager for HPE ALM

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

Higher-order Testing. Stuart Anderson. Stuart Anderson Higher-order Testing c 2011

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

Part 5. Verification and Validation

Software Quality Assurance & Testing

Sample Exam. Certified Tester Foundation Level

Chapter 8. Achmad Benny Mutiara

Chapter 9 Quality and Change Management

INTRODUCTION TO SOFTWARE ENGINEERING

Pearson Education 2007 Chapter 9 (RASD 3/e)

Software Testing Interview Question and Answer

10. Software Testing Fundamental Concepts

Shift Left Testing: are you ready? Live Webinar, Sept 19

CYSE 411/AIT 681 Secure Software Engineering. Topic #6. Seven Software Security Touchpoints (III) Instructor: Dr. Kun Sun

Software Testing. Massimo Felici IF

It is primarily checking of the code and/or manually reviewing the code or document to find errors This type of testing can be used by the developer

4. Risk-Based Security Testing. Reading. CYSE 411/AIT 681 Secure Software Engineering. Seven Touchpoints. Application of Touchpoints

Terminology. There are many different types of errors and different ways how we can deal with them.

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Sample Question Paper. Software Testing (ETIT 414)

USTGlobal INNOVATION INFORMATION TECHNOLOGY. Using a Test Design Tool to become a Digital Organization

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Functional Testing with Mercury QuickTest Professional

9 th CA 2E/CA Plex Worldwide Developer Conference 1

Testing in the Agile World

ASTQB Advance Test Analyst Sample Exam Answer Key and Rationale

SAP Solution Manager Test Workbench

ANZSCO Descriptions The following list contains example descriptions of ICT units and employment duties for each nominated occupation ANZSCO code. And

Darshan Institute of Engineering & Technology for Diploma Studies

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo

Question 1: What is a code walk-through, and how is it performed?

Software Engineering Software Testing Techniques

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

A Study on Issues, Challenges and Comparison of Various Automated Testing Tools

DRVerify: The Verification of Physical Verification

Sample Exam ISTQB Advanced Test Analyst Answer Rationale. Prepared By

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

Sample Exam. Advanced Test Automation Engineer

EUROPEAN ICT PROFESSIONAL ROLE PROFILES VERSION 2 CWA 16458:2018 LOGFILE

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering

Darshan Institute of Engineering & Technology Unit : 9

How to Improve Test Team Effectiveness Using Test Entities

Lecture 15 Software Testing

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001

SOFTWARE ENGINEERING SOFTWARE VERIFICATION AND VALIDATION. Saulius Ragaišis.

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

QUIZ #5 - Solutions (5pts each)

UNIT-2 Levels of Testing

CS 424 Software Quality Assurance & Testing LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I

1. i. What are the 3 major components of a information system and show their relationship input output

An Oracle White Paper February Comprehensive Testing for Siebel With Oracle Application Testing Suite

Assuring Certainty through Effective Regression Testing. Vishvesh Arumugam

THE AUTOMATED TEST FRAMEWORK

Chapter 14 Software Testing Techniques

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Research Scholar, Sree Saraswathi Thyagaraja College, Pollachi, Tamil Nadu, India. Pollachi, Tamil Nadu, India. 1. Introduction

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

Topics in Software Testing

Verification and Validation

Diploma in Software Testing 2.0 (HP)

Incremental development A.Y. 2018/2019

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins

How Automated Testing Tools Are Showing Its Impact In The Field Of Software Testing

SOFTWARE TESTING FOUNDATION COURSE CURRICULUM

Deliver robust products at reduced cost by linking model-driven software testing to quality management.

Write perfect C code to solve the three problems below.

SECURITY TRAINING SECURITY TRAINING

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing

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

Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.

Software Quality. Richard Harris

Visual Basic Scripting

CresTech Software Systems Your Testing Partner

Transcription:

Software Testing and Maintenance Testing Strategies Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item being tested is not known to the tester. These tests can be functional or non-functional, though usually functional. This method is named so because the software program, in the eyes of the tester, is like a black box; inside which one cannot see. This method attempts to find errors in the following categories: Incorrect or missing functions Interface errors Errors in data structures or external database access Behavior or performance errors Initialization and termination errors For Example: A tester, without knowledge of the internal structures of a website, tests the web pages by using a browser; providing inputs (clicks, keystrokes) and verifying the outputs against the expected outcome. Black Box Testing, method is applicable to the following levels of software testing: Integration Testing System Testing Acceptance Testing The higher the level, the bigger and complex, the Black Box Testing method becomes.

Following are some techniques that can be used for designing black box tests. Equivalence partitioning: It is a software test design technique that involves dividing input values into valid and invalid partitions and selecting representative values from each partition as test data. Boundary Value Analysis: It is a software test design technique that involves determination of boundaries for input values and selecting values that are at the boundaries and just inside/ outside of the boundaries as test data. Cause Effect Graphing: It is a software test design technique that involves identifying the cases (input conditions) and effects (output conditions), producing a Cause-Effect Graph, and generating test cases accordingly. Advantages Tests are done from a user s point of view and will help in exposing discrepancies in the specifications. Tester need not know programming languages or how the software has been implemented. Tests can be conducted by a body independent from the developers, allowing for an objective perspective and the avoidance of developer-bias. Test cases can be designed as soon as the specifications are complete. Disadvantages Only a small number of possible inputs can be tested and many program paths will be left untested. Without clear specifications, which are the situation in many projects, test cases will be difficult to design. Tests can be redundant if the software designer/ developer has already run a test case. Ever wondered why a soothsayer closes the eyes when foretelling events? So is almost the case in Black Box Testing. White Box Testing is a software testing method in which the internal structure/ design/ implementation of the item being tested is known to the tester. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming know-how and the implementation knowledge is essential. White box testing is testing beyond the user interface and dives into the details of a system. This method is named so because the software program, in the eyes of the tester, is like a white/ transparent box; inside which one clearly sees.

For example: A tester, usually a developer as well, studies the implementation code of a certain field on a webpage, determines all legal (valid and invalid) AND illegal inputs and verifies the outputs against the expected outcomes, which is also determined by studying the implementation code. White Box Testing method is applicable to the following levels of software testing: Unit Testing Integration Testing System Testing Advantages Testing can be commenced at an earlier stage. One need not wait for the GUI to be available. Testing is more thorough, with the possibility of covering most paths. Disadvantages Since tests can be very complex, highly skilled resources are required, with thorough knowledge of programming and implementation. Test script maintenance can be a burden if the implementation changes too frequently. Since this method of testing is closely tied with the application being testing, tools to cater to every kind of implementation/platform may not be readily available.

Testing Architecture Software Testing Life Cycle (STLC) defines the steps/ stages/ phases in testing of software. However, there are no fixed standards for STLC and it varies as per the organization. Software Testing Life Cycle comprises of the following phases:

Note that the STLC phases mentioned above do not necessarily have to be in the order as listed above; some phases can sometimes run in parallel. And, in extreme cases, the phases might also be reversed. Testing Tools Following are the examples of the Testing Tools: HP & Mercury Winrunner: HP Winrunner software was an automated functional GUI testing tool that allowed a user to record and play-back user interface (UI) interactions as test scripts. As a functional test suite, it worked with HP Quick Test Professional and supported enterprise quality assurance. It captured, verified and replayed user interactions automatically, in order to identify defects and determine whether business processes worked as designed. Quick Test Professional: HPE Unified Functional Testing software, formerly known as HP Quick Test Professional (QTP), provides functional and regression test automation for software applications and environments. HPE Unified Functional Testing can be used for enterprise quality assurance.hpe Unified Functional Testing supports keyword and scripting interfaces and features a graphical user interface. It uses the Visual Basic Scripting Edition (VBScript) scripting language to specify a test procedure, and to manipulate the objects and controls of the application under test. Test Director: Test Director is a; Mercury Interactive software, test management tool. It helps quality assurance personnel, plan and organize the testing process. With Test Director you can create a database of manual and automated tests, build test cycles, run tests, and report and track defects. You can also create reports and graphs to help review the progress of planning tests, running tests, and tracking defects before a software release. Quality Center: HP Quality Center is a quality management software solution offered by the HP Software Division of Hewlett Packard Enterprise, with many capabilities acquired from Mercury Interactive Corporation. HP Quality Center offers software quality assurance, including requirements management, test management and business process testing for IT and application environments. HP Quality Center is a component of the HP Application Lifecycle Management software solution set.

IBM Rational Rational Robot: Rational Robot is an automated functional, regression testing tool for automating Windows, Java, IE and ERP applications under windows platform. Rational Robot provides test cases for common objects such as menus, lists, bitmaps and specialized test cases for objects, specific to the development environment. Rational Performance Tester: Rational Performance Tester is a tool for automated performance testing of web and server based applications, from the Rational Software division of IBM. It allows users to create tests that mimic user transactions between an application, client and server. During test execution, these transactions are replicated in parallel to simulate a large transaction load on the server. Server response time measurements are collected to identify the presence and cause of any potential application bottlenecks. It is primarily used by Software Quality Assurance teams to perform automated software performance testing. Rational Functional Tester: Rational Functional Tester is a tool for automated testing of software applications from the Rational Software division of IBM. It allows users to create tests that mimic the actions and assessments of a human tester. It is primarily used by Software Quality Assurance teams to perform automated regression testing. Rational Test Manager: Rational Test Manager is a testing tool that encompasses all aspects of test analysis from test management to execution to reporting. It supports all kinds of testing from pure manual test approaches to various automated paradigms including unit testing, functional regression testing and performance testing. Borland/Segue/Micro Focus Silk Test: Silk Test is a tool for automated function and regression testing of enterprise applications. It was originally developed by Segue Software which was acquired by Borland in 2006. Borland was acquired by Micro Focus International in 2009. Silk Test is the industry s leading functional testing product for e-business applications, whether Window based, Web, Java, or traditional client/server-based. Silk Performer: Silk Performer is a software performance testing tool across web, mobile and enterprise applications. It was originally developed by Segue Software which was acquired by Borland in 2006. Borland was acquired by Micro Focus International in 2009. Silk Performer ensures that applications and server up times are maintained when faced with peak customer usage. Silk Performer allows identification of such problems using integrated diagnostics and trending reports.

Maintenance Although Software does not show aging or wear or tear with use, but with upcoming advanced technologies and changing user requirements, Software products get outdated or fail to support the changes in their environment. Maintenance can only happen efficiently if the earlier phases are done properly. Maintenance costs developers time, effort and money. Hence, Maintenance phase should be as efficient as possible. There are four major problems that can slow down the maintenance process: Unstructured Code Maintenance Programmers having insufficient knowledge of the system. Documentation not available or Out of date. The success of the Maintenance phase relies on these problems fixed earlier. Maintenance consists of four parts: Corrective Maintenance Adaptive Maintenance Perfective Maintenance Preventive Maintenance Corrective Maintenance: Corrective Maintenance deals with the repair of faults or defects found. A defect can result from design error, coding error or logic error. Defects are also caused by data processing errors and system performance errors. All these errors sometimes called as residual errors or bugs, prevent the software from conforming to its agreed specification. The need for Corrective Maintenance is usually initiated by the bug reports drawn up by the end users. Adaptive Maintenance: It consists of adaptation of Software to the changing environment, such as hardware or operating system. The term environment refers to the totality of all conditions, which act from outside upon the system. The need for Adaptive Maintenance can be recognized only by monitoring the environment. Perfective Maintenance: This type of Maintenance is for accommodating, new or changed requirements of the users. Perfective Maintenance is concerned with functional enhancements to the system, activities to increase the system

performance or activities to enhance user interface. This is based on the premise that, as the software becomes useful; the users tend to experiment with new features, which are beyond the scope of, initial purpose of the developed Software. Preventive Maintenance: Here, activities intended at increasing system s maintainability, such as updating documentation, adding comments, improving the modular structure of the system, are executed. As a large program is continuously changed, its complexity increases; unless work is done to reduce or maintain it. This work is known as Preventive Change. The change is usually initiated from within the maintenance organization, with the intention of making programs easier to understand and also to, facilitate future maintenance work. Examples of Preventive Maintenance include: Restructuring code Optimizing code Updating documentation Risks in Software Maintenance Software Maintenance leads to correction and enhancements in software, but it also bears the major risk of partial or complete failure of the software. While correcting the residual errors in the software, modifications can, in-turn introduce new bugs, in other linked parts too. Detecting this needs rigorous testing of all the altered areas of the software and all its linked components. The cost, efforts and time consumption for these activities are usually very high, leading to high maintenance cost. Hence, initialization of any maintenance thread needs highly mature analysis, conclusive decisions, established management and prime technical expertise.

Defect Analysis A Software Defect or a Bug is a condition in a software product which does not meet a software requirement or end-user expectations. In other words, a defect is an error in coding or logic that causes a program to malfunction or to produce incorrect or unexpected results. In other words: Any deviation from the specification Anything that causes user dissatisfaction Incorrect output Software does not do that, what is intended from it Categories of Defects Defect categorization helps the software developers to prioritize their tasks. That means this kind of priority helps the developers, in fixing those defects first, that are highly crucial.

Examples of Defects User gives wrong or incomplete requirements Analyst interprets requirement incorrectly Requirements are not recorded correctly Incorrect Design Specification Incorrect Program Specification Errors in Coding Data entry errors Errors in testing i.e. falsely detect an error or fail to detect existing error Mistakes in error corrections Different Levels of Testing Unit Testing Unit Testing is a level of software testing where individual units/ components of a software are tested. The purpose is to validate, that each unit of the software performs as designed. A unit is the smallest testable part of software. It usually has one or a few inputs and usually a single output. In procedural programming a unit may be an individual program, function, procedure, etc. In object-oriented programming, the smallest unit is a method, which may belong to a base/ super class, abstract class or derived/ child class.

Integration Testing Integration Testing is a level of software testing where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units. Test drivers and test stubs are used to assist in Integration Testing. System Testing System Testing is a level of the software testing where a complete and integrated software is tested. The purpose of this test is to evaluate the system s compliance with the specified requirements.

Acceptance Testing The purpose of this test is to evaluate the system s compliance with the business requirements and assess whether it is acceptable for delivery. Ref: (Click Here)