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

Size: px
Start display at page:

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

Transcription

1 Question 1: What is a code walk-through, and how is it performed? Response: Code walk-throughs have traditionally been viewed as informal evaluations of code, but more attention is being given to this valuable form of quality improvement. A better label for this exercise is a code inspection. A typical code inspection consists of a group of people assigned to review a section of code in an application. This inspection is scheduled for a time after the developers feel the code is complete but prior to integration with other parts of the application. The inspection team usually consists of at least two people with one serving as the recorder to take notes and make comments in the code. The focus of the inspection is to ensure the design requirements are met. The purpose is to provide feedback on the code, not to fix any defects. The most senior engineers are typically the best equipped to perform the inspection. The deliverable for a code inspection is a set of code that has sufficient notations to allow the developer to correct any derivation from the design and modify areas where the implementation of the code may result is unnecessary complexity or risk to the project. Question 2: How can automated testing tools be used in unit testing? Response: When the project is small, the time required to learn and use automated testing tools may be too high to justify their use. Automated testing can be valuable for larger projects. The most common automated tools feature record and playback capabilities. To prepare this type of tool, the tester navigates through the application and the clicks and keystrokes are recorded and saved. The recorded script can be modified if necessary, and the result is a script that can be played back later to automatically operate the application. This level of automated testing serves well for completed applications, but is not of great use in the unit testing phase. Data-driven automated testing tools can be more valuable for unit testing. Data-driven testing tools use test drivers and data files to drive the datacentric parts of an application. These types of tools can be effectively used to test units of code prior to integration with the user interface layer. Some unit testing tools can be applied directly to the unit testing needs. These tools include code analyzers that examine code complexity and adherence to standards, tools that examine the coverage provided by unit tests, memory analysis tools, and load testing tools. Because of the complex 1

2 nature of many applications, typical tools may be difficult to use for unit testing. In these cases, custom tools are often written to ensure unit testing coverage is adequate. Question 3: How can I select a good test automation tool? Response: No automated testing tool will serve all of the testing needs for an application. The tools that can be used effectively will require significant work to implement with any application that is more than just a simple program. A good start in the selection of an appropriate automated testing tool is to examine the manual testing process and determine which parts can be best addressed by automation. In manual testing, the tester must exercise various parts of the application in different ways to determine if the specifications are met and the software is behaving properly. The tester must examine results in the form of data produced by the application, user interface changes, program flow, and so forth. When automated testing tools are used, the human factor is removed, so it is important to remember that all examinations of the program results must be possible in a clear way. Judgment cannot be part of the process unless a tester will examine results files manually. Without the human judgment component, the testing process must be viewed differently. Planning and analysis are key factors in successful selection of an automated testing tool. The first step is to understand what parts of testing will be the focus of automation. More complete coverage, load testing, faster testing, or replication of testing for regression purposes are good candidates for automated testing. It is a good idea to look for places in the manual testing processes that require lots of time. Another hot spot is areas of testing that appear to miss a lot of defects. Repeated testing can benefit from automation, and tests that require significant data manipulation will be more efficient with automation. After the targets for test automation are identified, candidate tools can be reviewed to determine which ones meet the identified needs. The candidates can be processed using various criteria such as cost, quality, support, ease of use, and so forth. When the list has been narrowed, trial versions can be used to establish which one best serves the needs of the testing process. The entire selection process may be time-consuming, but test automation can provide significant benefits to offset the investment. 2

3 Question 4: How does object-oriented design affect the unit testing process? Response: There are many factors that make testing of object-oriented software different from traditional function-oriented software. Object-oriented software is comprised of objects that mimic their real-world counterparts and are built as black boxes. Information is hidden within the objects, and it is generally not possible to see this information, only the results of changes made to the object that are designed to be visible. Information hiding makes it difficult to test changes in the state of an object. Objects also encapsulate their functionality, so the view of the object is a very surface-level view. Another aspect of objects is that they can inherit many of their attributes (data) and methods (functionality) from other objects. To make matters more complicated, the child objects can also implement the same named functionality in different ways. This inheritance capability requires that the same functionality is tested in the parent and child objects. In some ways, object-oriented software provides easier mechanisms than traditional software for unit testing. The requirement for clear interfaces to the objects allows test engineers to more easily create wrappers to utilize objects and exercise their exposed methods. The black box nature of objects also allows testers to compartmentalize objects into more discrete units and determine if the exposed functionality meets the design and functionality requirements. Because objects are more independent than traditional code, relationships with other parts of an application can be more easily determined and excluded from unit testing processes. Question 5: How does extreme programming (XP) change how unit testing is performed? Response: XP actually relies heavily on unit testing. Unit tests are typically created and used for a test-driven development process that is vital to the overall success of the XP approach. Unlike traditional development in which a tester would prepare a set of unit tests, XP relies on the developer to write unit tests along with the unit of code as development progresses. The unit test will initially fail because the code has not yet been developed, but the test itself is written to cover one or more of the requirements of the software. After the test is written, then the developer creates the code that will allow the test to pass. 3

