1. A method for developing one or more test cases for testing a software application, the method comprising: identifying one or more units of functionalities of the software application by slicing the functionalities of the software application to an indivisible level, further wherein each unit of the one or more units of the functionalities of the software application comprises an ordered sequence of a user input, a set of instructions to process the input, a set of conditions and a system output; structuring use cases of the software application into the ordered sequence of the user input, the set of instructions to process the input, the set of conditions and the system output; generating a first set of use case activity diagrams from the structured use cases; generating test cases from the generated first set of use case activity diagrams, wherein the test cases are generated by traversing the use case activity diagrams using a depth first strategy, further wherein each traversed path of the use case activity diagrams corresponds to a test case; and linking a plurality of the use case activity diagrams for one or more software applications, wherein the linking facilitates reusability of the plurality of the use case activity diagrams.