Course Description
This course covers basic fundamentals of Embedded software testing and life cycle Covers about dynamic, model based and coverage testing. To study about test management and testing from use cases. Learning outcomes: Learn about concept of embedded software testing, TEmb method and creating test harnessLearn about Embedded software test life cycle, V-model Learn about different types of testing methods Learn static analysis and metricsLearn about top-down, bottom-up integration and testing from use cases Learn about test management and configuration management Faculty Madhukeshwara H M, HCL Courtesy: NPTEL HRD
Course Objective
1 Fundamentals of embedded software testing
Introduction, Concepts of Testing, TEmb method, Test cases and test procedures, Principles of embedded software testing, creating a test harness, Commercial test tools.
Software testing life cycle: multiple V-model, nested multiple V-model, master test planning, activities, testing by developers, testing by independent test team.
2 Testing Methods
Dynamic Testing: Structured basis testing, Equivalence Partitions, Boundary Value Analysis, Problems with polymorphic code
Model-Based Testing: Synthesis- versus Analysis- models, Generating tests from state diagrams
Coverage Testing: White-box, grey and black box tests, Coverage measures – Statement, Branch, Condition, Path and others, Coverage testing tools
3 Static analysis and code reviews
Code Reviews: Benefits of reviews, Review process, Checklists
Static Analysis: Static analysis concepts, the use of the compiler for static analysis, Static analysis tools, coding standards
Metrics: need for metrics, Using metrics to manage and control testing, Metrics for test
4 Software Integration
Software Integration: Importance of planning your integration, Top-down vs Bottom-up Integration, Practical integration models
Testing from Use Cases: Introduction to use cases, calculating test cases, Structured Basis testing for use cases, Generating test cases from use cases
Regression Testing: Purpose of regression tests, the build process
5 Test management
Configuration Management: Configuration items, Version control, Change Management, CM tools
Test Management: The test process, how the test process relates to the software V-model, “Design by contract”, Test-driven development, agile development processes