Covers the techniques and concepts required for software testing. Topics covered include software testing at the unit, module, subsystem and system levels; coverage criteria, manual and automated techniques for test validation and data generation; formal testing processes and standards (with an emphasis on CMMI); rational tools suite; inspections; black box vs. white box testing; functional testing; and testability analysis. Prerequisites: CS-225 or CS-230 or CS-200. (2-2-3)