Navigating the Complexities of Embedded Software Testing: A Comprehensive Guide