Research Topics List
SE433 - Software Testing
CSC366 - Software Quality Assurance
Following is a list of topics that you may want to consider for
your in-class presentation and research paper. You are not limited to
topics from this list. You may present on any topic directly related to
Software Testing or
Software Quality Assurance.
Note: The list
is now complete.
Remember
that it is important to start thinking about a topic now.
The presentation
is worth 10% of your final grade and the paper 40%. Additional details about
schedule and format have been
posted (see last item on Assignments page).
Remember that
the first presentations will be scheduled on week 9 (i.e. 11/11).
Also, you may work
in groups of no more than two individuals.
Topics:
- GUI Testing:
It is argued by many practitioners and researchers that
the proliferation of GUI's poses new challenges for the software testing
community. What, if any, are these challenges? See
GUI Testing: Pitfalls and Process by Atif Memon,
IEEE Computer, vol 35, 8.
- Usability Testing:
Usability refers to the extent to which
any software product supports its users in carrying out their
tasks efficiently and effectively. It is therefore an
important element in determining the quality of the software product.
Several questions therefore arise. Following are a few that you may
want to investigate:
Note: See Jakob
Nielsens useit.com site
for additional details on usability.
- Developers should take account of usability early in the software
development life cycle. How effectively can usability be addressed at the
requirements elicitation phase?
- The phrase "Fitness for Use" is often used to describe Software
Quality. How does this notion relate to Usability Testing and how can it
be used to justify the importance of addressing Usability throughout
the software development lifecycle?
- Acceptance Testing is the final phase of software development.
Beta Testing is one aspect of Acceptance Testing.
How can findings from Beta testing be used to
encourage developers to take more account
of usability early in the software development lifecycle.
- The New Usability: It is argued by many practitioners and academics
that the nature of emerging products and systems mean
that traditional approaches to usability engineering and
evaluation are likely to prove inappropriate to the
needs of digital consumers. How so? See
vol 9,2 (June 2002) of the ACM
journal mentioned below for several related articles on this issue. Also,
you may be interested in vol 6,4
(i.e. special issue on
safety-critical interactive systems) and vol
7,3
(i.e. special issue on mobile systems).
The ACM Transactions on Computer-Human Interaction (TOCHI),
is an excellent source for papers on Usability. It is
available
through DePaul
electronic journal library.
Note: Use the journal name as the search string.
- Cleanroom Software Development:
A principal objective of the
Cleanroom process is the development of software that exhibits zero
failures in use. What is the Cleanroom process? See this
technical report at
the Carnegie Mellon site for details. Also, see IBM Systems Journal,
vol 33,1 mentioned below for another Cleanroom paper (also authored
by Richard Linger).
- Capability Maturity Model:
What is the
Capability Maturity Model (CMM)? What does the CMM have to do with
Software Quality Assurance and Software Testing? See
the Carnegie Mellon
SEI-CMM
site for details.
- Software Quality Engineering:
What is Software Quality Engineering? How is it different from Software
Engineering? See the
American Society for Quality -
Software Division site. Also see the
CSQE - Body of
Knowledge page.
You may also want to look into Software Quality from the
perspective of Total Quality Management. The paper
Software Quality by Vic Basili,
IBM Systems Journal, vol 33,1 (1994) is an excellent source.
It is
available
through DePaul
electronic journal library.
Note: Use the journal name as the search string.
- ISO 9000:
ISO 9000 refers to
quality management and quality assurance standards for the
development, supply, installation and maintenance of computer software.
See the
International
Standards Organization site
to learn more.
- Object Orientation & Testing:
It is argued by some practitioners and researchers that
the the Object Oriented development paradigm poses
new challenges for the software testing
community. What, if any, are these challenges? See
the
Object-Oriented Testing: Myth and Reality article
by Robert Binder that first
appeared in Object magazine in 1995 but has been revised as recently as
2001.
Robert Binder
is the author of Testing
Object-Oriented Systems, Addison-Wesley (1999).
- Software Tool Implementation:
Consider the Basis Path Testing technique. Since this technique is
based on graph theory then, given the ready availability of a number of
graph algorithms, one could implement a variety of tools that may
be useful to a tester.
For example, one could easily
implement a function that recieves an
adjacency matrix as an input data structure and determines the
cyclomatic number of the graph. A slightly more involved
implementation would involve using the depth-first search
algorithm to determine the
connected components of the graph. The number
of connected components is required for the following
formulation of the cyclomatic number expression:
Vg = E - N + 2(p)
where p is the number of connected components. Note that the expression
for cyclomatic number discussed in class
(see week #4 lecture notes) is a special
case of this expression. That is, where p=1.
Of course, many
other implementations could be attempted.
Note: See Chapter 7 of Richard Johnsonbaugh's
Discrete Math text.
- Testing Oracles:
An oracle is any program, process, or body of data that
specifies the expected outcome of a set of test cases as applied to a
tested software product. See Jim Bieman's
paper
Designing for Software Testability using automated Oracles
that appeared in the
Proc. International Test Conf., Sept. 1992.
- BeBugging/Mutation Testing:
BeBugging/Mutation Testing is a way of determining the
effectiveness of testing. That is, it is a techniques that may be
used to determine the number of
remaining
bugs in a software artifact after testing/review. See
the week #6 lecture notes for
an overview. Also,
see the following papers on this and related topics:
- Concurrent Systems:
Testing concurrent systems poses challenges not faced by
testers of sequential systems. Increasing interest in
concurrent systems development is due in part to
Java's built-in support for concurrent programming.
Java allows multiple concurrent threads to
take place within a single Java program. This
enables developers to design applications that
are more responsive to user demands, faster, and more easily controlled.
See the following papers:
- Real-Time and Embedded Systems Testing:
Manufacturers have for several years incorporated embedded computers in so-called smart products such as DVD players, televisions, printers, scanners,
and cellular phones. Using embedded computers in devices that
previously relied on analog circuitry
such as digital cameras, digital camcorders, digital personal recorders,
Internet radios, and Internet telephones provides revolutionary
performance and functionality that merely improving analog designs could
not achieve. However, the challenges faced by software developers
has increased dramatically as these devices proliferate. This is especially
so for the software tester. See
the article
What is
Embedded Computing by Wayne Wolf, IEEE Computer, Jan, 2002,
to get a better idea of the field. Also, see
the following papers to get an idea of testing issues:
Note: You may also want to see the ACM journal
special issue on safety-critical interactive systems mentioned above.
- Wireless and Mobile Systems Testing:
Mobile and Wireless devices such as
personal digital assistant (PDA) devices and mobile phones have
become commonplace. The developer is faced with several issues.
These include
user interface design for small screens,
memory management for low-memory devices, efficient programming
techniques for limited processors,
data synchronization for mobile databases,
wireless programming and network programming. Many people argue that
in addition to these challenges,
consumers expect these devices to exhibit high levels of reliability and
availability and so this posses additional challenges for software testers.
To learn more about mobile computing see
the article
Mobile
Processors Begin To Grow Up by David Clark, IEEE Computer, March 2002.
See the Embedded Sytems references for papers.
The testing issues are similar. Also, see the ACM journal mentioned
above (particularly the new usability issue, vol 9,2 and
the special issue on mobile systems, vol 7,3) for related papers.
- Agile Methods & Testing:
Agile methods, like extreme programming, seek
to increase a software organization's responsiveness
while decreasing development overhead. They focus on delivering
executable code quickly and view
people as the strongest ingredient of software development. What challenges
does this approach to software development pose to Software
Validation and Verification? See the
article
Extreme Programming: Rapid Development for Web-Based Applications
by Frank Maurer et al., IEEE Internet Computing vol 6,1 for an overview of
the topic.