In test case generation methods based on symbolic testing and/or model checking, the primary emphasis is on covering code/model elements and not on optimising test sequence length. However, in certain domains, e.g. embedded systems, GUI, networking software, testing process may involve interaction with other physical subsystems, possibly remotely situated. Thus, test sequence length may have important implications on the cost of testing. In this project, we design SymTest, a novel framework for test sequence generation for testing embedded systems. SymTest selects good control flow paths so as to generate shorter test sequences. In case of unsatisfiability, SymTest explores the neighbouring paths using backtracking and heuristics. SymTest is distinctive w.r.t. other related methods in its attempt to generate shorter test sequences while searching for feasible paths. The other novelty is that SymTest allows plugging in heuristics in a flexible way, a feature because of which we call SymTest a framework and not an algorithm. Part of SymTest's power is in its extensibility to seamlessly accommodate more heuristics, thus enhancing its ability to generate shorter test sequences with economy of effort. Our experiments with SymTest show that SymTest achieves significantly shorter test sequences, with comparatively higher test coverage, as compared with other methods.