Before doing that, I backed up /usr/local/bin/elm* to /usr/local/bin/elm-0.18/.
I used npm install -g elm-ugrade and npm install -g elm-test@beta to get elm-upgrade and elm-test.
I always start with elm-upgrade, then do what’s necessary to make it build again by hand. Usually it just works after that, but sometimes it takes a little more work, especially if I have to work around a feature that was removed by 0.19.