CSE 7314/5314 (Fall 2013): Course Project
Assignment
Your project is an integral part of your learning experience in
CSE 7314/5314. It will consist of three parts/stages:
-
A project proposal:
due on 9/24/13 for on-campus students and 9/26/13 for distance students.
-
A project summary
due on 11/19/13 for on-campus students and 11/21/13 for distance students;
or an optional (formal) project presentation
to be scheduled for the last 3 classes.
Notice:
This part is required for graduate students (those enrolled in CSE 7314) only,
and optional for undergraduate students (those enrolled in CSE 5314).
-
A final project report:
due on 12/3/13 for on-campus students and 12/5/13 for distance students.
Notice:
There is also slightly different requirements for graduate
and undergraduate students, as described below.
It can be either
an individual project
or
a group (dual, pair, or dyad, most likely) project.
The details are given below.
Acceptable project types
There are two types of basic choices for your course project,
one focusing on testing, and anther focusing on other QA techniques:
-
An application of some specific testing techniques/models
to some programs/products/applications/services
you are developing/testing/maintaining/supporting/using/considering.
For example, you may choose to construct control flow and data flow models
to test a module you are developing at your work from a developer's
perspective or to construct a finite state machine to capture the
expected behavior of the a software product and test it accordingly
from a user's perspective..
Another example is the development, validation, and usage
of an operational profile for a large software systems
you are working on.
It's generally a good idea to consider multiple testing techniques
and actually use a couple of them in your project to get a hands-on feeling
of how different techniques and models work in practical applications.
If possible, testing from different perspectives might be more
beneficial as a learning experience.
For example, you might consider UBST for the whole product,
combined with some in-depth WBT of some important modules.
Pay special attention to the evaluation of your testing/analysis results.
Be prepared to answer this type of questions:
- How do you know if the testing technique works?
- What's the basis for comparison (baseline)?
- What about some other testing techniques that might be appropriate?
Your answer can be based on either the practical evidence
(executing several types of testing cases and observing the results)
or based on logical arguments
(suitability of certain testing technique on certain types of products),
or both.
- Graduate students are expected to study relevant material from Part IV of
our textbook to prepare them for the analyses above.
- Undergraduate students can choose to perform only a high-level analysis
to answer the above questions without going into details.
-
You may choose to focus on performing various other quality assurance
activities and document the results,
while performing limited/small-scale testing.
Possibilities include comprehensive inspection,
defect prevention and process improvement,
formal verification, and fault tolerance.
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 testing
because it is such an important part of our course.
For the QA part,
make sure you are focusing on quality that can be quantified and analyzed.
(For example, a process definition/improvement initiative with only a
logical argument for its superiority is not suitable for this class.)
Again, the primary difference in the project requirements for undergraduate
and graduate students is in the result analysis part, similar to that
for testing-focused project discussed above.
Where to Find Something to Test or to Perform QA on?
-
Well, I mentioned about your work,
a product, or a sub-part of a product, that you are involved at your work.
However, if you don't feel comfortable taking this as your class
project or talking about it (without mentioning product name and
raw data) in class, you need to find something else to work on.
Notice:
Your project report must contain testing related technical
information, such as test models, test cases, and test results,
although you don't have to give detailed product information.
As a rule of thumb, if you feel uncomfortable with the material
you have to put into this report, find something else to work on.
-
Many students used their past projects from work, from their former
college/graduate school classes, from their hobby (e.g., game
programming), or from their role as users of some specific
packages/software/web-site/etc.
Apply the same sensitivity rule as for your current project above.
-
You can get it from someone else.
Open source software and programs are a wonderful source for many
student projects in the past as well.
Some web-based applications and/or utilities can be tested too,
similar to what we will cover as part of the class material/examples.
Project proposals
Your project proposal should be around 3-4 double spaced pages
in length, and should include the following information:
- a one-paragraph abstract (at the beginning of the proposal),
- introduction: clearly identify the problem that you are going to address,
- brief background information (about 1/2 or 1 page),
- a well-justified solution strategy you intend to use
(which testing technique? what kind of analyses? etc.),
- expected results,
- analysis of result to be performed,
- followup actions,
- a rough schedule,
- indicate whether you'll be making a project presentation,
and, if possible, your preferred presentation date.
In case of a group project, please also pay attention to the following:
-
Please provide information regarding each team member's
roles and responsibilities.
-
The amount of work proposed for a group project should be appropriate
for the group size. As a general rule of thumb, if something can be
comfortably done by a single student, it is not suitable as a group
project.
-
Unless there is a compelling reason,
group size of 3 or more is discouraged due to the expectation that
everyone in the team will be performing hands-on testing
activities using multiple testing techniques.
-
You only need to submit one proposal and one report for the project,
which must follow the same instruction as the individual projects.
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 was given at the beginning of
the semester.
Therefore,
you may make certain modifications to the things you propose,
but the basic framework should be there in your proposal.
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 "unacceptable",
I'll explicitly ask you to re-do/re-ubmit your proposal.
Project summary or presentation? The choice is yours
All the graduate students are required to submit a project summary,
in presentation slide format (around 5 slides),
suitable for in-class presentation by the professor
(or by the students),
if you are not doing a full presentation (see below) in class.
You summary should focus on the main results from your project
for us to get the basic picture.
Here is a template for your project summary.
You may choose to do a (full) project presentation.
In that case, you don't need to submit the project summary.
Each presentation should last about 10-15 minutes,
with appropriate numbers 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.
As I stated earlier, this part is optional for undergraduate students.
Project report
The project report should be treated as a term paper,
around 15 double-spaced pages in length,
but no longer than 20 pages, for graduate students.
The report should clearly and comprehensively states the background,
problem, strategy, activities, 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).
For undergraduate students, you report should be similar, except the
analysis part (see information in the "Proposal" section above).
As a result, your report is expected to be around 10-12 pages.
But, if you choose to, you can follow the instruction for graduate students
as well.
Several common mistakes to avoid:
-
It is supposed to be a "report",
not a set of "presentation slides".
So, limit your use of lists/bullets, and put most of the material/discussions
in paragraphs.
Similarly,
only figures and tables without corresponding discussions
do not make a good report.
-
Your project report must contain testing related technical
information, such as important test models, test cases,
test results, and analysis of the results.
In addition,
you need to describe/discuss this information unless it is
clearly self-explanatory.
-
On the other hand,
you shouldn't include all the graphs, models, test cases, etc. produced
for the project in the report text itself.
As I mentioned above, they can be included in the appendix, if you desire,
together with other material, such as raw data,
customer surveys, etc.
Prepared by Jeff Tian
(tian@engr.smu.edu).
Initially posted: Aug. 26, 2013.