Kirkaldy
For use in our agency's internal messaging client, I created a team assistant for the test team. I named it David Kirkaldy, after the Scottish engineer who founded Kirkaldy's Testing and Experimenting Works in Southwark, London.
Kirkaldy has had two implementations. The first one I did was a Slack bot, using Ruby and the slack-ruby-bot library.
The second one is a Microsoft Teams bot (though it could be integrated with Slack as well), using Node.js and Microsoft's botbuilder library.
I hosted Kirkaldy #1 on Heroku, and Kirkaldy #2 initially on Microsoft Azure (which I would use again for future botbuilder bots) and eventually on AWS EC2.
Commands are easy to implement, especially in the Ruby library for Slack. In botbuilder with Node.js I needed to learn how to use Promises to deal with asynchronous JavaScript.
To date I've implemented the following commands:
Information retrieval
- Explain concepts such as what an SPF record is
- Show which Virtual Machines contain the OS or browser requested
- Show step-by-step guide on how to remotely debug an iOS or Android device
- List alt attribute guidelines
- Show the combination of keys required to take a screenshot on a given device or OS
- Retrieve Fiddler filter files and instructions on how to load them into Fiddler
- Provide answers to commonly asked questions
- Show the matrix of supported environments
Test assistance
- Generate a placeholder image of a given height and given width (Implemented as a quick command, and as a multi-step conversation leading to a downloadable image.)
- Provide testing prompts (pick randomly from a list of testing ideas) specific to a digital deliverable
- For a given URI, parse the HTML and return results from automated checks general to HTML deliverables
Team management
- Show upcoming holidays for team members, as well as upcoming Bank Holidays
- For JIRA tasks currently in progress, return which developers and testers are working on what
Miscellaneous
- Show any tube lines with delays or outages plus a summary of the fault
- Responses to casual conversation markers
- Calculate walking time and distance between any two locations