June 28th, 2016 by Joe Nolan
Gaining traction on your new automation efforts can be a challenge, especially when your team is new to the art. Teams can stall due to lack of time, no overall direction, or knowledge paralysis. But you can solve this roadblock by temporarily bringing on a developer.
I recently wrote about problems with QA teams adopting automation in my blog post “Why is Manual QA so Prevalent?” Shortly after writing that post, I joined a new team, and quickly discovered multiple issues. We needed help.
I inherited a team that had been rooted in manual testing and was in the process of adapting automation practices. There are normally 1-2 engineers per scrum team, but they had recently become shorthanded due to a couple of promotions out of the team.
The team began to stall in its automation efforts due to: Read the rest of this entry »
June 24th, 2016 by The Sauce Labs Team
Thanks to everyone who joined the webinar given by Sahas Subramanian, “Design Patterns for Scalable Test Automation with Selenium and WebdriverIO”. There were a number of great questions that were posed prior to and during the session, and we asked Sahas to consolidate some of these questions and answer them in this follow-up post. Disclaimer: opinions shared below are Sahas’ and not those of his employer or Sauce Labs.
If you missed the webinar, you can find the video, slides and link to a related blog post here. Should you have any additional questions, send a tweet to @Sahaswaranamam.
Q: How can you best handle security authentication pop-ups from specific browsers? What are the best ways to switch between tabs and to close tabs?
A: Use the getCurrentTabId API to get the handle of the current window. Once you have the pop-up window handle, you could close it using
Q: How should I handle SOAP/SOAPUI testing?
A: Generally speaking, Selenium and Webdriver are appropriate for UI testing. If your intention is to test the APIs, I would suggest using tools like JMeter and/or Taurus. Reference: http://gettaurus.org
Q: How do I create my own wrapper? (How can I check for page title?)
A: Check out http://webdriver.io/api/protocol/title.html Read the rest of this entry »
June 23rd, 2016 by Ashley Hunsberger
Putting quality first is critical. Teams must take ownership of quality, but to do so they have to create an environment that allows them to build quality in, instead of testing it out much further down the road to delivery. Finding bugs late is too costly if you aren’t yet to the point of being able to prevent them (implementing BDD). Ensure you can find them early.
Staying green is hard work!
I’ve seen many things change this year. My daughter began kindergarten. (How did THAT happen so fast?!) I also began blogging, and our department is trying to shift from Waterfall to Agile and Continuous Delivery, with teams shifting to own quality instead of tossing code over to QA… all great changes. But one thing has remained the same. We were still finding bugs late.
I’ve written many times about the importance of quality first. But how did our team take action on that? First, we HAD to have automation. Purely manual testing was just not going to cut it anymore. Don’t get me wrong, I still very much value human-based testing. But frankly, it can catch things too late. So, enter our automated tests. We began with what we called our pre-commit tests. These must be run — you guessed it — before you commit code! Yes, they are slower than unit or integration tests. But they take around 7-8 minutes (allowing time to go grab some coffee, stretch, whatever). They are our most critical features and workflows. Aside from running locally before committing, they are also scheduled and running many times over during the day with all the commits going on. Once we established that set of tests, we began our work on more user acceptance tests – still hero workflows, but trying to keep in mind the fine line between useful UI tests and too many tests (think of the testing pyramid). Read the rest of this entry »
June 21st, 2016 by Joe Alfaro
In my last blog post I wrote about the way in which moving to SCRUM teams fosters communication, transparency, and trust, both internally among team members, and externally with customers. Achieving open communication like this is one of the main goals of Agile, but just as important is the development of leadership within the SCRUM teams.
Ideally, every SCRUM team is self-managing in regards to their own work. The Product Owner determines what will get done, the tactical decisions about how it gets done should be left up to the team. There is a simple philosophy behind this: those whose work focuses on a specialized area of the product know better how to improve it, and how much work will be involved, than anyone from outside of that group. The product owner within the team is there to advocate for the customer, and to decide when a minimally viable product is ready for release, but they don’t tell the team what to do or how to do it. Read the rest of this entry »
June 20th, 2016 by Yaroslav Borets
We love open source. As advocates and contributors, we benefit from community participation and return the love via Open Sauce – free access to the Sauce Labs testing platform for open source projects. We’ve recently made some improvements to Open Sauce that enhances the UI and makes sharing results easier. Here’s the rundown:
- Simplified Badge Sharing Flow. Open Sauce users will see a new badge directly on their dashboards notifying them of the status of their latest build. Clicking on the badge will reveal a new window with inline links.
- New Build Status Badges.We’ve developed two new icons / badges that users can use to share the status of their latest builds on their GitHub pages or embed them anywhere where the information is needed.
- New Build Matrix. In addition to the badges, we’ve revised our existing browser matrix to allow our users to quickly see which browser/OS combinations the build ran against and which platforms experienced a failure.
- Redesigned Public Open Sauce Profiles. Clicking on one of the status badges or build matrixes will automatically redirect to a branded open sauce UI that allows anyone to see recent jobs performed by the open sauce user without the need to log in.
Finally, the UI changes are only targeted at our Open Sauce users and won’t be seen by users on any of our other plans. As before, users with private builds (any of our paid plans) can choose to use the new badges by adding an HMAC token.
If you have any questions, please drop a note to email@example.com.
The Sauce Labs Team
June 17th, 2016 by Bill McGee
Thanks to everyone who joined us for our recent webinar, “Design Patterns for Scalable Test Automation Using Selenium and WebdriverIO”, featuring Continuous Delivery and Quality Architect Sahas Subramanian.
In this webinar, Sahas gave an explanation and showed examples of design patterns that can help you build stable and scalable automated tests using Selenium, WebdriverIO and Sauce Labs. The presentation also covered:
- Rationalized automation – when to use WebDriver and browser-based automation technique
- Patterns & practices
- Test, Page Object, UIMap and their respective roles
- Dealing with asynchronous behavior without using thread.sleep
- Sharing UI map, Page Objects, and how to avoid redundant code
To learn more about WebdriverIO, check out this recent blog post from Sahas, “Accelerate Multi-browser Testing Using Sauce Labs and Webdriver.io“, as well as this in-depth post that complements the Design Patterns webinar.
Access the recording HERE and view the slides below:
June 16th, 2016 by Sahas Subramanian
We all know the importance of the Test Automation Pyramid and why it makes sense to align various automations in this way. Given that guiding principle, end-to-end GUI tests sit at the top, with a considerably small number of tests compared to other types (Unit, Integration, Service tests), and they are useful to verify business workflows. In the book Agile Testing: A Practical Guide for Testers and Agile Teams, the authors explain the testing quadrants, the GUI tests’ fit in the grand scheme of things, how to rationalize intention, and be smart about overall Quality strategy.
The intention of the E-E GUI tests is to verify “whether we build the right thing from the business perspective.”
Read the rest of this entry »
June 14th, 2016 by Bill McGee
We’re excited to announce that Sauce Labs is sponsoring the hack.guides() 2016 Tutorial Contest. Between now and July 30th, 2016, automated test engineers and developers from around the world can share their expertise by creating high-quality tutorials and guides for tips and tricks on using Selenium and writing awesome automated testing scripts. The hack.guides() authoring contest is unique; it brings the developer community together to create and curate collaborative content – all tutorials will be open-sourced on Github. If your tutorial is judged to be the best, you’ll be in line to win $500 from hack.guides()
Take a look and consider sharing your experiences & best practices by writing about:
- How to write stable and reliable Selenium or tests
- How to ensure your Selenium tests work in multiple browsers (Chrome, FF, IE, Safari)
- How to write source code so that it is easily testable via Selenium (id’s, accessibility id’s, classname, etc.)
Or anything that comes to mind. For more details, check out the official website.
Happy tutoring from your friends at Sauce Labs!
June 8th, 2016 by Isaac Murchie
We are pleased to announce the release of Appium 1.5.3 through npm and on Sauce Labs!
Appium 1.5.3 is primarily a bug-fix release. However, it also adds functionality to support for iOS WKWebViews and for automating the iOS Calendar app, as well as adding a capability to use
abd for screenshots in Android web/hybrid sessions, and providing a list of Android activities to wait for on session startup.
- Fix handling of statuses from proxied drivers (Chrome, Selendroid, etc.).
- Fix intermittent bug where creating a directory might crash the server.
- Add support for
- Add support for automating the built-in Calandar app.
- Fix bug where scrolling in Safari would crash.
- Fix handling of Safari in “new window” state.
- Fix handling of arguments for
keys method so that clients that send an array do not fail.
- Clean up handling of
ipa files for real device tests.
- Make sure
processArguments parsing works.
nativeWebScreenshot capability, to use
adb screenshots instead of ChromeDriver if necessary.
- Add support to auto-select device based on
platformVersion rather than using first available device.
appWaitActivity to be a list of activities.
- Fix setting wifi and data state.
deviceUDID when requesting session details, so tests have more information about running state.
- Make sure unlock app is closed at the end of a session so that the device works again.
- Fix handling of unlock to make less flakey.
- Make sure unicode encoding works correctly when strings are long.
- Fix handling of
- Fix bug where early ChromeDriver failure crashed Appium.
June 7th, 2016 by Sahas Subramanian
There are a lot of webdriver-based testing frameworks out there. Webdriver.io is a relatively new cool kid on the block. It has enough to differentiate itself and helps us to focus on creating reliable GUI tests. A few highlights on what this framework comes with:
- Out-of-the-box ES 2015 support – leverage all the goodness that ES6/ES2015 offers.
- Out-of-the-box promises support – This framework uses Q.js internally, and every single command represents a promise. The second command will be executed only after the first command promise is resolved.
- Out-of-the-box Sauce Labs runner service – to run tests on Sauce Labs
- Out-of-the-box parallel test runner (wdio) – to run tests across multiple OS/Browser mixes in parallel
- A rich set of APIs makes the test code short and concise
These advantages help organizations focus on their core responsibility — to automate their verification process quickly instead of developing and maintaining custom libraries to support automation efforts (more productivity — we all love it).
Read the rest of this entry »