Write tests. Not too many. Mostly integration.

I’ve heard managers and teams mandating 100% code coverage for applications. That’s a really bad idea. The problem is that you get diminishing returns on your tests as the coverage increases much beyond 70% (I made that number up… no science there). Why is that? Well, when you strive for 100% all the time, you find yourself spending time testing things that really don’t need to be tested. Things that really have no logic in them at all (so any bugs could be caught by ESLint and Flow). Maintaining tests like this actually really slow you and your team down.

You may also find yourself testing implementation details just so you can make sure you get that one line of code that’s hard to reproduce in a test environment. You really want to avoid testing implementation details because it doesn’t give you very much confidence that your application is working and it slows you down when refactoring. You should very rarely have to change tests when you refactor code.

I should mention that almost all of my open source projects have 100% code coverage. This is because most of my open source projects are smaller libraries and tools that are reusable in many different situations (a breakage could lead to a serious problem in a lot of consuming projects) and they’re relatively easy to get 100% code coverage on anyway.
Mostly integration.

There are all sorts of different types of testing (check out my 5 minute talk about it at Fluent Conf: “What we can learn about testing from the wheel”). They each have trade-offs. The three most common forms of testing we’re talking about when we talk of automated testing are: Unit, Integration, and End to End.

I Learned to Love Standardized Tests

They don’t have to be basic, boring or biased. A good question provokes deep engagement.

In the past, tests such as the SAT and ACT may have resulted in discrimination against particular groups. But this doesn’t imply testing should be abandoned. The real alternative to discrimination is to have the best, fairest tests possible. That’s why these days every standardized-test question is tested for bias. Questions are judged on several scales, including their “differential item functioning”: Subgroups of students—black males, white females, suburban kids, rural ones, Southern students, students living in poverty—are controlled for overall ability. Auditors compare the performance of these subgroups, and if any of them underperform on a particular question, it’s thrown out and never used. In addition, we don’t ask questions on certain topics. We know boys do better than girls on questions about sports, and rich kids do better than poor kids on questions about sailing, so we leave those subjects out.

CROSS BROWSER TESTING CLOUD

Perform Cross Browser Testing on 2000+ Real Browsers and Operating System Online

Perform live interactive cross browser testing of your public or locally hosted websites and web apps on 2000+ real mobile and desktop browsers running on real operating system. Debug in realtime on both desktop and mobile browsers with integrated debugging tools.

Travis CI: Heroku Deployment

Travis CI can automatically deploy your Heroku application after a successful build.

To use the default configuration, add your encrypted Heroku api key to your .travis.yml:

<span class="token key atrule">deploy</span><span class="token punctuation">:</span>
  <span class="token key atrule">provider</span><span class="token punctuation">:</span> heroku
  <span class="token key atrule">api_key</span><span class="token punctuation">:</span>
    <span class="token key atrule">secure</span><span class="token punctuation">:</span> <span class="token string">"YOUR ENCRYPTED API KEY"</span>