Short Course Topic: Advances in Component-Based Software Testing

Similar documents
Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Measuring Component Performance Using A Systematic Approach and Environment

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

Monitoring Software Components and Component- Based Software

Modeling Mobile Application Test Platform and Environment: Testing Criteria and Complexity Analysis

Name of chapter & details

How To Understand Software Engineering

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

How To Write Software

IT3205: Fundamentals of Software Engineering (Compulsory)

Lina khalid Ahmed Department of Software Engineering Zarqa University Amman, Jordan

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Applying 4+1 View Architecture with UML 2. White Paper

Separation of Concerns in Component-based Robotics

Component Based Development in Software Engineering

Engineering. Software. Eric J. Braude. Michael E. Bernstein. Modern Approaches UNIVERSITATSBIBLIOTHEK HANNOVER ' TECHNISCHE INFORM ATIONSBIBLIOTHEK

Elite: A New Component-Based Software Development Model

Weighted Total Mark. Weighted Exam Mark

Course Outline. Foundation of Business Analysis Course BA30: 4 days Instructor Led

Certified Software Quality Engineer (CSQE) Body of Knowledge

What is a life cycle model?

Good Software. Lecture 6 GSL Peru 2014

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

The SPES Methodology Modeling- and Analysis Techniques

Online Trading and Negotiation

<name of project> Software Project Management Plan

Life Cycle Activity Areas for Component-Based Software Engineering Processes

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Software Components and COTS in Software System Development

CONFIGURATION MANAGEMENT PLAN GUIDELINES

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

CREDENTIALS & CERTIFICATIONS 2015

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

An Overview of Challenges of Component Based Software Engineering

THE EVOLUTION OF COMPONENT BASED SOFTWARE ENGINEERING FROM THE TRADITIONAL APPROACH TO CURRENT PRACTICES

Building Reusable Testing Assets for a Product Line

CREDENTIALS & CERTIFICATIONS 2016

Test Case Design Using Classification Trees and the Classification-Tree Editor CTE

Modern Industrial Automation Software Design

Design of automatic testing tool for railway signalling systems software safety assessment

7 Component-based Development Process and Component Lifecycle

Codeless Test Automation for Web Apps

Software testing. Objectives

CMSC 435: Software Engineering Course overview. Topics covered today

BCS HIGHER EDUCATION QUALIFICATIONS. BCS Level 5 Diploma in IT. Software Engineering 1. June 2015 EXAMINERS REPORT

I. General Knowledge, Conduct, and Ethics (16 Questions)

How To Test A Web Based Application Automatically

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Reuse and Capitalization of Software Components in the GSN Project

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

Body of Knowledge General Knowledge (16 questions) Quality principles Benefits of software quality Organizational and process benchmarking

A Model for Component Based E-governance Software Systems

Testing Tools Content (Manual with Selenium) Levels of Testing

Managing Standard Components in Large Software Systems

SOFTWARE ENGINEERING PROGRAM

Certified Software Quality Engineer (CSQE) Body of Knowledge

Event Manager Application for Android

Software Certification and Software Certificate Management Systems

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle

Quality Management. Lecture 12 Software quality management

Do You Have the Right Stuff to be a Good Tester?

Applying Software Wrapping on Performance Monitoring of Web Services

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

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

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

Testing of safety-critical software some principles

A Framework of Model-Driven Web Application Testing

Programme Syllabus for Software Engineering Master s Programme, 120 credits

Introduction to Computers and Programming. Testing

An Architecture-Based Approach for Component-Oriented Development

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Using Provenance to Improve Workflow Design

Survey on software testing techniques in cloud computing

Object-Oriented Systems Analysis and Design

Certified Software Quality Engineer

Object Oriented Analysis and Design and Software Development Process Phases

BAL2-1 Professional Skills for the Business Analyst

Fundamentals of Measurements

Agenda. Overview. Federation Requirements. Panlab IST Teagle for Partners

Comparing the Testing Approaches of Traditional, Object-Oriented and Agent- Oriented Software System

SOFTWARE TESTING TRAINING COURSES CONTENTS

Component Based Software s: Issues Related to Test the Compatibility of the Components

Testing A Tutorial. Alexander Klaus. Fraunhofer IESE. Dept. Information Systems Quality Assurance

Subject & Course: CS362 Software Engineering II. Credits: 4. Instructor s Name: Arpit Christi. Instructor s christia@onid.oregonstate.

WEB TESTING APPLICATION WITH PHP AUTOMATED TOOL

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

A Case study based Software Engineering Education using Open Source Tools

Testing as a Service on Cloud: A Review

STEP UP Two-Day Training Program

SOFTWARE TESTING. A Craftsmcm's Approach THIRD EDITION. Paul C. Jorgensen. Auerbach Publications. Taylor &. Francis Croup. Boca Raton New York

II. TYPES OF LEVEL A.