4 Every class in the application is unit tested in this fashion. The unit test always accompanies the code and can then be used at any point in the future to retest the unit if any changes are made to the underlying code. When pairs of programmers work together in an XP development environment, one programmer often writes the unit tests while the other implements the code. The close association between coding and unit testing results in a high level of code coverage and a substantial reduction in defects later in the process. Question 6: Can programmers perform their own unit testing sufficiently? Response: Unit testing examines the implementation of the software more than the functionality. The focus on the code requires an understanding of the implementation and the design used as the basis for the code. Because of this knowledge requirement, someone with coding knowledge and an intimate understanding of the implementation must be involved in the unit testing process; however, there are drawbacks if the same person who implements the code also performs the unit testing. Familiarity with the code can cause the tester to miss issues that may appear more obvious to someone with less exposure to the code on a regular basis. Independent testing can provide a fresh look at the code and can also establish a better overview of the relationship between the code and the intended design. Independent testing can also be less efficient because of the learning curve required. A combination of unit testing performed by the developers and independent testing through code reviews can achieve the optimum overall results. Question 7: How much code coverage is enough in unit testing? Response: The goal of unit testing is to make sure the code will behave properly and to also ensure that the code meets the requirements as specified in the technical design. If these objectives are met, then functional testing in later stages can focus on the larger application issues. The key to success during the unit testing phase is to provide sufficient code coverage to maximize the confidence levels. This goal does not mean every line of code must be unit tested, which would require excess effort in which incremental gains in quality are not realized. The question is how much coverage is enough? The test designer must determine whether the unit tests cover the range of operations for a unit of the code. In addition, unit tests should be designed to 4

5 include any special cases. For example, unit tests should cover minimum, maximum, and out-of-range values for parameters to a function, but testing all possible values for input is not required. The tests should be designed to determine if the code performs as intended in the design and that the implementation was done according to accepted standards and goals for efficiency in execution. It is important to understand the meaning of coverage. Coverage can include individual code statements, decision structures, or function results. The level of risk associated with potential problems in an area of code can also be important in decisions regarding adequate code coverage. Ultimately, unit tests should ensure all lines of code are executed at least once and all conditional branches operate as intended. Beyond this level of code use, additional tests will be redundant and unnecessary. In practice, if the level of risk is low for an area of code, the effort required to perform complete coverage may exceed the value achieved from the tests. Complexity can also factor into the requirements for code coverage. If a unit is more complex, then it is more likely to have errors and increased coverage should be applied. For most projects, the goal is to make sure the code performs all decisions correctly and that each statement is performed once. Complete coverage is normally difficult to achieve because some code is only in place to handle situations that should not occur in normal operation of the code. For example, error handling may cover a scenario in which data storage is exceeded but this situation would not occur during normal operation of the program. The more difficult to test units can be covered through code reviews. Question 8: How can I determine if my unit testing strategy is sufficient? Response: There are several criteria that can be used to determine if a unit testing strategy is sufficient for an application. Recall that unit testing aims to ensure that the code meets the requirements specified in the design. These requirements may include standards for code implementation and specific use of data and unit functionality. The unit testing strategy relies on the availability of proper design and standards documentation. The unit testing strategy should also integrate well with other phases of the testing process. Complex and high risk-units should be identified so they receive appropriate attention during the testing process. The unit tests should also be reviewable, repeatable, and archivable for documentation and later use. 5

