Home » Archives for Daniel

Author: Daniel

Mobile Testing Checklist - Adventures in QA

Mobile Testing Checklist

Every new feature that is implemented on a mobile app must be tested. Of course, software testers can write long test cases and test plans but we all know that the requirements of feature can and most likely will change during the development phase. Sometimes new requirements are showing up or requirements are not important or valid anymore. If a huge test plan have been written it needs to be adapted and this is time consuming. A couple of blog posts I published the mobile testing cheat sheet, to help you not to forget to test important aspects of mobile testing. In this blog post I want to share a quick mobile testing checklist which may help you to concentrate on 10 very important things to test. Besides that I recommend you to create mind-maps instead of long test cases to outline your tests against the requirements.

Mobile Testing Checklist

Read more

How We As a Team Chose a Testing Framework – Christine Zierold

What is Nightwatch.js

Nightwatch.js is an END to END Testing framework based on Node.js. It uses the WebDriver API from Selenium.
These are some of the features from this framework:

  • Using Selenium Server
  • CSS & XPath support
  • Easy to extend through other Node.js packages
  • Cloud service support as such as SauceLabs and BrowserStack
  • Built-in JUnit XML reports supporting continuous integration systems

WebDriverAPI - Nightwatch

Source: http://nightwatchjs.org/gettingstarted

The framework is well documented. It has a detailed ‘getting started’ guide to setup your first project and also an API Reference.

Why we chose it

In my last project, my team and I were building a frontend based on REACT. REACT is a javascript library for building user interfaces. The frontend should connect to a database via a REST API. The goal was to make it easier to enter data and also to have a manageable dashboard for all the data.

DBandAPI - NIghtwatch

Source: https://www.mongodb.com/blog/post/the-modern-application-stack-part-5-using-reactjs-es6-and-jsx-to-build-a-ui-the-rise-of-mern

In this team, we decided together to try the whole-team approach for a scrum team. That means everybody has equal responsibilities and try to work on everything but, surely, everybody wears a special hat for their specialties. So I coded primarily the UI Tests but I also programmed some smaller UI components or created Unit tests to get an even better code coverage (>90%). For me, the positive thing of this approach was that any of the team members could be sick or on vacation and still everything would go on. If a test would be red all of us were able to look into the log and check if there is a problem or if this was a hiccup of the system or network.

We chose Nightwatch.js because I wanted to lower the first barriers for the members of my team to also program UI Tests. I thought when I choose a framework in the same programming language and also with the same additional frameworks (e.g. Chai or Mocha) as they use for the unit test that they don’t have any excuses to not program tests. But in the end, we all decided and also committed together to use Nightwatch.js as the UI testing framework.

ChaiInNightwatch - Nightwatch

(chai assertion in Nightwatch.js)

ChaiJS - Nightwatch

Source: http://chaijs.com/api/bdd/#method_a

Clearly, there are also other Node.js testing frameworks (e.g. webdriver.io ) but Nightwatch.js was already used by other teams in this project. To have the possibility to exchange experience and also check on tests for other teams we decided not to look into other Node.js frameworks besides Nightwatch.js.

The start

To get a better understanding of Nightwatch.js I created some simple tests using boilerplates from Github. But unfortunately, none of them were completely working as I needed it.That’s why I began to build up my own boilerplate. However, I learned a lot from using the other boilerplates. The basic requirements are to install Node.js and Nightwatch.js.

What’s in this boilerplate

The boilerplate is build to either uses plain Nightwatch.js or cucumber with Nightwatch.js. Also included is a simple docker compose file for a selenium hub with two nodes (firefox and chrome). Setup and Usage are completely described on Github.

dockerfile - Nightwatch

Docker compose file

Positive Aspects about the Framework

During the project, the other members of my team adapt, change or also create tests. Here are some positive aspects of the setup with Nightwatch.js:

Pro’s for Developer

  • No local selenium server setup because of docker compose files/setup
  • Easy to use (Node.js)
  • Additional javascript frameworks Mocha or Chai same as UNIT tests

