I haven't tested the answers provided, But the answers are based on my understanding of how QC works. Questions in Bold Answers in standard.
**1) We have QTP 10.0 integrated with QC 10.0. In this case say if a checkout is performed on the test script from QTP, Is it possible to check in the same test script from the QC 10.0 instead of checking it from QTP?**
It is not possible to due the check in from QC in this instance. If the script were to be checked in, in this manner it would actually be an undo check out which would cause all of the changes made to the script to be lost.
**2) We have QTP 10.0 integrated with QC 10.0. In this case say if a checkout is performed on the test script from QC,Is it possible to check in the test script from QTP 10 instead of checking it from QC?**
This is the reverse of question one. Yes this is acceptable as long as it is checked back in by the user and the physical machine used to make the edits
**3) Please Explain us how the CheckIN/CheckOut process is handled in the design where QTP 10.0 software integrated with QC 10.0 Application?**
QTP CHECK OUT
If the Check out occurs in QTP The Version control and Check out flags are written to the database and a copy of the test is downloaded to the temp Directory for QC, on the Client machine, which QTP then opens to do editing. The check in must occur on this machine in QTP by the user who checked it out else the changes will be lost. Upon Check in, the Copy stored in the temp directory on the machine is uploaded to QC, with the previous version kept as a version copy.
QC CHECK OUT
If the check out occurs in QC the Version Control and Check out Flags are written to the database. The difference is that a copy has yet to be downloaded to a client machine. Once the user that preformed the check out opens the test, then the Copy is downloaded to the client machine QC temp directory for editing. Now the check in must occur on this machine in QTP by the user who checked it out else the changes will be lost. Upon Check in, the Copy stored in the temp directory on the machine is uploaded to QC, with the previous version kept as a version copy.
**4) Also Say if a user X performed a checkout to a script which was present in the QC from QTP, After that suppose the user tried to run the script from QTP and say for some reason the QTP got hanged, then if the same user tries perform UNDO CHECK OUT, CHECK IN by again opening QTP he could not view the UNDO CHECK OUT, CHECK IN options of QC related from QTP. What may be the issue here?**
OK this answer does have research behind it. This has happened to me on a number of occasions. In this scenario the Version Control information in the TEST table of the database and the Version Control tables in the Database have a misalignment. Data in one table may say checked in, while data in another table may say checked out. The only way to fix this is through direct SQL queries to the database to bring the tables back into alignment. For responsibility reasons I don't want to provide the queries I have used. If you need help with Queries you should contact you HP Support channel.