6 There are some more specific issues to address in the evaluation of a unit testing strategy. The plan should ensure all statements are exercised by at least one test (and preferably only one test). All branches of conditional statements and the extents of boundary conditions should also be exercised. If the design included any assumptions, the tests should make sure these assumptions are valid. Finally, the tests should make sure the unit has been tested over the complete range of operation for which it was intended. Question 9: What are some of the limitations of unit testing? Response: Testing of any sort will not find all defects in a software application. Unit testing is a subset of the overall testing process and will catch a subset of the defects. Because unit testing addresses only the individual units, there are some defects that will be excluded from coverage by definition. Integration errors or functional issues in larger combinations of individual units will not be caught. Because of these limitations, unit testing should only be considered to be part of the overall testing strategy. Another limitation of unit testing is shared with all forms of testing. Unit tests can identify defects, but they cannot be used to prove that no defects remain. Another issue with unit tests is the level of effort required to prepare the tests versus the effort expended in writing the code. As a simple illustration, consider a conditional statement where only a Boolean value of true or false can result from exercise of the code. This conditional statement may only be one line of code but it would require two tests to examine the correct operation of the statement. This combinatorial problem makes it unrealistic to test all inputs for every unit in a program unless some level of automation is used, but the automation tools bring their own problems to the test process. Question 10: How do unit testing frameworks work, and why are they important? Response: A unit testing framework is a system that helps prepare and exercise unit tests. With the use of code frameworks such as Java Development Kit (JDK) or.net, programs have continued to rely more heavily on libraries and language-specific implementations to achieve better programming efficiency and functionality. Unit testing frameworks are designed to help wrap the units in modern software to provide more efficient development of appropriate unit tests. 6

7 Unit testing frameworks must be created for specific languages, and there are many choices available for the more popular coding languages and environments. While it is not required to use these frameworks, the development of all the code required for adequate unit testing would be a difficult and time-consuming task. Incorporation of unit testing frameworks directly in the code provides the ability to use language-specific assertion and exception mechanisms to test the code. These frameworks are often used in partnership with automated testing tools to provide efficient testing processes with good code coverage. 7

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

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs. In this Lecture you will Learn: Testing in Software Development Process Examine the verification and validation activities in software development process stage by stage Introduce some basic concepts of

More information

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives Software Testing Fundamentals Software Testing Techniques Peter Lo Software Testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding.

More information

Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process

Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process Introduction System tests, often called slow tests, play a crucial role in nearly every Java development

More information

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

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

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing. Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great

More information

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

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 Sample ISTQB examination 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 2 Regression testing should

More information

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD Cairo University Faculty of Computers and Information CS251 Software Engineering Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD http://www.acadox.com/join/75udwt Outline Definition of Software

More information

Write perfect C code to solve the three problems below.

Write perfect C code to solve the three problems below. Fall 2017 CSCI 4963/6963 Week 12 David Goldschmidt goldschmidt@gmail.com Office: Amos Eaton 115 Office hours: Mon/Thu 1:00-1:50PM; Wed 1:00-2:50PM Write perfect C code to solve the three problems below.

More information

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

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

USTGlobal INNOVATION INFORMATION TECHNOLOGY. Using a Test Design Tool to become a Digital Organization USTGlobal INNOVATION INFORMATION TECHNOLOGY Using a Test Design Tool to become a Digital Organization Overview: Automating test design reduces efforts and increases quality Automated testing resolves most

More information

Topics in Software Testing

Topics in Software Testing Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the

More information

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks Software Testing for Developer Development Testing Duvan Luong, Ph.D. Operational Excellence Networks Contents R&D Testing Approaches Static Analysis White Box Testing Black Box Testing 4/2/2012 2 Development

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Chapter 9 Quality and Change Management

Chapter 9 Quality and Change Management MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

Pearson Education 2007 Chapter 9 (RASD 3/e)

Pearson Education 2007 Chapter 9 (RASD 3/e) MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

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

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should

More information

UNIT-4 Black Box & White Box Testing

UNIT-4 Black Box & White Box Testing Black Box & White Box Testing Black Box Testing (Functional testing) o Equivalence Partitioning o Boundary Value Analysis o Cause Effect Graphing White Box Testing (Structural testing) o Coverage Testing

More information

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

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Software Testing and Maintenance

Software Testing and Maintenance 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

More information

Chapter 8 Software Testing. Chapter 8 Software testing

