Editor's note: This post, like yesterday's, is more technical than most posts here, but we thought some of you might find it interesting to look inside how Gmail works.
Yesterday, we talked about how we make changes like the new look to
Gmail. The new look is not just visual, but involves completely
different code in the interface. Testing a large user interface (UI)
change like we launched for Gmail is foremost a permutation problem.
Because all the Gmail features we wrote while we developed the new UI
had to work both there and in the old existing UI, we basically needed
to double our testing. Plus, the new UI has to work in many browsers, in
all languages Gmail is available in, which means even more testing --
and by testing, we mean functional testing, latency testing, usability
testing... you get the idea! The only way to handle all of these moving
parts is through a) test automation, and b) using the new look.
We use automated tests as much as possible: we test if code changes lead
to functional regressions, how they affect speed and our servers, if
the UI breaks in many browsers and more. The scalable build and test
infrastructure at Google allows us to run these tests automatically
after every single(!) code change. However, a major UI change like this
requires that our automated tests are very stable. If a test relies too
much on the structure of the UI, then the test starts failing - not
because the functionality is broken, but because it fails to work with
the new UI. Luckily, we learned this lesson many years back and most of
our tests did not have this problem.
But even the best automated tests can’t guarantee that everything is
working well and that the visuals are pleasing. The only way to find out
is to actually use the new look. For Gmail, we have special environment
that gets updated every night with the latest stable code. Almost all
Gmail engineers and a handful of other Googlers are using this
environment for their real Gmail usage. But it turned out even daily
updates were too slow for the rate of code change with the new look. So,
we created an environment that updates every hour with the latest
stable code. This version of Gmail was used by all engineers who worked
on the redesign. It allowed us to test code changes very quickly on the
real system. We were able to find many functional and usability issues
here. And because we used this system and no engineer likes their email
to be broken, issues were fixed very quickly. We can only do this
because we have a very good coverage by our automated tests. When all
these tests pass, we can be sure that most of the Gmail functionality is
working. However, there could still be usability, color, layout or
other challenges that tests can't catch.
Gmail’s new look also put a lot of additional load on our testing team.
They had to keep up with a high rate of change, test critical
functionality quickly and triage a lot of reported issues. Plus, they
had to test new features in both the old publicly-available UI as well
as the new unlaunched UI. The dedication of our testing team helped us
catch bugs early so we could fix them in preparation for launch.
Once we felt that the new look was good enough to be used by others, we
turned it on for all Googlers. At Google, we "eat our own dogfood,"
meaning we use new products and features ourselves before releasing them
to the public. Often, this is a very humbling experience. The shiny,
new features, that we just developed and are so proud of are now used by
people, including sales teams, managers and other non-engineers, who
just want to get their job done. And believe me, Googlers are not shy
when it comes to feedback! But for a project like this one, this step is
absolutely critical. Our different teams at Google tested Gmail in all
kinds of use cases and the feedback that we received from this phase was
invaluable. It helped us to put the final touches on the new look and
get ready for usability tests that were previously discussed.
We hope you've enjoyed a look into the Gmail's design, development and testing of the new look.
Thursday, December 8, 2011
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment