While the above methods are useful in the development stage of software, experience has shown that they cannot be applied to existing software. Large bodies of software exist that need to be used in secure environments. Therefore, testing and analysis techniques are used to determine the security characteristics of the software. In this area, very little work has been done using artificial intelligence techniques.