Chapter 8 Software Testing. Chapter 8 Software testing Chapter 8 Software Testing 1 Topics covered Introduction to testing Stages for testing software system are: Development testing Release testing User testing Test-driven development as interleave approach.

More information

UNIT-4 Black Box & White Box Testing

UNIT-4 Black Box & White Box Testing Black Box & White Box Testing Black Box Testing (Functional testing) o Equivalence Partitioning o Boundary Value Analysis o Cause Effect Graphing White Box Testing (Structural testing) o Coverage Testing

More information

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

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

More information

International Journal of Computer Engineering and Applications, Volume XII, Special Issue, September 18, ISSN SOFTWARE TESTING

International Journal of Computer Engineering and Applications, Volume XII, Special Issue, September 18,   ISSN SOFTWARE TESTING International Journal of Computer Engineering and Applications, Volume XII, Special Issue, September 18, www.ijcea.com ISSN 2321-3469 SOFTWARE TESTING Rajat Galav 1, Shivank Lavania 2, Brijesh Kumar Singh

More information

Sample Exam Syllabus

Sample Exam Syllabus ISTQB Foundation Level 2011 Syllabus Version 2.9 Release Date: December 16th, 2017. Version.2.9 Page 1 of 46 Dec 16th, 2017 Copyright 2017 (hereinafter called ISTQB ). All rights reserved. The authors

More information

CAMERA User s Guide. They are most easily launched from the main menu application. To do this, all the class files must reside in the same directory.

CAMERA User s Guide. They are most easily launched from the main menu application. To do this, all the class files must reside in the same directory. CAMERA User s Guide 1 Quick Start CAMERA is a collection of concise, intuitive and visually inspiring workbenches for cache mapping schemes and virtual memory. The CAMERA workbenches are standalone applications

More information

Software Engineering

Software Engineering Software Engineering chap 4. Software Reuse 1 SuJin Choi, PhD. Sogang University Email: sujinchoi@sogang.ac.kr Slides modified, based on original slides by Ian Sommerville (Software Engineering 10 th Edition)

More information

CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION

CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION Joseph Richards SGI, High Performance Systems Development Mountain View, CA richards@sgi.com Abstract The challenges involved in

More information

UNIT OBJECTIVE. Understand what system testing entails Learn techniques for measuring system quality

UNIT OBJECTIVE. Understand what system testing entails Learn techniques for measuring system quality SYSTEM TEST UNIT OBJECTIVE Understand what system testing entails Learn techniques for measuring system quality SYSTEM TEST 1. Focus is on integrating components and sub-systems to create the system 2.

More information

Object-Oriented Design Lecture 5 CSU 370 Fall 2008 (Pucella) Friday, Sep 26, 2008

Object-Oriented Design Lecture 5 CSU 370 Fall 2008 (Pucella) Friday, Sep 26, 2008 Object-Oriented Design Lecture 5 CSU 370 Fall 2008 (Pucella) Friday, Sep 26, 2008 Software Testing Testing techniques can be classified along several orthogonal dimensions. White Box (or Glass Box) Versus

More information

Software Testing. An Overview

Software Testing. An Overview Software Testing An Overview Software Testing Defined Software testing is the process of verifying & validating that a program or application: Meets technical specifications Meets business requirements

More information

Unit Testing as Hypothesis Testing

Unit Testing as Hypothesis Testing Unit Testing as Hypothesis Testing Jonathan Clark September 19, 2012 You should test your code. Why? To find bugs. Even for seasoned programmers, bugs are an inevitable reality. Today, we ll take an unconventional

More information

International Journal of Computer Engineering and Applications, Volume XII, Special Issue, April- ICITDA 18,

International Journal of Computer Engineering and Applications, Volume XII, Special Issue, April- ICITDA 18, International Journal of Computer Engineering and Applications, Volume XII, Special Issue, April- ICITDA 18, www.ijcea.com ISSN 2321-3469 SOFTWARE TESTING Rajat Galav, Shivank Lavania Student, Department

More information

Introduction to Software Testing

Introduction to Software Testing Introduction to Software Testing Software Testing This paper provides an introduction to software testing. It serves as a tutorial for developers who are new to formal testing of software, and as a reminder

More information

(From Glenford Myers: The Art of Software Testing)