The scalability impact of a component-based software engineering framework on a growing SAMR toolkit: a case study

Demonstration of an Automated Integrated Test Environment for Web-based Applications

Lecture 9: Requirements Modelling

UML-based Test Generation and Execution

Basic Testing Concepts and Terminology

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

Transcription:

Short Course Topic: Advances in Component-Based Software Testing - Issues, Challenges, Solutions and Techniques By Jerry Zeyu Gao, Ph.D. San Jose State University Schedule: January 16-18, 2006, Cost: $1000/per person Location: San Jose State University Contact: Jerry Gao at jerrygao@email.sjsu.edu URL: http://www.engr.sjsu.edu/gaojerry Motivation: Widespread development and reuse of software components has been regarded by many as one of the next biggest phenomena for software. Reusing high-quality software components in software development has the potential of drastically improving the quality and development productivity of component-based software. However, widespread reuse of a software component with poor quality may literally lead to disasters. Component-based software engineering involves many unique characteristics, some of which have caused new issues, challenges, and needs in testing and quality assurance of components and component-based software. Improper reuse of software components of good quality may also be disastrous. Testing and quality assurance is therefore critical for both software components and component-based software systems. Although a number of recent books address the overall process of component-based software engineering and specific methods for requirements engineering, design, and evaluation of software components and component-based software. However, only a few of published papers focuses on testing and quality control of reusable software components and component-based software systems. The primary goal of this tutorial is to discuss the issues, challenges and needs in testing of components and component-based software. Moreover, this tutorial reports the recent advances and research efforts in developing new solutions to solve those problems and meet the needs. Instructional Objectives: This tutorial course provides an in-depth insight look at the technical issues and managerial aspects of testing software components and component-based programs from the perspectives of component-based software engineering. You will learn the state-of-the-art practice, issues and challenges, new solutions and research efforts in component testing, component-based program validation, and test automation..

At the end of the tutorial, the participants will know: What are the major differences between conventional software modules and modern software components? What are the new issues and challenges in testing software components for component-based software engineering projects? What are the major differences between conventional software and component-based software? Why is component-based software testing important? What are the new issues and challenges in testing component-based software? What is component testability? How to increase component testability by developing built-in and testable software components? What are the applicable unit testing methods for components in component-based software engineering? How to conduct integration and regression testing for component-based software? What are the issues and solutions in component integration, regression testing of component-based software? How to conduct performance testing and measure the performance of component-based software and its components? What are the current advances and research efforts in component-based software testing? Audience: The targeted audience includes technical managers, software testing engineers, quality assurance people, and development engineers who are working on component-based software projects. In addition, the tutorial is designed to help software engineering researchers and graduate students to learn the basic issues and challenges as well as new solutions in testing of third-party components and component-based programs. The tutorial will be very useful for professionals who are interested in understanding the general concepts and methods in component testing and component-based software validation. Prior Knowledge: This tutorial assumes that participants have the general understanding about the basic concepts of software engineering and software testing methods, and have some working experience in software development and validation. Referenced Book and Materials: Jerry Zeyu Gao, H.-S. Jacob Tsao, and Ye Wu, Testing and Quality Assurance for Component-Based Software, Artech House Publishers, 2003. Recently published papers on testing and quality assurance for component-based software from 1990 to 2005. Major Topics: (3 day) Part I: Introduction to Component-Based Software Testing (Day One)

1. Introduction to testing of modern software components in CBSE Introduction to modern software components. The evolution of software components What is a software component? Properties of software components in CBSE Traditional software modules vs. software components in CBSE Engineering process of software components Basic elements of software components in component-based software engineering Component testing vs. module testing Component testing in component-based software engineering Vendor-oriented component testing process User-oriented component testing process Issues and challenges in component testing for CBSE Issues and challenges in vendor-oriented component validation Issues and challenges in user-oriented component validation Component testing myths and other needs 2. Introduction to validation of component-based software Introduction to component-based software Properties of component-based software Traditional programs vs. component-based software Component-based software infrastructure component model Engineering process for component-based software Introduction to component-based software testing Issues and challenges in testing and maintenance for component-based software Testing models for component-based software Testing and maintenance methodologies Enterprise-based test process for component-based software 3. Revisit of software validation methods for components Different types of software components Issues and challenges in black box validation methods for modern software components (COTS) Applicable black box testing techniques Equivalence partition Boundary value analysis Decision table testing Syntax-based testing Issues and challenges in white-box testing of modern components (COTS) Applicable white box testing techniques Basis-path testing Branch-based testing Dataflow testing State-based testing

