CS 7314 (Spring, 2021): Course Project

Prof. Jeff Tian (tian@lyle.smu.edu)

Assignment

Your project is an integral and very important part of your CS 7314, an opportunity for you to apply the knowledge learned in your class, particularly software testing and QA techniques, in a realistic setting, and to report the experience and findings from this activity. It will consist of three parts or stages: Some general information:

The details are given below.

Acceptable project types

There are two types of course projects, one focusing on testing, and anther focusing on other QA techniques but still contain some testing.
  1. An application of a couple or more specific formal/systematic testing techniques/models to some programs/products/applications/services you are developing/testing/maintaining/supporting/using/considering. For example, you may choose to: and the list goes on...

    It's generally a good idea to consider multiple formal/systematic testing techniques, then select and actually use at least a couple of them in your project to get a hands-on experience of how different techniques work in practical applications. The primary candidate techniques to be considered are the ones we cover in detail in this course, i.e., PT, Musa-OP/UBST, BT, FSM, Markov-OP/UBST, CFT, DFT. Notice that all the techniques mentioned above, except the two UBST ones, can be applied either as a BBT or a WBT technique, resulting in 12 primary formal/systematic testing techniques to select from.
    Important warning: Checklist and other informal/ad-hoc testing are not counted as a formal/systematic testing technique.

    You should pay special attention to the evaluation of your testing/analysis results. Be prepared to answer this type of questions:

    Your answer can be based on either the practical evidence (executing several types of testing cases, observing the results, and analyzing the relevant measurement data) or based on logical arguments (suitability of certain testing technique on certain types of products), or both.

    Some analysis of test result, defect, or reliability is expected. Pay particular attention to the collective/overall analysis (e.g., defect/effort/etc. comparison across multiple testing techniques) in addition to individual test result analysis.

  2. You may choose to focus on performing various other quality assurance activities and document the results, while performing limited/small-scale (but still needs to be formal and systematic) testing. Possibilities include comprehensive inspection, defect prevention and process improvement, formal verification, fault tolerance, and hazard analysis/resolution for safety-critical systems.. You may also collect inspection/testing/QA records for a product at your work, and construct quality models to analyze the results, to assess the effectiveness of your inspection/testing/QA techniques, or to identify high-defect modules for focused quality improvement actions.

    If you choose this second type of project, I still want you to perform at least some small scale/amount of formal/systematic testing because it is such an integral part of our course (well, we'll devote slightly more than half of our classes to testing alone!).

    For the QA part, make sure you are focusing on quality that can be quantified and/or formally analyzed. For example, some defect analysis, both the root cause analysis type and statistical analysis, or even some classified defect data analysis using schemes such as ODC/AF, and some reliability analysis would be appropriate. However, a process definition/improvement initiative with only a logical argument for its superiority is not suitable for this class.

Important: Regardless of the type of project you select, you must do something (testing, QA) specifically for this class and submit a specifically prepared set of project deliverables. A simple documentation of on-going testing/QA at work is not acceptable.
Caution: Submission of someone else's work/report/paper will automatically get a 0 grade for the project assignment. And, you may be referred to SMU honor council for the violation of SMU honor code.

Where to Find Something to Test or to Perform QA on?

Project proposals

Your project proposal should be around 3-4 double spaced pages in length, and should include the following information: In case of a group project, please also pay attention to the following:

Please keep in mind that by the time you submit your project proposal, we have only covered less than half of the class material, although an overview of the whole course is given at the beginning of the semester. Therefore, you may make certain modifications to the things you propose, but the basic framework should be in your proposal and remain relatively stable.

Once I have reviewed your proposal and provided my feedback, you need to address the issues I raised, in your final project report. However, in most of the cases, you do NOT need to submit a revised proposal. In the rare case that your proposal is marked as "unacceptable" or received 0 grade, I'll explicitly ask you to re-do/re-submit your proposal.

Project presentation

You are required to give a project presentation, lasting about 10-15 minutes, with an appropriate number of slides. You need to highlight the problem/solution-strategy/results/analysis for us to get the basic picture, but not necessarily all the details, which would require much more than 15 minutes. One common mistake in the past is too much background information but not enough testing/QA-specific technical information. Also, avoid detailed description of the test cases and activities performed. I'll give you verbal feedback during your presentation, which can be and should be incorporated into your final project report.

Project report

The project report should be treated as a term paper of your own, around 15 double-spaced pages in length, but no longer than 20 pages. The report should clearly and comprehensively states the background, problem, strategy, activities, models, test cases, results, result analysis, lessons learned, followup actions, and a high level summary (and an abstract at the beginning). Additional material, such as graphs, models, test cases, etc. produced, information sources and raw data, customer surveys, etc., can be included in the appendix and clearly marked as such (so it will not be counted towards your 20 page quota). However, graphs/models/tables/etc. central to the report should be included int the report itself, not in the appendix.

The format/sequence should be similar to what I listed for the project proposal, but, of course, with more results (what you did, including models and test cases produced, test results, etc., and what you discovered/learned, not just what you proposed to do). Meaningful/descriptive headings/titles for individual numbered sections should be used to organize the report.

If you are not familiar with technical reports or papers, please consult technical/professional journals and conferences proceedings published by ACM, IEEE (particularly its Computer Society), and/or other reputable organizations.

Several common mistakes to avoid:


Prepared by Jeff Tian (tian@lyle.smu.edu).
Initially posted: Jan. 5, 2021. Last update: Jan. 6, 2021.

Back to CS 7314 Webpage