Here is an extended hint that more explicitly spells out the connection between hints 2 and 3:
-
First use hint 1 to get a tester T for the graph property, which only makes O(q^2) queries, and has the property that T always queries all edges of some (possibly adaptively chosen) subgraph of the input graph.
-
Given such a tester T for the graph property, consider the tester T' which runs T on a uniform random, isomorphic copy of the input graph. Prove that T' is still a valid tester for the graph property. Finally, prove that a tester equivalent to T' can be implemented with nonadaptive queries.
-
To get a nonadaptive implementation, instead of running T' by fixing a random isomorphic copy of G at the beginning and then calling T on it, try building up the random isomorphic copy of G one vertex at a time as queries are made. The fact that the isomorphic copy was chosen uniformly at random should help you argue that this implementation has the same behavior as T', yet is nonadaptive.