Test-driven Development of an Alexa Skill with Node.js
This is the third part in a series of blog posts in which we will describe the process of developing an Amazon Alexa Skill while focusing on using new technologies like serverless computing and enforcing the use of clean code conventions. We decided for our project to use continuous integration and delivery. For that to work as it should and to prevent unnecessary bugs from being discovered by the user, we relied on test-driven development for our code.
In the the course Software Engineering and Management and Interactive Media at Stuttgart Media University, we launched an interactive web application called Emoji College.
The following blog entry is a brief description of what is going on in this project. The main focus relies on the implementation of a continuous integration pipeline with TravisCI and hosting with AWS. As newcomers in dealing with AWS services it was not easy for us to get started. We have had to try a lot and have paid too much money for the services. Therefore it is our mission to explain the most important steps during the setup of AWS services easily and mention all the lessons learned. So far, there is no easy and understandable guide as we needed it.
Decisions, Developed Modules and Implementation
If you missed the first part you can catch up by reading it here.
In the second part of our blog post series, we first describe what decisions were made in the course of the development process, then we show which code we actually had to develop on ourselves and finally we give an overview on how we implemented the skill.
So let’s get started with how we ended up from the inital idea of developing a chatbot to the development of an Alexa Skill.
Introduction to the Project
It is becoming obvious that chatbots are quickly emerging to the next Big Thing. This is especially evident by the recent flood of publication of software development kits by major tech companies to encourage developers to build applications for their ecosystem.