{"id":477,"date":"2016-02-12T21:13:15","date_gmt":"2016-02-12T21:13:15","guid":{"rendered":"http:\/\/blog.mozilla.org\/webqa\/?p=477"},"modified":"2016-02-12T21:13:15","modified_gmt":"2016-02-12T21:13:15","slug":"web-qa-2015-year-in-review","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/fxtesteng\/2016\/02\/12\/web-qa-2015-year-in-review\/","title":{"rendered":"Web QA: 2015 &#8211; Year in Review"},"content":{"rendered":"<p>(Sorry it&#8217;s late &#8211; better late than never, yeah?)<\/p>\n<p>As we did <a href=\"https:\/\/blog.mozilla.org\/webqa\/2015\/01\/16\/web-qa-2014-year-in-review\/\">last year<\/a>, it\u2019s always great to revisit and highlight all the awesome work we did over the course of a year.<\/p>\n<p>A lot of the great progress we made last year sets us up with really strong groundwork, in both technical and collaborative aspects, for an equally (if not &#8212; and hopefully moreso!) rewarding 2016!<\/p>\n<p><a href=\"http:\/\/blog.mozilla.org\/fxtesteng\/files\/2015\/12\/23715685901_a274bbe0a1_z.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-475 size-large\" src=\"http:\/\/blog.mozilla.org\/fxtesteng\/files\/2015\/12\/23715685901_a274bbe0a1_z-600x428.jpg\" alt=\"23715685901_a274bbe0a1_z\" width=\"500\" height=\"357\" srcset=\"https:\/\/blog.mozilla.org\/fxtesteng\/files\/2015\/12\/23715685901_a274bbe0a1_z-600x428.jpg 600w, https:\/\/blog.mozilla.org\/fxtesteng\/files\/2015\/12\/23715685901_a274bbe0a1_z-300x214.jpg 300w, https:\/\/blog.mozilla.org\/fxtesteng\/files\/2015\/12\/23715685901_a274bbe0a1_z.jpg 640w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<h2><\/h2>\n<h2><\/h2>\n<p><strong><em>Pictured, above, from left to right (clockwise): Rebecca, Matt, Stephen, Krupa, Dave, Justin, and Bob.<\/em><\/strong><\/p>\n<p><strong>Full-size images here: <a href=\"https:\/\/www.flickr.com\/photos\/134774698@N08\/23715685901\/in\/album-72157662496585105\/\">https:\/\/www.flickr.com\/photos\/134774698@N08\/23715685901\/in\/album-72157662496585105\/<\/a><br \/>\n<\/strong><\/p>\n<h4><strong>Team Highlights:<\/strong><\/h4>\n<ul>\n<li>announced in June, but starting his contributions back in January, even, <a href=\"http:\/\/blargon7.com\/2015\/06\/joining-web-qa\/\">we welcomed Dave Hunt to the team<\/a>, officially!<\/li>\n<li><a href=\"https:\/\/mozillians.org\/en-US\/u\/stephend\/\">Stephen<\/a> stepped into a <a href=\"https:\/\/blog.mozilla.org\/webqa\/2015\/12\/20\/stepping-into-a-new-individual-contributor-role-on-web-qa\/\">new, individual-contributor role<\/a>, and is happy to continue working with this great team, in a new capacity \ud83d\ude42<\/li>\n<li>to help bring our own team together a little more, as well as make our roles and services\/offerings a little clearer to those with whom we work, we discussed and put our <a href=\"https:\/\/wiki.mozilla.org\/QA\/Execution\/Web_Testing#Web_QA_Team_Mission\">mission statement<\/a> up on our team wiki<\/li>\n<li>we identified the need for a &#8220;<a href=\"https:\/\/wiki.mozilla.org\/QA\/Execution\/Web_Testing\/roles\/buildmaster\">Buildmaster<\/a>&#8221; role to better-identity, track, and drive build failures to resolution, which we instituted, and use across the entire team, on a rotation model<\/li>\n<\/ul>\n<div><strong>Infrastructure:<\/strong><\/div>\n<ul>\n<li>this also falls under Community, but, by and large, one of our biggest and most-impactful undertakings of 2015 was to finally make our <a href=\"https:\/\/webqa-ci.mozilla.com\/\">Jenkins instance<\/a> public. \u00a0There\u2019s a much-more detailed blog post about it here: <a href=\"https:\/\/blog.mozilla.org\/webqa\/2015\/03\/05\/web-qa-publishes-automated-test-results\/\">https:\/\/blog.mozilla.org\/webqa\/2015\/03\/05\/web-qa-publishes-automated-test-results\/<\/a><\/li>\n<li>through a combination of manual testing and our Selenium WebDriver automation, we tested and helped ensure that more than 15 website or Web applications were fully functional, end-to-end<\/li>\n<li><span class=\"author-a-z89zxz87zz70zyz89zfpz88z1z69znl1z82zr\">to test and isolate upcoming Selenium releases, and help ensure our Grid was more reliable, we set up a staging Selenium Grid instance<\/span><\/li>\n<li>working closely with WebOps on HTTP\/2, we <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1222147\">helped test<\/a> early support for <a href=\"http:\/\/http2.github.io\/\">HTTP\/2<\/a> in an upgrade to our <a href=\"http:\/\/www.brocade.com\/en\/products-services\/application-delivery-controllers\/virtual-traffic-manager.html\">Virtual Traffic Manager<\/a>.<\/li>\n<\/ul>\n<div><strong>Marketing\/Firefox Launch Campaigns:<\/strong><\/div>\n<ul>\n<li>Summer: coordinated, tested, and help ship both in-product and accompanying Web pieces for the June 1st launch of the <a href=\"https:\/\/wiki.mozilla.org\/Firefox_Growth_Campaign_2015\">Firefox Growth Campaign<\/a><\/li>\n<li>Fall: all of the above efforts, again, for the November 3rd launch of the <a href=\"https:\/\/wiki.mozilla.org\/Firefox\/2015\">Firefox Growth Campaign<\/a><\/li>\n<\/ul>\n<div><strong>Test Automation:<\/strong><\/div>\n<ul>\n<li>we collaborated on a new README for our test-automation projects &#8211; <a href=\"https:\/\/github.com\/mozilla\/Addon-Tests\/commit\/46b079797bf228fb5ea3b554b96784547d8c2136\">AMO&#8217;s README<\/a> was the 1st to use<\/li>\n<li>we standardized on <a href=\"https:\/\/flake8.readthedocs.org\/en\/latest\/\">Flake8<\/a>, and implemented automatic pull-request checks, run via <a href=\"https:\/\/travis-ci.org\/\">Travis CI<\/a><\/li>\n<li><span class=\"author-a-z89zxz87zz70zyz89zfpz88z1z69znl1z82zr\">New py.test plugins, for which there&#8217;s a really great blog post, here <a href=\"http:\/\/blargon7.com\/2015\/12\/selenium-tests-with-pytest\/\">http:\/\/blargon7.com\/2015\/12\/selenium-tests-with-pytest\/<\/a> :<\/span>\n<ul>\n<li><a href=\"https:\/\/github.com\/davehunt\/pytest-selenium\"><span class=\"author-a-z89zxz87zz70zyz89zfpz88z1z69znl1z82zr\">pytest-selenium<\/span><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/davehunt\/pytest-html\"><span class=\"author-a-z89zxz87zz70zyz89zfpz88z1z69znl1z82zr\">pytest-html<\/span><\/a><\/li>\n<li><span class=\"author-a-z89zxz87zz70zyz89zfpz88z1z69znl1z82zr\"><a href=\"https:\/\/github.com\/davehunt\/pytest-variables\">pytest-variables<\/a><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div id=\"magicdomid18\" class=\"\">\n<h4><strong>Project-specific highlights:<\/strong><\/h4>\n<div><strong>Bouncer\/Sentry:<\/strong><\/div>\n<\/div>\n<ul>\n<li>through both manual testing and our <a href=\"https:\/\/github.com\/mozilla\/bouncer-tests\">test automation<\/a>, we supported a <a href=\"https:\/\/github.com\/mozilla-services\/go-bouncer\">Bouncer\/Sentry rewrite<\/a> <strong><em>and<\/em><\/strong> migration to AWS (both huge endeavors, to be sure)<\/li>\n<\/ul>\n<div><strong>MDN:<\/strong><\/div>\n<ul>\n<li>we started off the year by <a href=\"https:\/\/blog.mozilla.org\/webqa\/2015\/01\/15\/make-the-intern-do-it\/\">prototyping automated functional tests<\/a> using The Intern, in largely-asynchronous JavaScript (as opposed to our usual Python)<\/li>\n<li>we helped test and ensure a smooth launch of the v1.0 of <a href=\"https:\/\/github.com\/mdn\/browsercompat\">BrowserCompat<\/a><\/li>\n<\/ul>\n<div><strong>Marketplace:<\/strong><\/div>\n<ul>\n<li>we got our real-browser, <a href=\"https:\/\/github.com\/mozilla\/fireplace\/pull\/1486\">full-stack Marketplace test automation running<\/a>, via Travis CI, for the fireplace repo<\/li>\n<li><span class=\"author-a-lz80ziz66zqz86zdovz87zrz68zbz89z04\">support (including test automation) for <a href=\"https:\/\/wiki.mozilla.org\/Marketplace\/Mobile_Optimized_Websites\">Mobile Optimized Websites<\/a><\/span><\/li>\n<li>tested and shipped Desktop games<\/li>\n<li>tested and shipped two rounds of navigation refreshes, across all platforms<\/li>\n<li id=\"magicdomid9\"><span class=\"author-a-lz80ziz66zqz86zdovz87zrz68zbz89z04\"><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Firefox_OS\/Releases\/2.5\">Firefox OS 2.5<\/a> features tested and launched:<\/span>\n<ul>\n<li><span class=\"author-a-lz80ziz66zqz86zdovz87zrz68zbz89z04\">Add-ons<\/span><\/li>\n<li><span class=\"author-a-lz80ziz66zqz86zdovz87zrz68zbz89z04\">Late Customization<\/span><\/li>\n<li><span class=\"author-a-lz80ziz66zqz86zdovz87zrz68zbz89z04\">Homescreens<\/span><\/li>\n<li><span class=\"author-a-lz80ziz66zqz86zdovz87zrz68zbz89z04\">Blocklisting<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div><strong>Mozillians:<\/strong><\/div>\n<ul>\n<li><a href=\"https:\/\/github.com\/bebef1987\">Florin<\/a> <a href=\"https:\/\/github.com\/mozilla\/mozillians-tests\/commit\/763ec668139788005d573020e0715930ee5c0dfd\">resurrected<\/a> test-automation coverage, to help ensure that key, new profile features and supporting changes were tested, all throughout a crucial development cycle<\/li>\n<\/ul>\n<div><strong>Mozilla.org:<\/strong><\/div>\n<div id=\"magicdomid21\" class=\"\">\n<ul class=\"list-bullet2\">\n<li><span class=\"author-a-svbz73zz73z3z87zz70zkz68zz69z9z89z1ez76z\">together with Engagement Engineering, our test-automation became an integral part of the team&#8217;s build\/delivery pipeline:<\/span>\n<ul>\n<li><a href=\"https:\/\/ci.us-west.moz.works\/view\/Bedrock%20Pipeline\/?auto_refresh=true\">https:\/\/ci.us-west.moz.works\/view\/Bedrock%20Pipeline\/?auto_refresh=true<\/a><\/li>\n<li>this marks a first for our team&#8217;s tests being fully integrated into a development and push workflow, where critical tests block the release automatically upon failure<\/li>\n<li><span class=\"author-a-oz90z64cfmlz73zuz75zz73zugz70zz84z\">the above includes work to move repo tests into dev branches &#8211; ex: <a href=\"https:\/\/github.com\/mozilla\/bedrock\">Bedrock<\/a><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<div><strong>One and Done:<\/strong><\/div>\n<div id=\"magicdomid35\" class=\"\">\n<ul>\n<li><span class=\"author-a-z78zz81zz81zxx1z87zhz74zbh6gz76zv7\">Updated from an old, unsupported version of Django (1.4) to the latest (at the time) (1.8)<\/span><\/li>\n<li><span class=\"author-a-z78zz81zz81zxx1z87zhz74zbh6gz76zv7\">Migrated the site from internal Stackato PaaS to Heroku<\/span><\/li>\n<li><span class=\"author-a-z78zz81zz81zxx1z87zhz74zbh6gz76zv7\">Enhancements to open up usage to more of Mozilla:<\/span>\n<ul>\n<li><span class=\"author-a-z78zz81zz81zxx1z87zhz74zbh6gz76zv7\">Removed QA-specific language<\/span><\/li>\n<li><span class=\"author-a-z78zz81zz81zxx1z87zhz74zbh6gz76zv7\">Created Team landing pages<\/span><\/li>\n<li><span class=\"author-a-z78zz81zz81zxx1z87zhz74zbh6gz76zv7\">Added a feature for tasks that require sign-off<\/span><\/li>\n<li><span class=\"author-a-z78zz81zz81zxx1z87zhz74zbh6gz76zv7\">Replaced the Leaderboard with a list of Recent Users<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<div><strong>Socorro:<\/strong><\/div>\n<ul>\n<li>while our development team migrated the site\/app (and its staging server) to the cloud, we <a href=\"https:\/\/github.com\/mozilla\/Socorro-Tests\/pull\/343\/commits\">cleaned-up<\/a> <a href=\"https:\/\/github.com\/mozilla\/Socorro-Tests\/pull\/338\">and<\/a> <a href=\"https:\/\/github.com\/mozilla\/Socorro-Tests\/pull\/345\">bolstered<\/a> our test automation (just a sampling of the <a href=\"https:\/\/github.com\/mozilla\/Socorro-Tests\/commits\/master\">commits<\/a> over the year)<\/li>\n<li>we also reinvigorated the conversation around application quality through better workflow and deployment practices<\/li>\n<\/ul>\n<div><strong>SUMO:<\/strong><\/div>\n<ul>\n<li>we returned to, and renewed our efforts in both automated and targeted manual testing to SUMO:\n<ul>\n<li>we resurrected some <a href=\"https:\/\/github.com\/mozilla\/sumo-tests\/pull\/311\">high-level mobile tests<\/a><\/li>\n<li>supported new features and revisited where we could help with additional test coverage<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div><strong>Treeherder:<\/strong><\/div>\n<ul>\n<li>we began <a href=\"https:\/\/github.com\/mozilla\/treeherder-tests\">automated functional tests<\/a> for the <a href=\"https:\/\/developer.mozilla.org\/en-US\/Firefox_OS\/Automated_testing\/Treeherder\">Treeherder<\/a> UI<\/li>\n<\/ul>\n<div id=\"magicdomid30\" class=\"\"><\/div>\n<div><strong>Webqabot:<\/strong><\/div>\n<ul>\n<li>we <a href=\"https:\/\/blog.mozilla.org\/webqa\/2015\/10\/07\/web-qas-new-irc-bot\/\">introduced<\/a> and welcomed our shiny-new <a href=\"https:\/\/github.com\/mozilla\/webqabot\">webqabot<\/a> to our IRC channel!<\/li>\n<\/ul>\n<div><strong>Community:<\/strong><\/div>\n<ul>\n<li>We started <a href=\"https:\/\/blog.mozilla.org\/webqa\/2015\/07\/15\/weekly-web-qa-team-meetings-are-now-recorded\/\">recording and archiving our weekly team meetings<\/a> via Air Mozilla<\/li>\n<li>Conferences:\n<ul>\n<li><a href=\"https:\/\/mozillians.org\/en-US\/u\/stephend\/\">Stephen<\/a> attended Selenium Conference 2015 and published a <a href=\"https:\/\/blog.mozilla.org\/webqa\/2015\/09\/21\/selenium-conference-2015-wrap-up-notes\/\">summarizing writeup<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Presentations and Meetups:\n<ul>\n<li>The team held a <a href=\"http:\/\/www.meetup.com\/SeleniumSanJose\/events\/224796667\/\">meetup<\/a>, during which <a href=\"http:\/\/blargon7.com\/\">Dave Hunt<\/a> presented on our pytest-based test-automation framework\n<ul>\n<li><a href=\"http:\/\/www.slideshare.net\/davehunt82\/mozilla-web-qa-evolution-of-our-python-webdriver-framework\">slides<\/a><\/li>\n<li><a href=\"https:\/\/air.mozilla.org\/mozilla-web-qa-re-volution-of-our-webdriver-based-python-testing-framework\/\">video<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Sorry it&#8217;s late &#8211; better late than never, yeah?) As we did last year, it\u2019s always great to revisit and highlight all the awesome work we did over the course &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/fxtesteng\/2016\/02\/12\/web-qa-2015-year-in-review\/\">Read more<\/a><\/p>\n","protected":false},"author":512,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[228],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/posts\/477"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/users\/512"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/comments?post=477"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/posts\/477\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/media?parent=477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/categories?post=477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/fxtesteng\/wp-json\/wp\/v2\/tags?post=477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}