(From Glenford Myers: The Art of Software Testing) A Testing Exercise: (From Glenford Myers: The Art of Software Testing) A program reads three integer values from a card. The three values are interpreted as representing the lengths of the sides of a triangle.

More information

Unit Testing as Hypothesis Testing

Unit Testing as Hypothesis Testing Unit Testing as Hypothesis Testing Jonathan Clark September 19, 2012 5 minutes You should test your code. Why? To find bugs. Even for seasoned programmers, bugs are an inevitable reality. Today, we ll

More information

Testing & Debugging TB-1

Testing & Debugging TB-1 Testing & Debugging TB-1 Need for Testing Software systems are inherently complex» Large systems 1 to 3 errors per 100 lines of code (LOC) Extensive verification and validiation is required to build quality

More information

Chap 2. Introduction to Software Testing

Chap 2. Introduction to Software Testing Chap 2. Introduction to Software Testing 2.1 Software Testing Concepts and Processes 2.2 Test Management 1 2.1 Software Testing Concepts and Processes 1. Introduction 2. Testing Dimensions 3. Test Concepts

More information

Software Testing CS 408

Software Testing CS 408 Software Testing CS 408 1/09/18 Course Webpage: http://www.cs.purdue.edu/homes/suresh/408-spring2018 1 The Course Understand testing in the context of an Agile software development methodology - Detail

More information

Evaluation Plan for Fearless Fitness Center Website

Evaluation Plan for Fearless Fitness Center Website Evaluation Plan for Fearless Fitness Center Website A three-step process will be used to prepare the Fearless Fitness website for use. First, at the outset of the project, Back-of-the-Envelope Task Analysis

More information

Variables and Data Representation

Variables and Data Representation You will recall that a computer program is a set of instructions that tell a computer how to transform a given set of input into a specific output. Any program, procedural, event driven or object oriented

More information

The testing process. Component testing. System testing

The testing process. Component testing. System testing Software testing Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating system

More information

Software Quality Assurance. David Janzen

Software Quality Assurance. David Janzen Software Quality Assurance David Janzen What is quality? Crosby: Conformance to requirements Issues: who establishes requirements? implicit requirements Juran: Fitness for intended use Issues: Who defines

More information

Testing in Agile Software Development

Testing in Agile Software Development Testing in Agile Software Development T 76.5613, Software Testing and Quality Assurance Slides by Juha Itkonen Lecture delivered by 4.10.2006 V-model of testing Benefits of the V-model Intuitive and easy

More information

TEST AUTOMATION. Excel Global Solutions Inc. All Rights Reserved.

TEST AUTOMATION. Excel Global Solutions Inc. All Rights Reserved. TEST AUTOMATION Table of Contents Introduction... 3 Automation Frameworks:... 3 Uses for a framework:... 3 Advantages of Test Automation over Manual Testing:... 3 Principles of Test Automation:... 4 Choosing

More information

Topics. Software Testing Test Driven Development Black Box Testing Unit Testing White Box Testing Coverage Testing Software Debugging

Topics. Software Testing Test Driven Development Black Box Testing Unit Testing White Box Testing Coverage Testing Software Debugging Supplemental Materials: Software esting CS2: Data Structures and Algorithms Colorado State University Chris Wilcox, Russ Wakefield, Wim Bohm, Dave Matthews opics Software esting est Driven Development

More information

Types of Software Testing: Different Testing Types with Details

Types of Software Testing: Different Testing Types with Details Types of Software Testing: Different Testing Types with Details What are the different Types of Software Testing? We, as testers are aware of the various types of Software Testing such as Functional Testing,

More information

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends! Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science

More information

Software Engineering and Scientific Computing

Software Engineering and Scientific Computing Software Engineering and Scientific Computing Barbara Paech, Hanna Remmel Institute of Computer Science Im Neuenheimer Feld 326 69120 Heidelberg, Germany http://se.ifi.uni-heidelberg.de paech@informatik.uni-heidelberg.de

More information

Requirements Gathering using Object- Oriented Models UML Class Diagram. Reference: https://www.tutorialspoint.com/uml/uml_class_diagram.

Requirements Gathering using Object- Oriented Models UML Class Diagram. Reference: https://www.tutorialspoint.com/uml/uml_class_diagram. Requirements Gathering using Object- Oriented Models UML Class Diagram Reference: https://www.tutorialspoint.com/uml/uml_class_diagram.htm Class Diagram The class diagram is a static diagram. It represents