4. Testing coverage criteria for software components Introduction to testing coverage White-box testing coverage criteria for components Black-box testing coverage criteria for components Challenges and needs Part II: Component Testability and Test Automation (Day Two) 1. Introduction to component testability in component-based software Basic concepts of software testability Understand component testability Component understandability Component observability Component traceability Component controllability Component test support capability Issues, needs and challenges in component-based software development 2. Design for Component Testability Approaches to increase component testability Current research efforts and solutions in building testable components Comparison of these approaches A systematic approach to construct testable components Proposed component architecture model for testable components Consistent component test interfaces A component test framework General test bed for testable components Application examples 3. A Component Testability Model An overview of the model (objectives, notations, and semantics) Modeling component understandability, controllability, observability, traceability, and test support capability Applications and usefulness 4. Component testability verification An overview of different approaches A process-oriented component testability verification method inspection check lists and verification guidelines for component specification and design documents Case study and application examples 5. Component testability measurement

Component testability measurement in a component process Model-based component testability metrics Case study and application examples Required supporting tool 6. Test automation and tools for software components Basics of software test automation Software test automation process Classification of test tools for software components Component-oriented test tools (ADLscope, Junit, Java CTT) Component test automation in CBSE (challenges, issues, and needs) Part III: Validation of Component-Based Systems (Day Three) 1. Integration testing for component-based software Introduction to integration for component-based programs Traditional integration testing methods Test model for integration testing of component-based software UML-based integration testing method Architecture-based integration method Component-based integration strategy Design for component integration 2. Regression testing for modern software components Introduction to software regression testing Regression testing process and activities Regression testing for modern software components Change and impact analysis for components Test case selection and test suite refreshment Metadata-based regression validation method Model-based regression validation method Regression testing for perfective and adaptive activities Other issues and challenges 3. Regression testing for component-based systems Introduction to component-based software regression testing Major issues and challenges Re-integration strategies Change and impact analysis for component-based systems System test case selection and test suite refreshment Other issues and challenges 4. Performance testing and evaluation of component-based software Basics of performance testing and evaluation (focuses, objectives, )

Performance testing process Performance metrics (reliability, availability, scalability, throughput, utilization,..) Component-based performance evaluation models Necessary supporting tools 5. Testing frameworks and environments for component-based software Built-in test components and wrappers Reusable component test connectors Reusable component test wrappers A plug-in-and-play testing environment for components A framework and supporting environment for tracking and monitoring components Plug-in-and-measure component performance measurement Testing tool collaboration for component-based software Testing Object-Oriented Software Author: David C. Kung, Pei Hsia, Jerry Gao ISBN: 0-8186-8520-4 Publisher: Wiley-IEEE Computer Society Press Publication Date:October 1998 280 pages Books Testing and Quality Assurance for Component-Based Software Author: Jerry Zeyu Gao, H.-S. Jacob Tsao, Ye Wu ISBN: 1580534805 Publisher: Artech House, Incorporated Publication Date: 2003 466 pages About The Instructor: Jerry Z. Gao Ph.D. is associate professor of Computer Engineering Department at San Jose State University in California. Dr. Gao has co-authored two technical books on software testing, and written many technical papers on software engineering and object-oriented technology. His current research interests include component-based software engineering, software testing methodology and test automation, information technology and Internet computing, mobile computing and wireless commerce. Dr. Gao has over 10 years research experience and 8 years software development and management experience in software engineering. Before he joined San Jose State University, he worked for Fujitsu Network Communications System, Inc. as a manager of an R&D group in the software-engineering department. At Fujitsu, he was instrumental in developing an enterprise software production environment over the Internet. His team is the driving force to establish an enterprise-oriented software-engineering environment over the Internet in Fujitsu. Now, he has two technical books, and over 55 technical papers in IEEE/ACM journals and magazines as well as international conferences. He co-authored the book on Object-Oriented Software Testing published by IEEE Computer Society Press 1998. Recently, he has published a new book, titled as "Testing and Quality Assurance for Component- Based Software", by Artech House Publishers in September 2003. His third book, Engineering Wireless-Based Software Application Systems, will be published in March, 2006.

In the past years, he has been invited to offer a number of tutorials in software testing and information technology. In 2003, he has been invited to offer a technical tutorial, titled as Testing Component-Based Software Issues, Challenges, Needs, and Solutions in Automated Software Engineering 2003 18 th IEEE International Conference. In 2004, he and his co-author (Dr. Ye Wu) are invited to offer a technical tutorial, titled as Testing Component-Based Software in 3 rd International Conference on COTS-Based Software Systems (ICCBSS 2004). Since 2002 he has worked and delivered on a number of successful R&D and consultant projects in software test automation and component-based system testing for large software and telecommunication companies. In addition, Dr. Gao also has served as committee members for a number of international conferences in software engineering, information technology, and e-commerce. Recently, he has successfully organized and delivered the First International Workshop on Testing and Quality Assurance for Component-Based System (TQACBS 2005). Now he is organizing TQACBS 2006 in Chicago, and the first International Workshop on Evaluation and Evolution of Component Composition in San Francisco in 2006.