Software Testing

Objectives and outcomes

Students understand and master methods and techniques of software quality, testing and maintenance. They will master software quality models and their specificities in relation to other products. They can determine software quality attributes and quality measures, as well as standards used in this area. Students acquire theoretical, methodological and practical knowledge of the development of software products that are applied using modern techniques, models and processes for: software quality assurance – provision, measurement and assessment; software quality measurement  (CMMI and TMM improvement models); software testing – planning and implementation, types (classes) of techniques, functional testing (black box techniques), structural testing (white box techniques), hybrid techniques (grey box techniques), types and levels of testing, etc.

Lectures

Software quality – the basics. Software quality factors – processes, models, requirements and metrics. Software Testing (TS) – fundamentals, objectives, approaches, processes, planning and implementation. Software testing – strategies, types of testing techniques (Classes). Levels of testing according to software development phases. Verification and validation as testing techniques. A set of software testing techniques. Error detection techniques: specification-based detection techniques. Testing based on interface definition. Feature-based program testing. Black box testing (functional testing). Limit value analysis. Selection of test examples and test solutions (Oracle problem); White box testing. Examining loops and conditional branches. Cyclomatic complexity. Structural testing and grey box techniques: data flow testing, dynamic data flow analysis, combination of black box and white box testing. Cause and effect diagram. Performance testing. Configuration tests. Object-oriented testing. Component testing. Internet-based testing. GUI testing. Real-time system testing and safety critical system testing. Levels and types of software testing. Organisation of the software testing process. Testing the unit. System testing. Handover testing (Alpha and Beta testing). Test maturity model (TMM); Test plan – main and individual. Origin of errors and their distribution.

Practical classes

Mission critical application. Mission critical case study – quality assurance, quality metrics, and testing of ATM machine banking applications. ATM machine software testing. Application of analysis techniques – inspection, going through program code, etc. Testing based on specifications. Testing based on the structure of the program code. User Interface Testing – UI. Designing black-box and white-box ATM software testing. Designing test cases of ATM machine software “grey box” strategies.