Research Session – JS UT Experimentation

Recommend starting with Chai.js + Mocha, and Sinon.js for mocking when necessary. 

A lot of the test libraries available are similar, so it is hard to go wrong. Chai.js appears to be commonly used and also integrated into larger frameworks. Since Chai is just a test authoring library, there is still need for a tool to execute the tests. For current needs, Mocha has good support and a lot of reporting output options. At this point, the added benefits provided by theintern.io do not add immediate value for me, but transitioning to it from Mocha should not be difficult.

Further analysis plans

  • Look into Test Runner outputs and how they might integrate into JUnit reports

Simplistic examples created during experimentation can be found on Github here.

Session notes below the fold…

Continue reading Research Session – JS UT Experimentation

Research Session – Javascript Unit Testing

Report Summary:

  • Much like the rest of the Javascript ecosystem, there are a lot of options for any given problem and not a lot of community consensus
  • There are two aspects of JS testing needing to be addressed: tools to test (libraries) and tools to report results (test runners)
  • When selecting libraries, there are two style choices: TDD (Test Driven Development) vs. BDD (Behaviour Driven Development)
    Historically, our company has been more comfortable with TDD
  • Chai.js is a TDD library that looks like a good place to begin learning and experimenting with test authoring
  • Still not sure of pros/cons between test runners
  • Further analysis plans

Session notes below the fold…

Continue reading Research Session – Javascript Unit Testing

Test Sessions – Research Sessions

My responsibilities include researching and investigating tools to help others test software. I was recently asked to investigate options for helping developers author Unit Tests for Javascript applications.

While thinking about performing the investigation, it came to me that I was testing something: a domain of knowledge. And what is a good tool to record such testing? Test Sessions!

So, I am experimenting with this idea. I gave thought to my mission, wrote up an initial charter of exploration ideas, and have begun recording my path through the internet and contacts to learn more on Javascript unit testing.  Once I wrap it up, I will likely have more charters to explore and can try my hand at my first test report to hand back to the person requesting this information 🙂

CAST 2014

On my first day in my new job, my boss threw out a challenge to me: submit a proposal to CAST for a conference talk I could give. The submission due date was is 42 hours…

CAST  is the annual Conference for the Association of Software Testing. It does not align with my typical impression of conferences: payed for by industry corporations, presenters with hidden agendas to line their pockets, and a general feeling of a shark-tank with chum. Instead, to me it sounds more like a University type of conference: sessions meant for discussion and growth for both the attendees and the presenter, and not linked directly to profits.

So, back to my challenge. I succeeded at selecting a topic of interest to me and outlining enough information that I believe I could grow it into a 40 minute presentation. I wrote up a proposal and emailed it into the cyber-nether.

My letter made it to Bernie Berger & Paul Holland, the co-chairs of the conference. And most surprising to me, I have been selected to present this August in New York City!

It is a big responsibility, and definitely an honour to have been selected. I have a lot of work ahead for creating an engaging and educational presentation that is worthy of the time of my peers.

It will a first for me in many regards: trip to NY, attending a conference in my profession, presenting to a crowd outside of my employer, planning and booking travel to the United States of America, preparing myself for my first encounter with the TSA scanners… 🙂

Wish me luck !

Virtual and Physical

It is time to start learning about virtual machines. Microsoft is kindly offering up free VMs to do browser testing. I find this exciting. Where I work we often have physical machines to host different Operating Systems, to accommodate different versions of our software. At least now from a testing perspective, in regard to client-side investigation, no one needs to pay Microsoft license fees just to see how a webpage renders in Internet Explorer.

This got me thinking that it would be equally beneficial to have VM Templates setup for the server side. With supporting more than one version of our product, it is often time consuming to setup a working server environment just for play.

I am hoping to learn enough to achieve virtualization of the server side for ‘already released’ editions of our software. Then I can turn my eye towards getting VMs auto-created as part of continuous integrations..!

Week 4 – Informed Failure

I worked on a new tool for Selenium JUnit testing: video recording of test execution. There are some good articles on how to utilize Monte Media Library for Java to add recording to your code. However, I did not see anything that took advantage of JUnit 4 functionality, such as Rules. Therefore, I have married the two together into a custom rule that lets you specify on which TestResult conditions to record a video: Success, Failure, or Error.

The goal of this tool is to make it faster to diagnose why a check has failed. The sooner information is provided to a stakeholder, the greater the value. I am guessing that check failure is either an indication of broken value in the product, or broken checking. Having videos to compare against a known working state will be handy.

I imagine this may be useful for other Selenium users, so here is the gist:

Thanks goes to Monte Media Library  and Road to Automation for the tools to solve my problem.

Week 3 – … Gathers No Moss

This week the team said farewell to a valuable teacher: Paul Holland. He had joined us for a fixed duration to learn who we are, share his observations and teach his knowledge. I am glad to have met him, and hope to continue to learn from not just his experiences but those of his fellow Context-Driven Testers.

In other news… the automation stone is rolling downhill gathering speed. We have offered to train others in using Selenium to author automated Web scripts. After talking to fellow members of the department, we have thirty interested individuals (including some managers)!

We’re going about the training in a new way for us, as a conversation and improv demo. Most meetings would have been a room of 30 people staring at a power point presentation for an hour. Instead we will host a group of five at a time and ask them what they already know, what they want to know, and show them how we might solve a similar situation using Selenium. I think it will be fun even though the first one will be uncomfortable as it is a new experience 🙂

Late in the week, my partner in automation research and I were inspired: why not use d3.js to render information about Domain Model of a product? For JUnit functional checks, we could surface the results by Entity of a product to help owners prioritize deeper analysis. This tool is going well, and hopefully this month we can share it with the community 😛

 

Exciting times.