Description
Software testing accounts for a large portion of software development costs. With the ever-increasing use and complexity of software, testing skills have become extremely important for the software industry. In current development methodologies, testing can sometimes drive the development, rather than just being a step performed after implementing a program. This course on Software Testing addresses the need for teaching concepts and tools to undergrads and grad students. This course is required for the Software Engineering concentration in the undergraduate Computer Science program.
Topics include systematic approaches to software testing, theoretical foundations, and the current state of practice. Students will get hands-on experience with techniques and tools that improve software testing and overall development skills.
Upon successful completion of the course, students will be able to
- Write test packages to develop an understanding of the levels of testing (unit, integration, system, and acceptance). Understand test driven development.
- Work on test case generation, test scripting, test automation, and test reporting, and define the process most testing must follow.
- Learn to use advanced features of automated testing frameworks and tools such as JUnit, Mockito, TravisCI, Selenium, FiTNess, JMeter, EclEmma, and mutation tools.
- Use systematic test generation strategies.
- Measure white-box coverage during test execution.
- Use Logic coverage.
- Assess test adequacy using mutation analysis.
- Perform regression testing.
- Demonstrate and write code for performance testing.
For simplicity, we will use Canvas for (1) disseminating slides, papers, and lecture videos, (2) submitting quizzes, discussion posts, assignments, and exams, (3) maintaining a detailed calendar of activities and deadlines, and (4) posting grades. The schedule on the course website will only show the topics being covered every week.
Spring 2026 Semester
Course credits
4 semester hours (3 lecture, 1 lab)
Lab hour to be arranged by students to work on assignments and project deliverables.
Lectures
| Section | When | Where | Who |
|---|---|---|---|
| 001 | TTh 3:30-4:45 | Natural Resources 113 | Sudipto Ghosh |
Lectures will be video recorded.
Course Staff & Office Hours
| Name | Role | In Person | Online |
|---|---|---|---|
| Sudipto Ghosh | Instructor | Mon 2:30-3:30 PM, Wed 2:00-3:00 PM in person CSB 468, and by appointment | Same times as the in-person hours and by appointment |
| Ali Bigdeli | GTA | Thu 12-2 PM in CSB 120 lab | Same as in-person hours |
| Junchi Liu | GTA | Tue 7-8 PM, Wed 3-4 PM, Fri 4-5 PM in CSB 120 lab | Same as in-person hours |
| Junhwan Kim | GTA | Tue 2-3 PM, Fri 1-2 PM, Sat 4-5 PM in CSB 120 lab | Apart from in-person hours, extra online hours 4-5 PM on Wed and 5-6 PM on Thurs. |