Tool automation to reduce manual efforts is important in software testing and analysis for improving software quality. When dealing with complex software, cooperation that synergistically combines the strengths of users and tools is greatly needed and yet lacks support in state-of-the-art research and practice. This talk presents a methodology of cooperative testing and analysis, where users make informed decisions when cooperating with software testing and analysis tools to accomplish tasks more effectively. This talk also presents a program-analysis technique on precisely identifying and reporting the problems that prevent test-generation tools from achieving high structural coverage. This technique enables users to help the tools address only the relevant problems, reducing users’ efforts in providing guidance. Finally, this talk presents another program-analysis technique on computing information flows and classifying them as safe/unsafe based on a tamper analysis. This flow information explains how applications use permissions, enabling users to make informed decisions on using private data or anonymized data. Also, such information enables mobile platforms to provide default settings that only expose private data for safe flows, minimizing decision making required from users.