More information

Achieving Right Automation Balance in Agile Projects

Achieving Right Automation Balance in Agile Projects Achieving Right Automation Balance in Agile Projects Vijayagopal Narayanan Vijayagopal.n@cognizant.com Abstract When is testing complete and How much testing is sufficient is a fundamental questions that

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing.

Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing. Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing. Overview The desire to use tools to increase validation productivity with the consequent

More information

Adopting Agile Practices

Adopting Agile Practices Adopting Agile Practices Ian Charlton Managing Consultant ReleasePoint Software Testing Solutions ANZTB SIGIST (Perth) 30 November 2010 Tonight s Agenda What is Agile? Why is Agile Important to Testers?

More information

E2: Heuristic Evaluation A usability analysis of decorativethings.com. Jordana Carlin LIS Spring 2014

E2: Heuristic Evaluation A usability analysis of decorativethings.com. Jordana Carlin LIS Spring 2014 E2: Heuristic Evaluation A usability analysis of decorativethings.com Jordana Carlin LIS-644-01 Spring 2014 2 E2: HEURISTIC EVALUATION Executive Summary Decorative Things is an online retailer of unique

More information

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd)

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) An incorrect code fragment for determining if three integers are equal, together with two test cases Flowchart has over 10

More information

Sample Exam. Advanced Test Automation Engineer

Sample Exam. Advanced Test Automation Engineer Sample Exam Advanced Test Automation Engineer Answer Table ASTQB Created - 08 American Stware Testing Qualifications Board Copyright Notice This document may be copied in its entirety, or extracts made,

