Github user arina-ielchiieva commented on a diff in the pull request:
https://github.com/apache/drill/pull/1220#discussion_r183108744
--- Diff: docs/dev/Testing.md ---
@@ -0,0 +1,72 @@
+# Testing
+
+Drill makes extensive use of [JUnit](http://junit.org/junit4/) and other
libraries for testing. This page provides pointers to the information you need
to work with Drill tests. We don't repeat that information; you will want to
follow the links and read the original material to get a complete understanding
of the libraries that Drill uses.
+
+Caveat: information here about Drill is "reverse engineered" from the
code; this page has not yet had the benefit of insight from the developers who
created Drill's test structure.
+
+# Topics
+
+"Classic" Drill testing techniques
+
+* [Testing with JUnit](JUnit.md)
+* [Test Logging](TestLogging.md)
+* [Testing with Physical Plans and Mock Data](LegacyTestingFrameworks.md)
+
+"Updated" Drill testing techniques
+
+* [Cluster Fixture Framework](ClusterFixture.md)
+* [Operator Fixture Framework](OperatorFixture.md)
+* [The Mock Record Reader](MockRecordReader.md)
+
+# Mockito
+
+Drill depends on the [Mockito](http://site.mockito.org) framework. (Need
to find & document usages.)
+
+# Maven
+
+It is often helpful to know the [set of
properties](https://cwiki.apache.org/confluence/display/MAVEN/Maven+Properties+Guide)
that Maven defines and are available for use in the POM file.
+
+## Surefire Plugin
+
+Drill uses the [Maven Surefire
plugin](http://maven.apache.org/components/surefire/maven-surefire-plugin/) to
run tests. The root POM contains significant test configuration that you may or
may not want to include when running tests in a debugger:
+```
+ <configuration>
+ <argLine>-Xms512m -Xmx3g -Ddrill.exec.http.enabled=false
+ -Ddrill.exec.sys.store.provider.local.write=false
+ -Dorg.apache.drill.exec.server.Drillbit.system_options=\
+
"org.apache.drill.exec.compile.ClassTransformer.scalar_replacement=on"
+ -Ddrill.test.query.printing.silent=true
+ -Ddrill.catastrophic_to_standard_out=true
+ -XX:MaxPermSize=512M -XX:MaxDirectMemorySize=3072M
+ -Djava.net.preferIPv4Stack=true
+ -Djava.awt.headless=true
+ -XX:+CMSClassUnloadingEnabled -ea</argLine>
+ <forkCount>${forkCount}</forkCount>
+ <reuseForks>true</reuseForks>
+ <additionalClasspathElements>
+
<additionalClasspathElement>./exec/jdbc/src/test/resources/storage-plugins.json</additionalClasspathElement>
+ </additionalClasspathElements>
+```
+
+You can [run individual
tests](http://maven.apache.org/components/surefire/maven-surefire-plugin/examples/single-test.html)
as follows. First, cd into the project that contains the test. Then, run the
test. (You'll get an error if you try to run the test from the root Drill
directory.)
+```
+cd /path/to/drill/project
+mvn surefire:test -Dtest=TestCircle
+```
+
+# Java Assertions
+
+Drill code makes sparse use of Java exceptions, preferring the Guava
equivalents. One area that assertions (`-ea` option) does affect is
performance: queries run about 10x slower with assertions enabled due to
allocator logging. When doing any performance-related work, ensure that
assertions are not enabled.
+
+```
+class DrillBuf ...
+ public boolean release(int decrement) {
+ ...
+ if (BaseAllocator.DEBUG) {
+ historicalLog.recordEvent("release(%d). original value: %d",
decrement, refCnt + decrement);
+ }
+```
+
+# IntelliJ
+
+Hey IntelliJ users, what advice can we put here?
--- End diff --
Maybe replace with TBA.
---