Create a gist now

Instantly share code, notes, and snippets.

JavaScript testing questionnaire for Houston.js
<html lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head><title>JavaScript testing questionnaire for Houston.js</title></head>
<style>
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 10px;
}
h5 {
margin: 0px;
padding: 0px;
font-size: 12px;
font-weight: bold;
}
p, ol, ul {
margin: 0px;
}
ol li {
margin-bottom: 30px;
}
ol li ul li {
margin-bottom: 0px;
}
p em {
font-size: 16px;
font-weight: bold;
margin-right: 3px;
}
ul li em {
font-size: 14px;
font-weight: bold;
margin-right: 3px;
}
</style>
</head>
<body>
<div style="float: right; width: 400px; border: 3px yellow solid; margin: 5px;">
<div style="border: 1px red solid;">
<div style="border: 6px cyan solid;">
<div style="border: 1px red solid;">
<div style="border: 3px yellow solid; padding: 5px;">
<p><em>Help make us all better</em> by sharing what you know! While I go over Jasmine basics,
prepare to talk about anything here that interests you. My goal is to help draw out the wisdom
and experience from the audience (which means you)! Guidelines:</p>
<ul>
<li><em>You don't have to do anything.</em> Feel free to use this sheet of
paper to draw demeaning caricatures of me, or ball it up and throw it at someone. Fun fact: both paper and inkjet toner are good sources of dietary fiber. However, assuming you think you want to help:</li>
<li><em>Focus on how you can help someone else with your knowledge.</em> E.g. we don't care
if you use Jasmine or Mocha, but we do care <strong>why</strong> you prefer one over the other.</li>
<li><em>Summarize!</em> Try and fit everything into one tweet-length answer. If you can't fit
your answer in a single tweet, then ultra-summarize your answer until it does! If it's complex
and can't be summarized, try to focus on what higher benefit or goal it helps you achieve,
and share a link for us to learn more.</li>
<li><em>Tweet at me (@pseale) any links</em> you want me to share with the group.</li>
<li><em>Remember that our goal is to share</em> as much of the group's knowledge as possible—not
necessarily by answering the questions below. If you have a unique perspective, by all means
share it. If you'd like, ignore the questions below and just ask for 5 minutes to talk.
Or, feel free to directly ask the crowd a question.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div><a href="https://gist.github.com/pseale/2534bd5f63d9ebcf3b8b">(hosted at https://gist.github.com/pseale/2534bd5f63d9ebcf3b8b)</a></div>
<h5>Overall</h5>
<ol>
<li>If you had one tip to give to novice testers, what would it be? If you had one tip to give to fellow
grizzled test veterans, what would it be?</li>
<li>Is there a unit testing technique or some learning resource that personally helped you learn unit testing?
E.g. an open source project's test suite; a book; a conference video; a kata; a green wristband;
ceremonial burning of green wristbands; etc.</li>
</ol>
<h5>Tools, Products, Services</h5>
<ol>
<li>Do you use a CI server? If so, which one, and what is the main benefit? Do you utilize fun gimmicks when a build turns red?</li>
<li>What PAID ($$$) commercial products/services do you use? Please give an experience report, good or bad. (Editor's note: I want to go out of my way to emphasize commercial products because fewer people use them, and so experience reports for commercial products are rare and valuable.) E.g. Saucelabs, CircleCI, WebStorm</li>
</ol>
<h5>Browser (end-to-end) Tests</h5>
<ol>
<li>Share any experience you have with browser testing, including:
<ul>
<li>Attempting to set up end-to-end tests, then running into a serious issue, then giving up - if you're brave, we'd like to hear what step caused you to give up.</li>
<li>What tool do you use, and why it is good for you?</li>
<li>If you use zombie.js or a similar browser emulator, have you experienced any gotchas, or has it been all positive?</li>
<li>What gives you the most problems attempting to set up end-to-end tests? Or better: is there something you learned that solved a difficult problem with end-to-end testing?</li>
</ul>
</li>
</ol>
<h5>Integration Tests</h5>
<ol>
<li>If you test your APIs via HTTP client libraries, what are techniques you use to ensure you cover every aspect (security, bad data, junk data)? E.g. “we have shared ‘it' blocks” or “we wrote a giant library of test helpers”. What is the most painful thing about testing via raw HTTP/REST client libraries? Do you have similar tests in your browser test suite?</li>
</ol>
<h5>Unit Tests</h5>
<ol>
<li>Do you write unit tests for JavaScript that runs in a browser (i.e. the front-end)?
Do you isolate each piece (or module), or
do you test it all integrated? If you've had success doing this, can you explain roughly what your
front-end architecture looks like, and how the architecture helps (or gets in the way)? E.g., you can just
say “we use Ember”, or “we use the Flux architecture from React/Facebook.” Or “our app is 5000 lines
of jQuery in one method, and every night I cry myself to sleep.”</li>
<li>Do you run server-side JavaScript on Node.js and successfully test it? Do you
try to isolate every module, or only isolate the boundaries, or isolate nothing?
</li>
</ol>
<h5>JavaScript xUnit Test Frameworks</h5>
<ol>
<li>Do you use Jasmine or another JavaScript testing framework? Do you think it makes a difference if you use Jasmine versus Mocha, and most importantly, why? If you have converted a Jasmine test suite to another framework, how
hard or easy was the conversion?</li>
<li>Do you use a specific assert library, and if so, why does it matter?</li>
</ol>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment