Software is becoming a key ingredient in most of the modern systems and devices that support important business processes in our modern society. It is an essential component of many embedded applications that control various sensitive applications such as air traffic control systems, rockets, automated banking systems (ATM), security systems (radar) and so many other applications. The failure of those systems can result into severe damage . It obvious that software testing technologies are essential for software testers. Even though there are several software testing methodologies and techniques to support the quality of software but to find relevant parameters for their applicability conditions remains an open question. This paper attempts to shed light on decision criteria, by describing various software testing techniques and their distinctions. The finding shows that these methodologies and techniques do not have direct influence on the quality of software but the choices we make on selecting relevant methodology/or technique for the application.