When it comes to thought process and idea execution designers and developers are polar opposites. Both supplement each other well, but, as with most things in life, there can be issues with collaboration and communication between both parties. Sometimes ignorant assumptions govern attitudes, which in the end hurts the end product and the user. I believe that designers and developers should work together more often, because if they don’t, it will cause unnecessary problems.
UI automation is a big part of the testing industry, because people appreciate reliable advantage of finding regression errors. Even the most advanced QA can make mistakes during monotonous manual testing, but automated tests do not. If you are a test automation engineer or don’t know what kind of test framework to use this is my positive experience with UI test framework called Capybara.
Testing always plays a big role when developing a product for customers. By testing in different stages of development we make sure that bugs are found as soon as possible and customers get a great product. The testing level that makes sure the product has met the business requirements and customer experience will be pleasant is called Acceptance testing.
Acceptance tests are often done manually, so a human can validate that not only the functionality works as expected, but also verify that there are no visual bugs, inconsistencies or annoyances in general. However, when doing big suites of repetitive tests, manual testing is not perfect because human error is inevitable. We can reduce amount of these manual repetitive tasks and improve acceptance tests overall by automating the most crucial ones and those which take less time for a machine to validate.
Automating tests takes a lot of time. For example, if you have an Android or iOS app it’s twice the work. If resources and time are limited you might have to choose only one system’s tests to automate. But we have a solution to greatly reduce the cost of automating acceptance tests in a single project for both – Android and iOS.
It’s 2018 and here are some things you should consider when developing Android apps. On 17 May 2017, Google announced that it was adopting Kotlin as a high-level programming language for Android development and the usage of it has grown rapidly. The Kotlin plug-in, developed by JetBrains, the same company which created IntelliJ, is now bundled with Android Studio 3.0 and up. So is Kotlin the way to go in 2018? First let’s look what’s expected to be trending this year.
Mobile app trends for 2018
The past year was great for the app economy and 2018 is set to be even better. Mobile apps are more mainstream than ever, and businesses from all industries are diving into this market to boost existing revenue by meeting customer demands. Because development trends change a lot, it is not surprising that new, cutting-edge techniques and tools will emerge. So let’s look at the top trends to focus this year.
Once a novelty Voice over IP (VoIP) nowadays is a basic requirement for any social application. If not included initially, it will later once the application is gaining popularity.
Our need for VoIP testing came early – with one of our first clients, which had VoIP calls integrated. We started with network traffic analysis – gathering UDP/RTP data stream through Wireshark. While a very simple concept, there is quite a lot that can be found from looking at the data coming to and from the computer. Not only we were able to see the bandwidth used by the calls, we could also see the average packet size and packets sent per second. We also noticed that the data consumption correlated with the audio volume that was sent (which of course we have to take in mind when making any tests), however there was one exception.
Last week in our Riga office we hosted a seminar about Smart-ID. It is an innovative digital identity app in a smart device. Smart-ID offers safe, easy and convenient online authentication. It was launched in the beginning of 2017 and is developed by SK ID Solutions. is used by top Baltic companies in banking, energy, telecom, and retail sector; the network of e-services is growing day by day. Smart-ID is offered by SK ID Solutions AS from Estonia, a privately held company with three shareholders: Swedbank, SEB bank and Telia. They are a qualified trust service provider in European Union. Additionally, they run the core infrastructure for Estonian national electronic ID system. So, they are experts in e-identity solutions and we are helping Smart-ID to improve the quality of their product.
This year I had the opportunity to visit Agile Testing Days 2017 in Potsdam, Germany which is considered as one of the greatest testing conferences in Europe intended for Agile Software Testing Community (basically for anyone who works in Agile team and is responsible for the Testing and Quality of the Software). This was the 9th Agile Testing Days and seems like the community grows each year (this year there were more than 700 attendees).
It was a four full day conference, and tutorial day on day one, with more than 160 speakers. Does it sound like much? It was. There were up to eight parallel track sessions, so you can imagine the challenge deciding which talks and workshops to attend. There were great experience stories and talks about testing, test automation and agile future as well as best practices and common mistakes to avoid. I would like to share some interesting presentations as they provide some new viewpoints on software testing and new thoughts about how to improve the quality of the software in agile development teams.
Webhooks that we now know of have been around already for more than 10 years. In 2007 Jeff Lindsay who at the time was working at NASA as a Web Systems Architect started bringing webhook ideology into the light. Although it was only after couple of years that its popularity started really gaining traction. Github has used webhooks since late 2010 but acknowledged the full potential of webhooks only at the beginning of 2014 and made it as one of the primary features for the public. They started to offer more configuration, customization and debugging options for anyone using webhooks. Since then it has become a buzzword in the developer’s world. But let’s quickly go over what it really is.
The way Jeff Lindsay describes it in his first blog post about the next big thing is: “Web hooks are essentially user defined callbacks made with HTTP POST. To support web hooks, you allow the user to specify a URL where your application will post to and on what events. Now your application is pushing data out wherever your users want. It’s pretty much like re-routing STDOUT on the command line.”
So it’s made clear that it is a tool or process that empowers users to receive important data whenever something happens on the web service side. It means that no polling on status change and long waits on synchronous HTTP requests is required. Service will just use the URL that was provided by the user to notify and send along the appropriate data.
Technically to be able to provide webhooks to users is as simple as adding functionality to send certain data on certain events to a dynamic URL. However on user’s side there has to be an HTTP server that can receive the data to the provided URL endpoint. This webhooks functionality has helped to provide server to server communication in a lot of automation scenarios across many services.
Acceptance tests simulate real user actions and very often are done on real devices. These kind of automated tests run quite a long time. In some cases many hours, especially when acceptance stories have to be validated on multiple devices. But fast feedback from tests is very important in development process. To achieve that we need to decrease test execution time. But how? Good idea would be to run these tests simultaneously on all devices, right? But it’s not going to be so simple.
Calaba.sh acceptance test framework for iOS applications uses Apple “UI Automation” to launch and control these applications, but Apple has limited possibility to use multiple instances of “UI Automation” on the same Mac OS X operating system. For unknown reason Apple “UI Automation” instance uses predefined port which cannot be changed and more than one instance is not possible to launch on a single port.
Did you know that most mobile applications that we use daily have at least one security vulnerability that can be used to alter or even steal our private data? With the new EU General Data Protection Regulation looming just around the corner, situation is dead serious. That’s why our Senior Quality Assurance engineer Kristaps Felzenbergs chose the topic of Mobile Application Security for his presentation at the biggest software testing conference in Baltics – TAPOST 2017.