Product Features Demo Pricing Help Contact Documentation Articles Company Customers Legal Stuff

Our Testing Tools

We care about testing our software and we create tools and libraries that help us. subscribe

November 3, 2016 - Introduction TL;DR: Choose an approach to software testing that helps your organization create the best possible end results. That might mean using and/or creating a few tools and/or libraries along the way. Or, maybe not. What follows is a description of what we do at SmartyStreets, couched as a response to Dan Mullineux’s equally valid way of doing things. The cost A favourite test helper library, with some simple test assertion functions clearly has some value… They [testing libraries] are not so bad, but they come at a cost, defer to avoid them. Continue reading »

How To Setup A Tinc VPN

A quick and dirty reference guide on how to setup a Tinc VPN. subscribe

October 23, 2015 - I was given the task of setting up a tinc VPN so that we could test performance for comparison against other VPN systems. This task took much longer than it should have. For that reason I am making this post to help myself and others remember how to do it again in the future. Installing tinc is straightforward enough. You can download the latest release and build it, or install from your favorite package manager. Continue reading »

Performance Testing With Phoronix

A quick how-to guide for using the Phoronix Test Suite to measure server effectiveness. subscribe

October 5, 2015 - Not every server is made equally. On dedicated servers the hardware varies widely. On virtual and cloud servers the resource allocations also vary widely. Some servers are CPU optimized for maximum computing power. Others focus on having a lot of memory. Some servers are built to have a good balance of all system resources. Hardware aside, we require many differing tasks of our servers. Some applications are processor hungry, some need large amounts of disk space, while others take up a lot of memory. Continue reading »

Testing in Go by example: Part 5

An elegant and effective strategy for dealing with time in unit tests subscribe

September 15, 2015 - For this installment of the Testing in Go series I’ll share a really nifty way to deal with time in your unit tests. When the behavior you are testing depends on the current time it can be tricky to assert on the results because the current time is a moving target. So, usually we end up resorting to approximations in our assertions that, while functional, always bother me a bit. In some cases, depending directly on the system’s current time prevents acceptable test coverage. Continue reading »

Testing in Go by example: Part 4

Our approach to assertions in Go code subscribe

August 11, 2015 - I think it’s time for a slight detour. In part 1 we covered the basics of testing in go. In part 2 we covered a few slick ways to execute tests. In part 3 we covered some of our recent endeavors at smartystreets to build on the basics. Toward the end of that post we went into some detail regarding our approach to assertions. The assertions referenced in the GoConvey project are actually their own separate project that are imported into GoConvey. Continue reading »

May 26, 2015 -

This post contains additional data referenced from the original sex offender registry post.

Continue reading »

May 26, 2015 - A Deceitfully Comforting Illusion In the US today, there are nearly 800,000 registered sex offenders. As part of the registration process, each sex offender is required to report their physical address to a local police department (the exact process varies from state to state). This is intended to empower the public to be able to identify where these offenders live and if one of them lives near you. Having this information, you are supposed to be able to better protect your loved ones and yourself. Continue reading »

May 23, 2015 - A Convergence of Holidays It’s almost Memorial Day, a time when most of us take a little extra time to relax. For a lot of us, it signals the start of summer; it comes around the time most school years end, and in warmer places, pools start to open after Memorial day. It’s a day of barbeques and soda and chips and lots of other things. But this year is special. Continue reading »

May 21, 2015 - Here at SmartyStreets, we’re mostly programmers and developers. There are a few needles in the haystack here that don’t know “Unix” from “eunuchs”, which is unfortunate, but we’re working on that. And because we’re all tech geeks over here, we like to talk about code, and tech, and why all that stuff is important. In that spirit, we decided to talk about code in a way that maybe all of us should have considered a long time ago. Continue reading »

Testing in Go by example: Part 3

Conveying behavior with our approach to BDD in Go subscribe

May 11, 2015 - Review: Welcome to part 3 of our “Testing in Go” series. If you’re new here, feel free to catch up before reading on. In part 1 of this series I eluded to our perceptions of the standard testing tools provided by the Go tool and the standard library and what was missing for us. We all have different expectations of a testing tool and so it’s no wonder that so many have been created. Continue reading »

May 4, 2015 - Here at SmartyStreets, we enjoy our geekery. All of us indulge in pop culture to some degree, and while we all enjoy different flavors of said pop culture, there’s at least one we all agree on without question: Star Wars. And that means that May 4th is a pretty crucial holiday for us. Hopefully all of you are celebrating in some way. We celebrated by buying tickets to go see Avengers: Age of Ultron together as an office. Continue reading »

