Identifying a project exercises: Class notes

Today in class we talked about assignment 3. I went and had a chat with Clare about my project proposal and how it can be integrated into assignment 3. I learned that I should hopefully get feedback to my project proposal by the end of this week.

Clare recommended for the rest of the class to go through and define what they found interesting in IT, we did this through a warmup exercise, answering these sentences:

The IT area/subject I have most enjoyed is learning about systems analysis and design, in particular the new development methodologies that can be utilized instead of SSADM and OOSAD.

The IT area/subject I least enjoyed is networking as I find it very frustrating.

The IT area/subject I was most interested in is systems analysis and design methodology.

The one IT thing I never want to do again is developing 2D game in the Unity game engine. (stay away)

I choose to study IT because I can help develop tools to be used by millions of people around the world and make a real difference. 

If I couldn’t study IT I would study zoology or archaeology because I have always had a fascination for animals and history.

When I was a kid I wanted to be zoologist and was planning to study a Bachelor of Science at Canterbury University for this purpose.

One IT thing I would like to learn more about is machine learning and neural networks in Artificial Intelligence (A.I.).

We did this exercise to identify what we are interested in that can be integrated into our project making it more interesting and engaging.

Then we went through an exercise taking the subject we identified that we were interested in during the warmup exercise and then expanded about it:

  1.  Broad Research/Project Interest Area

Description of area of IT that interests you

Automated testing tools automate functionality and regression testing. Regression testing is particularly useful for established software development projects where developers are submitting patches which alter the existing behaviour or fix an existing bug, but it can also be used for functionality testing for feature enhancements.

Why is it interesting to you

For the Koha product that I work on there are more contributing developers than testers, what this means is the whole bug workflow is slowed down with developers writing patches and no-one signing them off, at present there are 158 patches requiring signoffs.

The longer a patch is left waiting for testing and signoff the more likely it is to become out of date as the master branch has changed so much and so when a tester finally tries testing the patch it will not apply successfully because the project has moved on so much.

Automated testing tools would reduce the bug list requiring signoffs by automating one third of the process (the functionality testing), whilst the code review, and running the qa test over the code would still have to be performed by the tester.

Three things you know about it

  • Automated testing tools are mainly used for regression and functionality testing, meaning it can automate functionality testing plans but it cannot check if patch meets coding guidelines
  • Many automated testing tools can run on test plans by people that do not have coding experience, the test plans that the tools follow are based on simple english.
  • I know how to write functional test plans for human testers
  • ‘Robot’ is a recommended automated testing tool because it allows you to not only perform functionality testing but it can also compare screenshots of U.I.’s to check design changes.

Three things you believe about it

  • Selenium isn’t stable and it often breaks during a regression test
  • Automated testing tools are hard to maintain

Three things you don’t know about it

  • What automated testing tool is most appropriate to the Koha product
  • How the automated testing tool knows what the previous behaviour before a patch was applied was, i.e. do you have to run it firstly over the master branch and then run it following through a simple english test plan with the patch applied, or if you have to write the current behaviour in the test plan in addition to the new behaviour
  • How much faster automated testing tools are in the Koha project by the time a simple english test plan has been written than having a tester following a test plan manually

Would you rather: Do something, Research it or Do both

I would like to do research and do something. Specifically I would like to investigate what automated testing tools are available and what their pros and cons are, and then I would like to perform primary research on the identified automated testing tools by seeing how effective and reliable they are in automating the testing according to the test plans

Find an online resource about it – (post url)

Identify a potential project

Construct 10 (interesting!) questions about your topic

  1. What automated testing tools are available for free, preferably open source?
  2. What are the perceived benefits and downsides to these free automated testing tools according to other developers?
  3. What is the perception towards the adoption of automated testing tools from the Koha community?
  4. What automated testing tools are the easiest for non-developers to learn and use? as some of the Koha testers are librarians who do not know how to code
  5. Would the adoption of automated testing tools speed up the Koha bug workflow?
  6. What is the most suitable automated testing tool for Koha?
  7. Are there automated testing tools that test if patches meet the project’s coding guidelines, i.e. not just testing functionality?