More information

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing?

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing? Testing ECE/CS 5780/6780: Embedded System Design Scott R. Little Lecture 24: Introduction to Software Testing and Verification What is software testing? Running a program in order to find bugs (faults,

More information

Basic Training in Software Testing (2 Days)

Basic Training in Software Testing (2 Days) www.peaklearningllc.com Basic Training in Software Testing (2 Days) This is a practical hands-on seminar to cover the critical path of testing. Your instructor will be an experienced practitioner in the

More information

Program Correctness and Efficiency. Chapter 2

Program Correctness and Efficiency. Chapter 2 Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you

More information

Software Testing. Software Testing

Software Testing. Software Testing Software Testing Software Testing Error: mistake made by the programmer/ developer Fault: a incorrect piece of code/document (i.e., bug) Failure: result of a fault Goal of software testing: Cause failures

More information

CSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Unit Testing. Emina Torlak

CSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Unit Testing. Emina Torlak CSE 403: Software Engineering, Fall 2016 courses.cs.washington.edu/courses/cse403/16au/ Unit Testing Emina Torlak emina@cs.washington.edu Outline Software quality control Effective unit testing Coverage

More information

Test Automation. Fundamentals. Mikó Szilárd

Test Automation. Fundamentals. Mikó Szilárd Test Automation Fundamentals Mikó Szilárd 2016 EPAM 2 Blue-chip clients rely on EPAM 3 SCHEDULE 9.12 Intro 9.19 Unit testing 1 9.26 Unit testing 2 10.03 Continuous integration 1 10.10 Continuous integration

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK AUTOMATION TESTING IN SOFTWARE DEVELOPEMENT KALPESH PARMAR Persistent Systems Limited,

More information

What is the Best Way for Children to Learn Computer Programming?

What is the Best Way for Children to Learn Computer Programming? What is the Best Way for Children to Learn Computer Programming? Dr Alex Davidovic One of the defining characteristics of today s society is that the computers and mobile devices are the integral and natural

More information

Transforming Legacy Code: The Pitfalls of Automation

Transforming Legacy Code: The Pitfalls of Automation Transforming Legacy Code: The Pitfalls of Automation By William Calcagni and Robert Camacho www.languageportability.com 866.731.9977 Code Transformation Once the decision has been made to undertake an

More information

DOMAIN ENGINEERING OF COMPONENTS

DOMAIN ENGINEERING OF COMPONENTS 4-02-55 INFORMATION MANAGEMENT: STRATEGY, SYSTEMS, AND TECHNOLOGIES DOMAIN ENGINEERING OF COMPONENTS Carma McClure INSIDE Definition of Components; Component-Based Development; Reuse Processes; Domain

More information

Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Things to Review Review the Class Slides: Key Things to Take Away Do you understand

More information

A Passage to Penetration Testing!

A Passage to Penetration Testing! A Passage to Penetration Testing! EC-Council Cyber Research This paper is from EC-Council s site. Reposting is not permitted without express written permission. What Is Penetration Testing? A penetration

More information

Leveraging Formal Verification Throughout the Entire Design Cycle

Leveraging Formal Verification Throughout the Entire Design Cycle Leveraging Formal Verification Throughout the Entire Design Cycle Verification Futures Page 1 2012, Jasper Design Automation Objectives for This Presentation Highlight several areas where formal verification

More information

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals Software Testing in the textbook Software Testing Chapter 8 Introduction (Verification and Validation) 8.1 Development testing 8.2 Test-driven development 8.3 Release testing 8.4 User testing 1 2 Verification

More information

Guide to the Trial Edition

Guide to the Trial Edition Enterprise Architect User Guide Series Guide to the Trial Edition The Trial Edition of Sparx Systems Enterprise Architect provides a free 30-day exploration of the features and facilities of the application,

More information

Examination Questions Time allowed: 1 hour 15 minutes

Examination Questions Time allowed: 1 hour 15 minutes Swedish Software Testing Board (SSTB) International Software Testing Qualifications Board (ISTQB) Foundation Certificate in Software Testing Practice Exam Examination Questions 2011-10-10 Time allowed:

More information

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

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001 Integration and Testing Uses slides from Lethbridge & Laganiere, 2001 Testing phases: V model Requirements Acceptance Testing Specifications System Testing Design Integration Testing Detailed Design Unit

More information

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

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages No Source Code : Software Testing Black-Box Testing Test-Driven Development No access to source code So test cases don t worry about structure Emphasis is only on ensuring that the contract is met Specification-Based

More information

An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs

An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs Jaymie Strecker Department of Computer Science University of Maryland College Park, MD 20742 November 30, 2006 Abstract In model-based

More information

Verification and Validation. Verification and validation

Verification and Validation. Verification and validation Verification and Validation Verification and validation Verification and Validation (V&V) is a whole life-cycle process. V&V has two objectives: Discovery of defects, Assessment of whether or not the system

More information

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an

More information

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

Software Testing part II (white box) Lecturer: Giuseppe Santucci Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision

More information

Chapter 1. Storage Concepts. CommVault Concepts & Design Strategies: https://www.createspace.com/

Chapter 1. Storage Concepts. CommVault Concepts & Design Strategies: https://www.createspace.com/ Chapter 1 Storage Concepts 4 - Storage Concepts In order to understand CommVault concepts regarding storage management we need to understand how and why we protect data, traditional backup methods, and

More information

Software testing. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1

Software testing. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles

More information

Testing Techniques for Ada 95

Testing Techniques for Ada 95 SOFTWARE QUALITY ASSURANCE TOOLS & TECHNOLOGY PROFESSIONAL SERVICES ACADEMY P a g e 1 White Paper Testing Techniques for Ada 95 The Ada language is widely accepted as the language of choice for the implementation

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

The Path Not Taken: Maximizing the ROI of Increased Decision Coverage

The Path Not Taken: Maximizing the ROI of Increased Decision Coverage The Path Not Taken: Maximizing the ROI of Increased Decision Coverage Laura Bright Laura_bright@mcafee.com Abstract Measuring code coverage is a popular way to ensure that software is being adequately

More information

An Introduction to Systematic Software Testing. Robert France CSU

An Introduction to Systematic Software Testing. Robert France CSU An Introduction to Systematic Software Testing Robert France CSU Why do we need to systematically test software? Poor quality products can Inconvenience direct and indirect users Result in severe financial

More information

The Joel Test: 12 Steps to Better Code.

The Joel Test: 12 Steps to Better Code. The Joel Test: 12 Steps to Better Code http://www.joelonsoftware.com/articles/fog0000000043.html The Joel Test In general, a score of

More information

Black-box Testing Techniques

Black-box Testing Techniques T-76.5613 Software Testing and Quality Assurance Lecture 4, 20.9.2006 Black-box Testing Techniques SoberIT Black-box test case design techniques Basic techniques Equivalence partitioning Boundary value

More information

Testing & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010

Testing & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010 esting & Continuous Integration Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/1/20 University of Colorado, 20 1 Goals 2 Review material from Chapter of Pilone & Miles esting

More information

Design Better. Reduce Risks. Ease Upgrades. Protect Your Software Investment

Design Better. Reduce Risks. Ease Upgrades. Protect Your Software Investment Protect Your Software Investment Design Better. Reduce Risks. Ease Upgrades. Protect Your Software Investment The Difficulty with Embedded Software Development Developing embedded software is complicated.

More information

CMSC 132: OBJECT-ORIENTED PROGRAMMING II

CMSC 132: OBJECT-ORIENTED PROGRAMMING II CMSC 132: OBJECT-ORIENTED PROGRAMMING II Program Testing Department of Computer Science University of Maryland, College Park Debugging Is Harder Than Coding! Debugging is twice as hard as writing the code

More information

WHITE PAPER: ENTERPRISE AVAILABILITY. Introduction to Adaptive Instrumentation with Symantec Indepth for J2EE Application Performance Management

WHITE PAPER: ENTERPRISE AVAILABILITY. Introduction to Adaptive Instrumentation with Symantec Indepth for J2EE Application Performance Management WHITE PAPER: ENTERPRISE AVAILABILITY Introduction to Adaptive Instrumentation with Symantec Indepth for J2EE Application Performance Management White Paper: Enterprise Availability Introduction to Adaptive

More information

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

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing Black Box Testing EEC 521: Software Engineering Software Testing Black-Box Testing Test-Driven Development Also known as specification-based testing Tester has access only to running code and the specification

More information

SeU Certified Selenium Engineer (CSE) Syllabus

SeU Certified Selenium Engineer (CSE) Syllabus SeU Certified Selenium Engineer (CSE) Syllabus Released Version 2018 Selenium United Version 2018, released 23.08.2018 Page 1 of 16 Copyright Notice This document may be copied in its entirety, or extracts

More information

DESIGN AS RISK MINIMIZATION

DESIGN AS RISK MINIMIZATION THOMAS LATOZA SWE 621 FALL 2018 DESIGN AS RISK MINIMIZATION IN CLASS EXERCISE As you come in and take a seat What were the most important risks you faced in a recent software project? WHAT IS A RISK? WHAT

More information

TestComplete 3.0 Overview for Non-developers

TestComplete 3.0 Overview for Non-developers TestComplete 3.0 Overview for Non-developers Copyright 2003 by Robert K. Leahey and AutomatedQA, Corp. All rights reserved. Part : Table of Contents Introduction 1 About TestComplete 1 Basics 2 Types of

More information

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only Chapter 22 Software Testing Strategies Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014

More information

Volume II, Section 5 Table of Contents

Volume II, Section 5 Table of Contents Volume II, Section 5 Table of Contents 5...5-1 5.1 Scope...5-1 5.2 Basis of...5-1 5.3 Initial Review of Documentation...5-2 5.4 Source Code Review...5-2 5.4.1 Control Constructs...5-3 5.4.1.1 Replacement

More information

By V-cubed Solutions, Inc. Page1. All rights reserved by V-cubed Solutions, Inc.

By V-cubed Solutions, Inc.   Page1. All rights reserved by V-cubed Solutions, Inc. By V-cubed Solutions, Inc. Page1 Purpose of Document This document will demonstrate the efficacy of CODESCROLL CODE INSPECTOR, CONTROLLER TESTER, and QUALITYSCROLL COVER, which has been developed by V-cubed

More information

WHITE PAPER Application Performance Management. The Case for Adaptive Instrumentation in J2EE Environments

WHITE PAPER Application Performance Management. The Case for Adaptive Instrumentation in J2EE Environments WHITE PAPER Application Performance Management The Case for Adaptive Instrumentation in J2EE Environments Why Adaptive Instrumentation?... 3 Discovering Performance Problems... 3 The adaptive approach...

More information

MONIKA HEINER.

MONIKA HEINER. LESSON 1 testing, intro 1 / 25 SOFTWARE TESTING - STATE OF THE ART, METHODS, AND LIMITATIONS MONIKA HEINER monika.heiner@b-tu.de http://www.informatik.tu-cottbus.de PRELIMINARIES testing, intro 2 / 25

More information