location_city Melbourne schedule Sep 22nd 11:10 - 11:40 AM AEDT place Green Room people 59 Interested

The importance of good software testing in the larger software development world is taken as a given, yet in many IoT projects, software testing is done in an ad-hoc manner if it is done at all.

In this talk I will show how there are multiple techniques for software testing your IoT projects, when each of these techniques is appropriate, and hands on examples of how to use them. I will show how Test Driven Development can be used to improve the reliability, reproducibility and speed of development of your IoT projects.

 
 

Outline/Structure of the Talk

What is TDD, and why do we use it?

What is (and is not) a Unit Test, and why is that important.

What makes testing IoT hard?

  • Constrained target environment
  • Cross development
  • Limited test tooling

What techniques can be used to mitigate those limitations?

  • Native testing with test doubles
  • Emulators
  • Embedded tests

Learning Outcome

An appreciation for the value of testing in IoT development, and knowledge of practical tools for testing real world IoT projects.

Target Audience

Anyone developing software for IoT

Prerequisites for Attendees

Some knowledge of modern testing practices, TDD, and unit testing.

Experience developing software for IoT platforms.

Some familiarity with cross platform toolchains, and platform emulators.

Slides


Video


schedule Submitted 5 years ago

  • Larene Le Gassick
    keyboard_arrow_down

    Larene Le Gassick - Creating Inclusive Apps with React Native

    Larene Le Gassick
    Larene Le Gassick
    Inclusion Engineer
    larene.dev
    schedule 5 years ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    Creating inclusive and accessible apps is easy using React Native! Javascript developers can have a working app on their phone in less than an hour. Join me to see a working demo of how to plan, develop, and test for accessibility in the mobile space.

    I will also be talking about resources and guidelines you can use and share with your organisation to develop apps for everyone - including what the bare minimum looks like to help you prioritise your requirements!

  • Luke Sleeman
    keyboard_arrow_down

    Luke Sleeman / Marc Edwards - Build Better Android Apps with Vector Assets

    45 Mins
    Talk
    Intermediate

    There are many advantages to using vector-based assets in your Android apps — smaller binary size, faster loading, easier support for all pixel densities, dynamic drawing, and more ways to animate. Despite the upsides, SVGs and VectorDrawable assets are more complex to author and use.

    Luke and Marc explore everything needed to create, export, and implement SVGs and VectorDrawables on Android, including common issues and their remedies.

  • Nick Moore
    keyboard_arrow_down

    Nick Moore - Easy IoT with MicroPython on ESP SoCs

    Nick Moore
    Nick Moore
    Software Consultant
    Mnemote
    schedule 5 years ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    Implementing IoT projects doesn't have to be difficult, time consuming and expensive.

    MicroPython brings Python 3 to embedded platforms, and since Python is one of the easiest languages to learn, and there are WiFi SoCs available around $5, this is a great way to get started in IoT! We'll look at:

    • What is a System-on-a-Chip (SoC) with some specific examples based on the ESP8266 and ESP32 WiFi SoCs
    • Why Python? A quick look at C and IoT vulnerabilities
    • How to install MicroPython and communicate with the ESP SoC to write programs
    • What it is capable of and what things are being developed for it
    • How to contribute to the MicroPython project
  • Andrew Hatch
    keyboard_arrow_down

    Andrew Hatch / James Baker - How IoT Helped Seek Solve Load and Scale Issues (But not Quite the Issues you Think!)

    45 Mins
    Case Study
    Intermediate

    With a building bursting at the seams and a move to a new location some years away one of our Hackathon teams came up with an idea to improve the “facilities” for the building staff. Initially what started as a bit of a joke soon grew into a fully-fledged idea of building a comprehensive IoT solution that can constantly keep check of the usage state of the showers and toilets at Seek. Not just for morbid curiosity, but to help maintain better cleaning and hygiene of the facilities and also help people use them more effectively. The solution was met with great success and is in the process of becoming a permanent solution in the building.

    We will cover:

    • What IoT devices we found effective
    • How you can leverage the capabilities of AWS to rapidly stand up complex solutions without investments in Infrastructure
    • Which “areas” of Seek are more popular than others!
  • Cameron Barrie
    Cameron Barrie
    Founder & CEO
    Bilue Pty Ltd
    schedule 5 years ago
    Sold Out!
    50 Mins
    Talk
    Intermediate

    As the future approaches us more and more rapidly, we feel the impact of the choices we make today sooner and with more force. This talk offers practical advice on how to drive and deliver value to a business continuously by building systems that scale to the needs of a business working towards an unknown future.

  • Shipra Mahindra
    keyboard_arrow_down

    Shipra Mahindra / Jeames Bone - Internationalisation 101

    30 Mins
    Talk
    Intermediate

    Did you know that less than 30% of the internet population speaks English? And this percentage is slowly decreasing as cheaper smartphones become ubiquitous and new users from Brazil, Russia, India and China come online everyday. If you want to reach this global market, it is important to translate your mobile apps into your user's native language. This is why Canva decided to build a localised app from the get go.

    In this talk, we will present a quick introduction to internationalisation and the key things to consider when localising your mobile app. You will learn about the various tools available to enable translations at scale and how those integrate with your app. You will also get some hands-on, practical information about the unique development challenges presented by languages that have different pluralisation rules to English and languages that are written from right-to-left. We will show some examples of our internationalisation approach in our iOS app. Lastly, we will wrap up with how this fits into our Feature development and Release process. Expect lots of practical advice that will help you get started on localising your own mobile app.

  • Tim Sawtell
    keyboard_arrow_down

    Tim Sawtell / Damon Smith / Tyrone Trevorrow - Building React Web and React-Native Apps with Shared Code

    45 Mins
    Case Study
    Intermediate

    Diving into the feasibility of using a single code base for generating multiple front-end applications.

    We'll discuss using React and React-Native for building apps that provide a consistent experience across native, mobile and desktop web.

    Using React and React-Native as the UI layer upon a shared JavaScript core codebase can greatly improve your organisation's delivery of new features to customers.

    We'll talk about our migration strategy for the new apps replacing our existing apps, piece by piece. Not slowing down our continuous release of features to customers while replace the apps.

  • Sande Harsa
    keyboard_arrow_down

    Sande Harsa - The Common Ignorance of The Guidelines

    Sande Harsa
    Sande Harsa
    Mobile Developer
    REA Group
    schedule 5 years ago
    Sold Out!
    30 Mins
    Talk
    Intermediate

    When designing a mobile app, specifically on iOS, one must consider Apple’s Human Interface Guidelines. These are the set of guidelines that needs to be followed to create an app that is cohesive with the rest of the operating system. The chances are, most people in the industry are familiar with the guidelines. However, there are items that seem to be commonly ignored. The talk will go through few of those items and at the end discuss the technical impacts for not following the guidelines

    One of the items is the use of the launch screen. In many apps, the launch screen is used as a splash screen, with some variation of a logo and sometimes with fancy animations. However, the launch screen actually has a different purpose, which is to be a static state to provide a seamless transition between the launcher and the app. Thus, the launch screen should look like blank state of the first screen of the app. For example, look at the launch screens of Facebook and Twitter, in this case Facebook follows the guidelines.

    Following the design guidelines not only affects the user experience side of the app, it also has a technical impact. An example is using a hamburger menu. Developers tend to use a third party library, which reduces maintainability. Third party libraries are of course useful, but using them to purposely ignore the guidelines is questionable. Moreover, there is an accessibility impact of using non-native elements. Adding accessibility support manually to custom UI elements is another overhead to consider.

  • Barry Scott
    Barry Scott
    Chief Engineer
    Drawboard
    schedule 5 years ago
    Sold Out!
    30 Mins
    Case Study
    Intermediate

    Aeons ago, in the year 2000, Joel Spolsky proposed the Joel Test, a set of questions that he recommends all software development teams should be able to answer “yes” to, in order to help them build great software.

    This talk takes a look at these questions through technical, people, and process lenses, to see if they are still relevant in software development today. It investigates whether we should add any new questions, given the changes that have occurred in the industry in the last 17 years. And looks in to changes to these questions to make them more relevant for development of mobile products.

  • Andrew Kelly
    keyboard_arrow_down

    Andrew Kelly - ConstraintLayout - One Layout to Rule them All.

    30 Mins
    Demonstration
    Intermediate

    This session will give a practical demonstration of how to convert an existing deeply nested view hierarchy for a typical Android app into a more efficient (in terms of measure and layout performance) hierarchy using ConstraintLayout. I will also show how you can use the features of the ConstraintLayout library to create view hierarchies that enable rich animations with little effort.

  • 45 Mins
    Talk
    Advanced

    Automated Acceptance Testing is one of the essential ingredients of a healthy agile software practice. Unfortunately, attempts to adopt this on mobile usually result in the creation of slow, brittle and highly complex UI tests - where did we go wrong?

    This approach is a far cry from the original idea of acceptance testing and does little to improve the reputation of mobile development. Automation is meant to bring confidence – but used in this way, it creates more problems than it solves. This leaves development teams and businesses left on a seemingly never ending quest for the next thing - usually in the guise of a new framework promising to be better than the last e.g. KIF, Calabash, Appium etc.

  • Mitchell Tilbrook
    keyboard_arrow_down

    Mitchell Tilbrook - React Native Better Than Native

    45 Mins
    Talk
    Intermediate

    React Native allows developers to create native cross-platform using JavaScript, or really anything that will compile to JS C#, TypeScript, or even F#. But why would you use React Native? How run-time typed language like JavaScript be a better choice for developing apps than say, Swift, Java, Kotlin, C# ( Xamarin ) or C++ all compile time static type checked languages. Firstly is just that, there is no need for a compile step, React Native can update the JS without having to reload compile and replace the previous application. Compiling an app everytime can take a long time for a small project this might be 1-5min, but larger apps can easily take as long as 45 minutes or more to build a single app.

    In this talk, we will explore how features like hot code reloading allow for much faster edit and run cycles, how you can use tools like Flow or TypeScript to add type safety without incurring the long compile times found in more native methods. To Prove the how simple and fast React Native is to builds apps we will create a simple app live on stage. To top it all off, you can even embed React into existing Native Apps, avoiding the need for total rewrite.

help