1. A system for providing testing for a given software application comprising a plurality of software components, at least some of which are coupled, said system comprising: a first processor functionally associated with a digital memory, which digital memory stores processor executable software testing code adapted to cause one or more second processors to: at least partially isolate from within the given software application, during runtime, at least one coupled software component which performs a given function by introducing, prior to execution of the software application, code elements for runtime access of application points associated with the at least one coupled component of the given software application, such that at least one of the introduced code elements provides the software testing code access between utilizing-utilized software components during runtime; and test, by use of the second processors running the testing code, the given software application by imposing a fake behavior on the at least one coupled software component, wherein imposing behavior includes removing or replacing an expected behavior of the at least one coupled software component, during runtime, by use of the access provided by the at least one of the introduced code elements.