About the Course
Catalog Summary
The purpose of this one-day workshop is to introduce the participants to
fundamentals of software testing, such as category-partitioning, test oracles,
test coverage including MC/DC coverage, code instrumentation, unit testing,
acceptance testing, user stories, and regression testing. Lectures on these
fundamentals are supported by hands-on exercises in which participants use unit
testing tools to develop a few test cases, instrument the code of the
application under test to collect data to be used for code coverage analysis,
and execute the tests. The workshop covers advanced topics in test automation
as well, including pair-wise testing, AI planning, iterative relaxation
event-flow graphs, GUI testing, predicate & heuristic based testing,
"daily/nightly" builds and smoke tests, network protocol and web testing, and
performance testing. In order to provide a holistic treatment of the topic, the
workshop discusses testing broadly within the context of Software Engineering
Requirements (UML), Design, Sequence Diagrams, Use Cases, and component-based
software engineering.
Prerequisites
- Fundamental concepts of programming
-
Software engineering
Lecture Style and Schedule
-
Because of the practical nature of the course, all participants will be
expected to have access to computers during the lecture. Parts of some lectures
will involve writing test cases, debugging and executing them.
-
The lecture hall must be equipped with a high-resolution projector so that the instructor can show code examples.
-
The course will be conducted in 1 day.