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