Powering up testing – getting a grip on software projects

05.05.2017 testing , agile , continuous integration

"Long ago, testers were often considered killjoys that threw punches in the final stage of software projects. In the worst case, a project manager’s nightmare would arrive just a week before the deadline in a form of a shocking list of errors”, says Jukka Lappalainen with a slight grin. He is Etteplan's chief design engineer and has tested embedded software and systems since 2004.

Nowadays, software development relies on agile practices and methods, which avoid large debacles and promote teamwork. Testing is an inseparable part of the development process right from the definition phase. The tasks overlap and information moves smoothly within a modern design team. The tester is a team member and no longer considered a messenger of bad news.

“In defining requirements, testability has to be taken into account both in the software and in the planned product. It’s important to ensure that automatic testing can be carried out seamlessly as part of product development. An experienced tester can often predict right from the start where problems are to be expected”, Jukka Lappalainen points out.

“Well designed and implemented testing right from the beginning of a project supports developers in achieving high quality and enables measuring and monitoring quality throughout product development”, says Jukka.

Continuous integration (CI) is the practice of compiling, integrating, and testing the entire software in short cycles, whenever something has been changed or added. This means that software can be published very quickly at any point in time – at least in principle. The goal is to automate the software production process and testing as much as possible.

Powering up routines

Dozens of automation tools are available. One of them which Etteplan has found good is Jenkins.

The Jenkins system is a framework for automation of those stages of the software production process that don’t require human intervention. Jenkins is typically defined to fetch the newest versions of program code pieces from version control, to trigger assemblers, to report on errors and warnings, and to load the machine code program into the target system. Jenkins, together with its plugins analyzes, for example, whether the program code complies with agreed rules and reports any deviations. Reports improve readability and maintainability of the code. 

Many think that the testing itself consists of pushing buttons and entering commands and values.

“Human beings are indeed good at experimental testing. They are inventive. They connect things and notice more things than machines do. But most of us get tired of pushing buttons at the latest after ten rounds of testing”,  Jukka Lappalainen points out.

Most of the testing can fortunately be automated. For this, programs are set up that test programs. There are also many tools available for test automation.

Robot Framework, developed and popular in Finland, is a framework that Etteplan has noticed is well suited for test automation, in other words the implementation of the actual test cases.

Mass tests with Robot Framework 

Test definitions with Robot Framework consists of clear key words such as “open browser”, “start operation X with parameter Y”, or “was this successful?”. Anyone even without coding skills can understand these and can change the tests without writing a single line of code.

Libraries readily available for different purposes can be easily connected with Robot Framework, so there’s no need to reinvent the wheel. Suitable libraries are available for testing, for example, Web UIs, frameworks, and mobile apps. Even though these libraries provide large numbers of keywords, but it’s often necessary to create one’s own test libraries with Python, for example, for the device being tested when testing embedded systems. 

Machines and automated testing are at their best when dealing with large amounts of tests and many repetitions.

“It’s a good idea to develop tests and software hand in hand and one small step at a time. One small change or addition to the software, and then ensure with an automated test that everything still works. In other words, ensure there’s no regression. By eating the elephant one bite at a time, testing proactively, there’s not too much pressure when the deadline approaches. The project and the software stay under control. And the software becomes easier to maintain in the long run”, Jukka reminds.

Proactive testing ensures staying on schedule and a maintainable result.

“Even the most experienced designers have their blind spots. Our perspective tends to narrow when we get absorbed in a task. Another team member, especially a testing professional, brings new perspectives, which helps noticing errors as early as possible.”

“Especially in embedded systems, there aren’t always the necessary connectors for the software testing to be carried out in the device, for example a serial or a USB port. The Procket Rapid system registers accurately also the statuses and responses of selected measurement points of a circuit board. Originally developed for testing the production of electronics, Procket is also suited for testing hardware and embedded software during the design phase.

More information

Jukka Lappalainen, Chief Engineer, SW Test Engineering
+358 50 487 5477

Jukka’s mission is to improve quality and throughput in development projects by providing professional test design services.



Latest articles

  • Powering up testing – getting a grip on software projects 05.05.2017 testing , agile , continuous integration

    Well designed and correctly carried out testing and testing automation help to keep projects on schedule. The maintainability and control of the system are improved, and even the product's financial life cycle is extended. The engineers at Etteplan have had good experiences with the Jenkins and Robot Framework systems.

  • Case SKS – Wireless LoRa based sensor 31.03.2017 industrial internet , wireless , electronics , software

    SKS Automation needed a sensor suitable for industrial use that works wirelessly. The selected LoRa technology transmits measurement data wirelessly up to tens of kilometers, and it connects easily to Industrial Internet applications. ARM mbed technology significantly reduced the time needed to pull off the project.

  • Case Rivender - Stores without salesclerks 16.03.2017 industrial internet , electronics , software

    Grocery stores will make a comeback in suburbs and small towns if entrepreneurs warm to the unmanned store solution ModulShop of Rivender Ltd. The invention is predicted to become a huge success in Finland and European export markets. The solution is based on Finnish leading-edge know-how.

  • Yocto Project - Embedded systems easier and faster 16.12.2015 mikko elomaa , yocto , vesa norrbacka , linux

    Embedded Linux developers often have to create their own distribution to precisely define the contents of the operating system. Those who nowadays choose embedded Linux for a project have several alternatives, one of which is the Yocto Project. Yocto is not an embedded Linux distribution but a development environment with which one can quickly and easily create custom versions.

  • Accreditation for the EMC test lab 30.08.2016 espotel , laboratory

    The FINAS accreditation service has granted accreditation to the Jyväskylä testing laboratory of Espotel Oy, which is part of the Etteplan Group, in accordance with requirement SFS-EN ISO/IEC 17025:2005.

  • Choose Your IoT Platform With Care 30.05.2016 industrial internet , software , anssi rantamäki

    When creating an IoT (Internet of Things) system, you have to pay attention to many details. One is choice of the right IoT platform. There are many IoT platforms, and they’re difficult to compare.

  • Functional safety – case Labkotec 08.06.2016 industrial , industrial applications , electronics , software , safety critical , jarmo kangasaho

    The formation of ice on wind turbine blades can be a significant risk factor. Labkotec has provided ice formation monitoring systems for a long time already. The newest version was developed according to ISO 13849 for increased functional safety.

  • Product certification – case Asqella 17.12.2015 testing , laboratory , ismo kaastinen , product certification

    Nowadays more and more products contain electronics and maybe some kind of wireless technology. People do not always realize that all electronic device must be certified, in other words checked, tested, and approved, before the sales of the product can start.

  • DFT – Remember two things 15.02.2016 testing , test systems , consulting , production testing , electronics

    To make sure the required testing for your upcoming product is possible to do, and preferably even easy to do, you have to take the testing requirements into account when the product is being developed. This is called design for testability or design for testing (DFT).

  • Agile or not? 16.02.2016 programming , consulting , software , agile

    The concept of agile software development has been around for a long time already. It has similarities to lean manufacturing, the management philosophy started at Toyota.