---
layout: page
---

<nav class="home">
  <ul>
    <li>
      <a href="{{ site.baseurl }}{% link introduction.md %}">
        <div>
          {% include svg/octicons/tools.svg %}
        </div>
        <h2>
          Introduction
        </h2>
      </a>
      <p>You should probably start here! Contains a high-level
         overview of the testsuite and how to get set up locally.</p>
    </li>
    <li>
      <a href="{{ site.baseurl }}{% link _writing-tests/index.md %}">
        <div>
          {% include svg/octicons/pencil.svg %}
        </div>
        <h2>
          Writing Tests
        </h2>
      </a>
      <p>Guidelines and advice for those writing tests.</p>
    </li>
    <li>
      <a href="{{ site.baseurl }}{% link _running-tests/index.md %}">
        <div>
          {% include svg/triangle-right.svg %}
        </div>
        <h2>
          Running Tests
        </h2>
      </a>
      <p>How to run tests, either those you just wrote or those that
         already exist.</p>
    </li>
    <li>
      <a href="{{ site.baseurl }}{% link _reviewing-tests/index.md %}">
        <div>
          {% include svg/octicons/git-pull-request.svg %}
        </div>
        <h2>
          Reviewing Tests
        </h2>
      </a>
      <p>Some hints and tips for those reviewing tests.</p>
    </li>
    <li>
      <a href="{{ site.baseurl }}{% link _appendix/index.md %}">
        <div>
          {% include svg/octicons/package.svg %}
        </div>
        <h2>
          Appendices
        </h2>
      </a>
      <p>A load of other useful resources.</p>
    </li>
  </ul>
</nav>