Pro’s for Tester

  • Easy and fast setup of the framework
  • Usable with Cucumber (BDD)
  • Many Node.js packages available to adapt the test suite

Pro’s for the whole team

  • Same testing environment (browser) for everyone through docker setup
  • Quality is a team support
  • Everyone can read the logs/reports and can fix or adapt the tests
  • Nightwatch.js is an open source project


I would definitely recommend using nightwatch.js for other javascript projects. But I also would always try to make the decision for a testing framework together with my team.

About Christine

Christine Zierold - Nightwatch

Christine is from Berlin and lives in Vancouver right now. She accomplishes over 10 years in tech and as a quality assurance engineer (QA) since 5 years. Christine has a background in working for small startups, medium size companies as well as in government. She worked in customer support, as a developer, as a system engineer, as a team lead but from all roles, she liked the most to be a quality assurance engineer. She is currently in the transition from working in an office for a company to work remotely from everywhere as a freelancer. Christine loves to travel and enjoys to encounter new cultures.





Reading Recommendations

Reading Recommendations # 88

Long time no read for you and writing for me. I spend the last 2 month with my family and not in front of a computer screen to enjoy the life (almost 😉 ) outside of the technology world. However, now I am back relaxed and with new ideas in my mind to share them with you in the upcoming days and month. I want to reactivate my blog with my known reading recommendations. In one of the next posts I will present you the results of a survey I created some months ago. So stay tuned and have fun with my reading recos.

The 88 issue of my reading recommendations contains 7 very interesting blog posts and one book recommendation (which I will read soon, too). The are topics about “Session Based Testing in Agile/DevOps Environments”, “The Interview Roadshow”, “Does certification have value or not?”, “A Practical Guide to Testing in DevOps – by Katrina Clokie”, “THREE FREE PROGRAMMING COURSES FOR TESTERS”, “(Live) slow connection mobile testing”, “Ready, Tester One? GO!” and “We’re getting worse at testing”.

Enjoy reading the posts and send me new ones that are worth reading and I will mention you and link to your social links or blog.

Reading Recommendations - Session Based Testing in Agile/DevOps EnvironmentsSession Based Testing in Agile/DevOps Environments – Tales of Testing

Read more

Phased Release - Adventures in QA

Phased Release for Automatic iOS Updates

As announced by Apple at the WWDC 2017 there will be a new AppStore coming this year with the possibility of a phased release for automatic updates. The new feature will provide companies and developers the chance to roll out new app releases to a smaller user base to see if the new version is stable and if the new feature is appreciated by the customers. Apple offers the following steps:

  • Day 1: 1 percent
  • Day 2: 2 percent
  • Day 3: 5 percent
  • Day 4: 10 percent
  • Day 5: 20 percent
  • Day 6: 50 percent
  • Day 7: 100 percent

Apple selects users for each bucket randomly based on their Apple ID, which is better than the device ID, because users may have several devices like an iPhone and iPad and then they get the same app on each device. And users can only be selected by Apple if they turned automatic updates ON.

Once an app is configured for the phased release, the app must pass each step, which is from my point of view not really flexible. Maybe companies want to start the phased release with a bigger customer group than 1, 2 or 5 percent to get faster feedback. However, on the other side it provides a nice way to monitor new features in the live environment and to react on possible issues and it’s the right way to give companies and developers more options to release an app. Stopping the phased release is possible. Developers have the option to push the app to 100% at any time via the iTunes connect. Read more

Reading Recommendations

Reading Recommendations # 87

The 87 issue of my reading recommendations contains 6 very interesting blog posts. The are topics about “Cake, Coffee and some POT”, “Who are these ominous “testers”?”, “Mobile Testing Tools”, “A Tester’s Journey: Select Your Team”, “How often you should run your automation” and “Confidence’s Role in Software Testing”.

Enjoy reading the posts and send me new ones that are worth reading and I will mention you and link to your social links or blog.

Cake, Coffee and some POT - Reading RecommendationsCake, Coffee and some POT – Tales of Testing

Read more