  E2E web test suites are prone to test dependencies due to the heterogeneous
multi-tiered nature of modern web apps, which makes it difficult for developers
to create isolated program states for each test case. In this paper, we present
the first approach for detecting and validating test dependencies present in
E2E web test suites. Our approach employs string analysis to extract an
approximated set of dependencies from the test code. It then filters potential
false dependencies through natural language processing of test names. Finally,
it validates all dependencies, and uses a novel recovery algorithm to ensure no
true dependencies are missed in the final test dependency graph. Our approach
is implemented in a tool called TEDD and evaluated on the test suites of six
open-source web apps. Our results show that TEDD can correctly detect and
validate test dependencies up to 72% faster than the baseline with the original
test ordering in which the graph contains all possible dependencies. The test
dependency graphs produced by TEDD enable test execution parallelization, with
a speed-up factor of up to 7x.