Testing in Go by example: Part 2

Tests that aren't easy to execute will be ignored. subscribe

February 27, 2015 - Here’s part 2 of our “Testing in Go” series. If you’re new, feel free to catch up before reading on. Basics You’ve already learned how to execute tests in Go for a single package. $ go test There’s a bit more to it, though. You can run any package from anywhere if you provide the import path. For example, this command runs the actual tests for the “testing” package from the standard library: $ go test -v testing If you’ve already run go get github.com/bradfitz/http2 you can execute those tests from anywhere with this: $ go test -v github.com/bradfitz/http2 Try running multiple packages with a single command: $ go test -v testing encoding/json If your project has lots of packages, you can run this at the root of the project to gather and run all tests: $ go test ./... Continue reading »

Testing in Go by example: Part 1

How to use the built-in 'testing' package. subscribe

February 27, 2015 - Here’s part 1 of our “Testing in Go” series. Introduction Thinking about trying Go? You won’t regret it! It’s great that testing is baked into the "testing" package from the standard library and the corresponding go test command (which has all sorts of useful and interesting flags). We’d like to show you how easy it is to get started using the built-in testing tools and introduce you to some tools we’ve created. Continue reading »

Using USPS Address Verification to Prevent Fraud

Using USPS Address Verification to Prevent Fraud. subscribe

November 10, 2014 - While it’s an unfortunate truth of of today’s e-commerce world, it is one that cannot be ignored: Fraud is ever-present in online transactions. The expense of unnecessary shipping costs and human resources, disgruntled customers, and the time it takes to investigate disputes adds up. And the damage to a company’s brand may result in untold amounts of lost sales. Using an address verification service (or AVS) as one of the tools in your fraud management toolbox is a smart and cost-effective move. Continue reading »

September 23, 2014 - Posted by Rob G. Must Have Address to Play Every month, tens of billions of apps are downloaded from the Google Play store. Users of those apps have historically had limited contact with the app developers for asking questions or lodging a complaint. And getting a response from some developers has proved to be a very difficult experience. Google briefly considered requiring app developers to provide their physical address or have their app removed from Google’s play store. Continue reading »

September 11, 2014 - Written by Jonathan Oliver Comcast’s Evil Twin We love our movies and our television. After a hard day at work, many Americans like to enjoy some downtime with a good TV show or movie. When technology advanced in the 1980s in the form of video cassette tapes, this gave us a new choice for how and when we consumed media. From this innovation came a natural outgrowth: the video store. Virtually every town in America had one. Continue reading »

September 9, 2014 - Why Do Some Businesses Fail, and Others Succeed Against All Odds? On the last day of my microeconomics class, my professor asked us a question: “If there are 1.333 trillion barrels of oil left on the planet and we use 6.89 billion barrels of oil each year, how long will it take for us to run out of oil?” Pencils and calculators came out to solve what seemed like a math problem. Continue reading »

February 18, 2014 - You asked for it and now you’ve got it. For packages that pass all tests, coverage reports are generated and made available by clicking the package name, which in that case becomes a link (provided you’ve cleared your browser’s cache!). Right now the coverage command that is run is something like this: $ go test -covermode=set -coverprofile=<package_name>.txt That command generates a plain text profile used in the following command: $ go tool cover -html=<package_name>.txt -o <packge_name>.html …which plunks down an html file which we can link to from the UI. Continue reading »

February 7, 2014 - One of the great benefits of TDD/BDD is that you usually don’t have to spend much, if any time at all in a debugger. To enter a debugger is to admit a loss of control over the system under test. Even so, there are times when you do need to debug something, even if you’re maintaining the discipline. Lately, most of my coding is in GoLang. Coming from using an IDE almost exclusively to write Python (using PyCharm) and C# (using VS and ReSharper), and knowing how great the visual debugging tools are it’s hard to fathom using a console-based debugger for GoLang code. Continue reading »

December 26, 2013 - It’s now been a few months since I decided that the kind of testing tools I wanted for Go programming hadn’t yet been created (or I just hadn’t found them yet…). Luckily, I had the blessing of my employer to spend some quality time to produce them. About 4 months ago I started work on GoConvey and a month later came the first release. The coolest thing about GoConvey (other than the clean DSL, comprehensive set of built-in assertions, and the fact that it integrates fully with go test) is the built-in auto-reloading web UI that reports your test results to your web browser whenever a relevant file is saved (HTML5 notifications included). Continue reading »