- INTRODUCTION
Kwantlen University College started offering the Software Quality Assurance course to the students enrolled in fourth year of the Bachelor of Technology in Information Technology degree program in 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 curriculum is designed to make academic theory relevant through exercises and projects normally encountered in a real world environment.
- COURSE OVERVIEW
In the Software Quality Assurance course 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. Other topics covered in this course will include: the concepts of Total Quality Management
(TQM), development of quality assurance plans, implementation of verification and validation functions, selection of tools to support quality assurance, application of software metrics to measure quality, and the International Standards Organization (ISO) certification process.
- TEACHING STRATEGY
Classes for the course consist of a series of lectures, assignments, in class projects, group 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. For the project, students work in a group planning and implementing software quality assurance measures. Students document their project results, present the results and conduct formal reviews with their peers. The last two weeks of the class will be devoted to the group presentations of the projects.
- IN CLASS PROJECT AND ASSIGNMENTS OVERVIEW
In order to simulate situations encountered in real software projects, in class projects and assignments are developed to give student exposure to various Software Quality Assurance issues. Some examples of in class projects and assignments are described below.
In Class Project1: The first in-class project gives students an opportunity to design a small portion of a software quality improvement program and establish a quality assurance charter. Students are required to identify three quality improvement goals for some software project they are familiar with. They will then need to identify questions that will allow them to monitor progress toward meeting these goals.
In Class Project2: The second in-class project will give students an opportunity to define and document a software review process. The students are required to select one review item from the following list:
| Software Requirements Review |
| Software Architectural Design Reviews |
| Software Detailed Design Review |
| Code Review |
| Software Test Review |
| Some other appropriate review with a software engineering focus |
For the review selected, they are required document the review process using specified guidelines.
In Class Project3: The third in-class project gives students an opportunity to define and document a detailed test plan review process. Students need to identify a software project that they are very familiar with. For the selected software project, students have to document the test plan review process using a specified format.
Assignment 1: This is a continuation of the in-class project 1.
For each of the quality improvement goals identified in in-class project 1 for the selected software project, students have developed a list of 3 to 5 related questions to examine. For each question, students are required to select a metric that is appropriate to measuring changes in the area of interest. They have to determine data needed to compute the metric and the points in the development process that the data should be collected. They have to design forms that might be used by the project team members to collect this data.
Assignment 2: This is a continuation of the in-class project 3. Using the detailed test plan review process defined, students conduct the review and report the quality assurance results.
- TERM PROJECT DESCRIPTION
There is no final exam for this course. Students are required to complete a project that involves some significant work in the general area of software quality assurance. They are required to present their work orally at the end of the semester.
Requirements for the project are described below:
| Write a complete SQA (software quality assurance) plan. They may use the work plan example in the textbook as a guideline. |
| Students may write the plan for a real software project they have been involved in or for an ideal project that has never been implemented. |
| In either case they will need to write the SQA plan as if it was for a commercial project. The minimum length of the document is 15 to 20 pages. |
| Oral presentations (20 to 30 minutes) will take place during the last two weeks of the class. Students are expected to make appropriate use of Audio Visual materials (demonstration, power point slides, transparencies, posters, handouts, etc.) during presentation. |
Students may work in a group of 3-5 students. However, everyone must contribute equally to the oral presentation and each one will be graded separately.
- BENEFITS
The course with associated assignments and projects provided many benefits to the students as they:
| Gained experience in setting up comprehensive Software Quality Assurance Plan
(SQA) |
| Appreciated the range issues that SQA have to deal with |
| Became conversant with SQA terms and methodologies |
| Were able to perform variety of SQA reviews and activities |
| Could identify appropriate review mechanisms and generate SQA reports |
| Experienced how to plan, control and implement Software Quality Assurance measures |
| Applied techniques to enhance software quality |
| Gained experience in working in groups on QA issues |
| Acquired knowledge that could be used effectively in their future employment |
- CHALLENGES
The faculty faced many challenges in teaching the Software Quality Assurance course:
| Students lack practical industry experience in the field of Quality Assurance, and have misconceptions about the scope of the course. Many of these students relate Quality Assurance only to the process of Software testing. Students expected only to work on testing tools |
| The course by its very nature is dry in content and students find the course too theoretical. Students expected more hands on QA training |
| The testing tools for QA are prohibitively expensive and thus not affordable |
| There are no real text book available with sample assignments and teaching resources |
| The Software Quality Assurance covers broad topic areas and there are no unique methods used in industry to assure software quality |
- RECOMMENDATIONS
Courses of this type, involving students with minimal experiences in practical software quality assurance tasks, require careful formulation of relevant course topic areas. The course topic areas must be augmented by practical exercises with which students can relate. These practical exercises should be carefully constructed to provide the degree of complexity normally found in a real software project. This itself is a challenging task as there are very few Software Quality Assurance resources appropriate for classroom use are available. It is also recommended that speakers from industry who are involved in practical SQA be invited to the class to share their experiences and challenges with the students to validate the theory taught in the course. We realize that all students do not have experiences in all phases of software development. As such, the course topics must be presented in a flexible manner without sacrificing the rigour to a student population that has diverse background and practical experiences.
- CONCLUSION
The coordinated approach using in-class projects augmented with assignments and term project has proved to be most effective in teaching the Software Quality Assurance course. The students did not just learn the theory; but applied the theory to the projects or problems students are familiar with. The students complemented their theoretical knowledge with skills based on reality. With real life examples emphasising the motivating factors for these principles, we hope to convey to students not only the theoretical principles of Software Quality Assurance, but also its potential practical usage. The SQA knowledge and training acquired through the project will provide the students skills and valuable experiences required by the IT industries.
- ACKNOWLEDGEMENT
We are very appreciative to our students who generously shared their ideas and suggestions, for which we are grateful.
Dr. Abhijit Sen
Chair, Department of Information Technology and Computer Information Systems
Kwantlen University College
abhijit@kwantlen.bc.ca
http://www.kwantlen.bc.ca/
Ms. Elsie Au
Instructor, Department of Computer Systems Technology
British Columbia Institute of Technology
Elsie_Au@bcit.ca
http://www.bcit.ca/