• No se han encontrado resultados

6. PRODUCTOS

7.2. El investigador como sujeto central del proceso de conocimiento

SWE 3643 Software Testing and Quality Assurance

Southern Polytechnic State University (to be Kennesaw State Univ. in 2015) Marietta, Georgia

Frank Tsui [email protected]

http://cse.spsu.edu/ftsui (class notes available when I offer this course)

Catalogue description:

This course shows how to define software quality and how it is assessed through various testing techniques. Topics include review/inspection techniques for non-executable software, black-box and white-box testing techniques for executable software and test analysis. Specific test-case development techniques such as boundary value, equivalence class, control paths, and dataflow paths test are introduced. Different levels of testing such as functional, component, and system/regression tests are discussed with the concept of configuration management.

Expected Outcomes:

After taking this course, the student will be able to:

• Explore and understand the notion of quality and the definition of quality • Understanding and setting quality goals, measuring techniques, and analyzing

product and process quality.

• Learn how to develop test plan, test process, test scenarios, and test cases to achieve the quality goal.

• Exploring and mastering techniques to achieve the quality goals for software product through a) inspection/reviews, b) black/white box testing techniques, and c) verification using unit, component, system and regression test.

• Introduce the students to the notion of and techniques to achieve the quality goals for the software project through QA planning, through configuration management and through software development process improvement

Where does the course fit in your curriculum:

This is a 3-credit-hour required course taken by all undergraduate software engineering majors and game design majors in the second semester of their sophomore (2nd) year or later. Introduction to Software Engineering course is a pre-requisite for this course. Recent class size for this course has been approximately 30 to 35 students. Some computer science majors also take this course as an elective.

What is covered in the course:

Definitions, Basic Concept, and Relationships of Quality, Quality Assurance, and Testing

Overview of Different Testing Techniques

Testing of non-Executable:

Inspection/Review Technique/Process (a la M. Fagan)

Review of Basic Sets and Propositional Calculus

Black Box (Functional)Testing techniques: Boundary Value testing, Equivalence Class based testing, Decision Table based testing, and their relationships

Review of Basic Graph Theory White Box (Structural) Testing

techniques: Path/Basis testing, Dataflow testing, Slice-based testing, and their relationships

Test Plan, Test Metrics and Test Tracking

Different Levels of Testing and

Techniques for Unit testing, Functional testing, Integration testing, and System testing

Configuration management for Integration and System testing

Different models for Interaction Testing

What is the format of the course:

The course is taught in traditional face-to-face classroom style with lectures, student projects, and student presentations. The course meets for1.5 hours twice per week over a 16 -week semester (including final exam). Students also work on small teams outside of class a) to prepare for inspection/review which is conducted in class, b) to prepare for test case development, test execution, and test result documentation and analysis, c) to

prepare for class presentation on product quality based on analysis of test goal, test team status, and test results.

Students are assessed individually through two closed book class-room exams. Students are also assessed by teams, based on their team projects in terms of their individual effort, contribution, and attitude. Team projects assessment also includes students’ assessments of each other.

Course textbooks and materials:

There is one textbook:

Software Testing, A Craftsman’s Approach, by Paul C. Jorgensen, Auerbach Publications, 2008 ISBN: 0-8493-7475-8

Additional readings are sometimes used for some topics (for example: “Advances in Software Inspections” by M. Fagan, “What is Software Testing and Why Is It So Hard” by J. Whittaker, “How to Design Practical Test Cases” by T. Yamaura, “Clearing a Career Path for Software Testers” by E. Weyuker , et al, etc.)

Pedagogical Advice:

Students tend to focus on various testing techniques and lose sight of why we are doing these tasks. So, they need to be reminded of why and how much different testing we need to perform in relationship to various levels of quality goals.

Body of Knowledge coverage:

KA Knowledge Unit Hours

QUA.pda QUA.pca VAV.fnd

Basic definitions, concepts, and relationships among

quality, quality assurance (product and process), and testing. 3.0 hours

VAV.fnd Introductory definitions and concepts of different testing techniques (for non-executables and executables), test process, and levels of testing

1.5

VAV.rev Inspection and review techniques and process for non-

executables such as requirements and design documents 3.0 FND.mf Basic set theory and propositional calculus for testing 1.5 VAV.fnd

VAV.tst General Concept of Black- Box (functional testing techniques) and Boundary-Value/Robustness testing 4.0 VAV.tst Equivalence class based testing technique 1.5 VAV.tst Decision-table based testing technique 1.5 FND.ef Basic graph theory, paths, and adjacency matrix for testing 1.5

VAV.fnd

VAV.tst General Concept of White-box (structural testing technique) and various paths-based coverage testing techniques, including Basis testing and Cyclomatic complexity number

5.0

VAV.tst Dataflow testing 3.0

VAV.tst Slice-based testing 1.0

VAV.par Evaluation of and metrics for relationship of gaps and redundancies among the different Structural Testing techniques

1.5

PRO.pp VAV.par QUA.pca

Test planning, test metrics, and test status tracking process and techniques

3.0

VAV.par PRO.cm

Test Execution Processes, Levels of Testing and Control, and Configuration Management

2.0

VAV.tst Integration testing techniques (top down, bottom-up, neighborhood, MM-path, etc.) and metrics

2.0

VAV.rev

VAV.tst Systems and Regression testing techniques using threads and operational profile; relationship to customer “acceptance” test

2.0

FND.ef VAV.rev VAV.tst

Interaction testing and modelling techniques using petri-net, state machine, decision tables, object oriented classes, etc.

4.5

Additional topics

(none)

Other comments