Designing and teaching a course like Software Quality Assurance (SQA) always poses enormous challenges [1]. Most of the students taking the SQA course lack practical exposures to the quality issues addressed by the software industries, and many of the SQA topics are of theoretical in nature. The challenge for the course designer is to select the appropriate subject areas from the enormous amount of available theoretical body of knowledge, and to provide students with a balanced framework that would enable them to apply these theoretical skills to software quality issues of information technology industries. The difficulties encountered in previous years in delivering the course, and experiences gained there-from, provided the impetus to re-evaluate the courseware and to re-examine the strategies for the delivery of the courseware. This paper discusses the strategies used in designing and teaching the Software Quality Assurance course for the fourth year students of the Bachelor of Technology in Information Technology (IT) degree program at Kwantlen University College. The paper provides an overview of the curriculum design, discusses the strategies used in integrating the theory with relevant practices commonly encountered in IT industries, outlines the challenges encountered in delivering the courses, and describes the successes that have been achieved.
Kwantlen University College is offering the Software Quality Assurance course to the Bachelor of Technology in Information Technology degree program since summer 2000. The course was initially designed to meet the existing demand in the industry for technical personnel with strong background in Software Quality Assurance theory and techniques. This course is mandatory for all fourth year Bachelor of Technology in Information Technology degree students. The course will address the fundamental concepts of Software Quality Assurance. This course provides students with a solid foundation of knowledge on which to build a career in Software Quality assurance, and covers topics pertaining to the Software Quality Engineer certification of American Society of Quality (ASQ).The curriculum is designed to make academic theory relevant through exercises and projects normally encountered in a real world environment.
In the Software Quality Assurance course [1] students will learn the essential features involved in developing timely, cost-effective and high quality software products that meet the user's requirements. They will examine the effective deployment of quality assurance procedures throughout the entire software development process. The subject material is presented from a very broad base, with each lesson designed to target specific software quality assurance tasks. The course is designed in a modular fashion with each module focusing on specific Software Quality Assurance topic areas. With this modular framework approach, the students will achieve core competencies in the field of Software Quality Assurance. The framework comprises of the following two modules [see Appendix 1: Table of Modules], with each module being further subdivided to cover specific topic areas:
The supporting resources pertaining to Module 1: may be obtained from the Software Quality Engineer Certification (CSQE) Body of Knowledge [2]. This is a remarkable compendium of concepts and resources which is unrivalled.
Material pertaining to Module 2: Software Testing is referenced primarily from the best-selling Software Testing text Testing Computer Software by Kaner, Falk, Nguyen [3], from Wiley publication. The content was supplemented with the applicable IEEE 829-1998 standards for Software Test Documentation [5], and multiple articles available on software testing websites [4].
Classes for the course consist of a series of lectures, assignments, in class projects, term project and project presentation. The lecture will serve to introduce topics. However, there is a strong focus on reading, appraisal and assimilation of appropriate material in the textbook to provide further detail and context . Students are advised to read to relevant materials, as they will help in their assignment, and provide additional in-depth information. The course is presented and delivered with a strong emphasis on class interaction and participation. Students can be easily distracted in an evening class, particularly if they have access to a computer network with a browser. Given the strong positive correlation linking student participation to student performance, it is felt that the interests of the students would be best served with a direct incentive to participate, and rewards for such participation. As such (25%) of total course marks are assigned for student participation.
The course materials are segmented into independent modules [Appendix 1: Table of Modules]. The modular approach allows the courseware to be modified as required without disrupting the entire course. Students are provided with the course materials at the start of the class. Lectures are supplemented by a corresponding case study [Appendix 2: Assignments and Case Studies], which requires the students to apply the course material to a given scenario.
Students are encouraged to contribute to the collective wisdom of the class. There are areas where students have particular expertise. This insight and experience are drawn out to assist the other students understand the concepts. This also helps to validate the course material and reinforce the importance of the software quality assurance principles. After 60-70% of the course materials have been covered, the rest of the schedule times are devoted to application of the material completed using number of case studies [Appendix 2: Assignments and Case Studies]. Students are then required to apply the knowledge gained through course materials to typical situations, and elaborate on particular areas.It is observed that this segment of the schedule is proven to be very valuable in expanding everyone's knowledge and perspective. It also shifts the burden of enlightenment from instructor to many students, expanding the knowledge base exponentially.
There are two midterm examinations to verify that the students are competent and knowledgeable in the subject matter. The first midterm examination is devoted to the Software Quality Engineering topics, and second one to Software Testing.
There is no final examination for this course. Students are required to complete an assigned project. A project assignment [Appendix 3: Final Project Assignment] contains two parts: case studies and presentations. The case studies require significant works to be done on different aspects of Software Quality Assurance. The oral presentations permit students to provide their personal perspective on an area which particularly interest them, or on which they had experience or competency. This expanded the scope of the course considerably, and gave the students ownership of the course.
The course adds value to the students in a variety of ways:
There were many challenges that need to be addressed throughout the course:
The delivery of the courseware based on modularized framework has proven to be successful. However, there are number of issues that must be considered to improve the courseware:
The modularized approach used to teach the Software Quality Assurance course with extensive application of case studies has positive impact on the students learning outcome. The separation of theoretical components of Software Quality Assurance knowledge base from specific issues of Software Testing and Validation components enable the students to understand the concept of software quality and its importance in industry. With real life examples as the motivating factors, the courseware provides in-depth and meaningful content, and conveys to students the theoretical principles of Software Quality Assurance, and its potential practical usage. The SQA knowledge and training acquired through the project and case studies will provide the students skills and valuable experiences required by the IT industries. It is our belief that the introduction to modular approach to teach Software Quality Assurance principles and practices is successful.
We are very appreciative to our students who generously shared their ideas and suggestions, for which we are grateful.
[1] Abhijit Sen, Elsie Au, Software Quality Assurance: A Perspective in Teaching , Western Canadian Conference on Computing Education, Nelson, British Columbia, 2001, html version at,
http://www.cs.ubc.ca/wccce/program01/papers01/abhijit.html
[2] Software Quality Engineer Certification (CSQE) Body of Knowledge, American Society of Quality, http://www.asq.org/cert/types/csqe/references.html
[3] Cem Kaner, Jack Falk, Hung Q. Nguyen, Testing Computer Software, 2nd Edition, John Wiley & Sons, 1999.
[4] Resources on testing techniques and expertise, http://www.qacity.com , http://stickyminds.com
[5] IEEE Standard for Software Test Documentation, ANSI/IEEE STD 829-1983 - Description,
http://standards.ieee.org/reading/ieee/std_public/description/se/829-1983_desc.html
Appendix
1: Table of Modules
MODULE |
SUBJECT |
DESCRIPTION |
Module 1.1 |
Quality Assurance – The Costs and Rewards of Quality |
The Plan-Do-Check-Act cycle. Scope and purpose of QA. Costs of Quality (Preventive, Appraisal,
Internal Failure, External Failure).
Business Risk management. Due
Diligence. Return on Investment of Software Quality Assurance. |
Module 1.2 |
Quality Tools and Statistical Techniques |
General tools and techniques for analyzing and
improving performance including brainstorming, diagrams, charts, etc. |
Module 1.3 |
Software QA Planning |
Different aspects needed to address scope of
Software QA |
Module 1.4 |
Software Development Life Cycles |
Introduction to different Software Development
practices and methods (i.e. Waterfall, Staged Delivery, Prototype, Object
Oriented). |
Module 1.5 |
Software Maintenance |
Different types of Software Maintenance, and impact
on QA. |
Module 1.6 |
Software Configuration Management |
Aspects of ensuring control of physical and
functional attributes of a product or system.
Version Control, Change Management, Configuration Accounting, and
Product Documentation. |
Module 1.7 |
Software Auditing |
Best practices to review products, processes, and
systems. |
Module 1.8 |
Software Metrics and Measurement |
The methods for obtaining objective evidence of
performance with respect to personnel, products, and resources. |
Workshop – Case Studies and Group Projects |
||
Module 2.1 |
Software Inspections, Verification, and Validation |
Introduction to development inspections, code
reviews, etc. Methods to ensure that software meets requirements and is fit
for use and purpose in defined operating environments. |
Module 2.2 |
Software Test Overview |
Introduction to general aspects of Software
Testing. |
Module 2.3 |
Test Types |
Different types of tests which could be conducted. |
Module 2.4 |
Error Types |
Different types of errors which testing should
catch. |
Module 2.5 |
Test Planning and Documentation |
How to plan software tests. IEEE Software Test
Documentation system and format. |
Module 2.6 |
Software Testing in Product Development |
Explanation of how software testing is integrated
with other phases and tasks of software product development. |
Module 2.7 |
Testing Internet Applications |
Distinct methods of testing software applications
which use the internet. |
Module 2.8 |
Automated Testing |
Methods and practices for successful Automated
Testing |
Workshop – Case Studies for Developing Test Plans, Test Cases. |
||
|
Appendix 2: Assignments and Case Studies
You are in the role of a Quality Advisor to a two-person start up that wishes to develop a brand new software product. The product is a software program which monitors the maintenance and calibration schedules of surgical equipment. It will be used in hospitals and clinics. The intended users are the doctors and clinical specialists.
Justify to the two entrepreneurs why there should be Quality Plan in place. Provide a method of how a Quality Plan might be constructed. Identify Quality Techniques which may be used to create a customized plan that is appropriate for the business.
Case Study 2 (Quality Tools and Techniques, Test Planning, Test Case Preparation):
You are the Software QA Manager for a company that makes
commercial games. The company has had a history of the following problems:
- Late development schedules;
- Reduced times allowed for QA testing;
- High incidents of product rejects due to poor product performance
and functionality;
- A high number of customer complaints, most focusing on
10 or 12 main issues;
As this is a game manufacturer, the corporate culture is very loose and playful. There is no sense of structure or formality.
What steps would you take to use your team (20 people) and resources to have the most impact in finding the most defects possible and creating accountability for quality assurance?
Case Study 3 (Software Metrics, Verification and Validation, Configuration Management):
You are a Software Quality Auditor, hired by a customer to follow up on a
software company that has been delivering software with performance problems.
How would you plan and execute the audit so that you could obtain sufficient
objective evidence to determine:
- Is the company conducting a sufficient amount of inspections,
tests, verifications, and validations?
- Is the product captured in a configuration management system?
- Does the company track its performance, and demonstrate a commitment to
continual improvement?
Case Study 4 (Project Management, Software Maintenance, and Configuration Management):
You are the Project Manager, responsible for ensuring that your existing products,
as well as those installed software-only products at your 140 customer sites,
have the correct Configuration Management.
- Identify those steps needed to ensure that your products are tested,
approved, and that customers have the “latest and greatest” version.
- Describe the steps taken to estimate the time and resources needed
to plan this project.
Case Study 5 (Software Quality Planning, Software Development Life Cycles:
Consider the following Software Development project plan for accounting software:
Step 1: Code new software program for automating accounting tasks.
Step 2: Show program to marketing people.
Step 3: Modify program to make it more marketable.
Step 4: Research for innovative product features.
Step 5: Modify program to incorporate new features.
Step 6: Take program to trade shows and conferences.
Step 7: Sell program to customers.
Step 8: Collect complaints from customers about program quality.
Step 9: Modify program to address bugs and quality issues.
Step 10: Release program fixes to customers as needed,
reflective of their particular environments and reported problems.
Step 11: Have focus groups with customers to determine acceptance requirements.
Step 12: Modify software to address requirements gaps.
Describe how you would modify this project plan to obtain better results.
Case Study 6 (Software Audits):
Consider the following Internal Audit project plan for reviewing software practices:
Step 1: Arrive at 4:00 AM to review documentation and files in secret.
Step 2: Obtain initial conclusions about department.
Step 3: Catch employees by surprise so they are unprepared for audit.
Step 4: Conduct interviews with employees.
Step 5: Point out contradictions and inconsistencies to interviewees.
Step 6: Have an audit closing meeting and introduce audit purpose and scope.
Step 7: Threaten participants that a bad report could have bad consequences.
Step 8: Offer to compromise on audit findings for improved cooperation on other issues.
Step 9: Tell client what they want to hear about the auditee.
Describe how you would modify this project plan to obtain better results.
Appendix 3: Final Project Assignment
The Project consists of two parts: Preparation and Presentation
1. Preparation:
You are required to provide detailed responses to each of the Case Studies.
Please read the situation, and provide responses for the following:
- Summary of Quality Assurance approach;
- Project Plan;
- Test Plan;
- Summary of up to 5 proposed Test Cases (brief statement of each Test Case).
Please use your own words and respond as if in a real-life situation.
You may collaborate with other students, but you will be marked for your individual submission. Responses are due at the beginning of class.
2. Presentation:
Each student will have a five minute opportunity to elaborate on a Software Quality topic in a particular area of interest. Students have the option of choosing their area of interest, or one will be provided for them.
Examples could be:
- Modifying a Corrective Action system for Software Deficiencies;
- Training and mentoring new testers;
- Effective testing tools for software
As this is an interactive exercise, students should be prepared for questions and comments from other students.
Students will be called upon randomly to give their presentations.
Case Study 1:
You are in the role of a Quality Manager to a company which provides software to Automobile Dealerships. Your company has sold and maintained five generations of client-server software for managing Parts and Service activities. Version 6 has internet and e-commerce capabilities, to allow dealerships to manage inventories and customer relationships. You have four subordinates and one year before product release.
Case Study 2:
You are the Software QA Manager for a company that contracts its services to the Canadian Federal Department of Agriculture. You have to modernize the Farm Subsidy information technology program, to allow farmers to claim subsidies on their crops in relation to the global commodity value for those products. Your program must monitor the value of the crops; the subsidy levels assigned for each farmer, and must process this information so that farmers have their payments rapidly. Since this program will be implemented in every town with a grain elevator, the training and implementation needs are complex, and the service and support requirements are extensive.
Case Study 3:
Your company makes entertainment and strategy games involving Canadian Politicians. This game allows you to simulate Federal elections and form your own Parliaments. Your program can create new politicians with different characteristics (Wealth, Charisma, Intellect, etc.) as well as areas of expertise (Law, Health, Finance, Environment, etc.). The game must be both entertaining and politically accurate. The most recent version can be internet-enabled to allow multiple players to play remotely.
Mr. Daniel J. Zrymiak, ASQ - CQMgr, CSQE
Instructor, Department of Information Technology
Kwantlen University College
Daniel.Zrymiak@kwantlen.ca
http://www.kwantlen.bc.ca/
Dr. Abhijit Sen
Chair, Department of Information Technology and Computer Information Systems
Kwantlen University College
Abhijit.Sen@kwantlen.ca
http://www.kwantlen.bc.ca/
Created: 04/04/2002
Last Modified: 16/04/2002