1. A computer implemented method for generating video tests for distinguishing a human user from a computer software agent in an online application, the method comprising: selecting a video clip from a video clips database, each video clip having a plurality of video frames; segmenting the video clip into a plurality of video segments, each video segment having a subset of video frames; selecting one of the video segments; associating the selected video segment with a plurality of queries, each query associated with at least one correct answer to the query, wherein associating a query with at least one correct answer to the query comprises: presenting the video segment and a query as a probe to a plurality of users; collecting answers to the query from the plurality of users; and determining from the collected answers at least one correct answer to the query; modifying the selected video segment such that the modified video segment is visually similar to the unmodified video segment and a hash value of the modified video segment is different from the hash value of the unmodified video segment to prevent identifying the selected video clip based on the hash value of the unmodified video segment, wherein modifying the selected video segment comprises: selecting one or more video frames from a video of the video clips database; and re-encoding the selected video segment with the selected video frames; associating the modified video segment with a plurality of queries and correct answers associated with the queries; and storing the modified video segment and the plurality of queries in a video tests database.
2. The method of claim 1 , wherein associating a video segment with a plurality of queries comprises generating at least one query from video metadata information associated with the video segment.