Openfoodnetwork: [Spike] Check which release tests are already automated

Created on 6 Aug 2019  ·  15Comments  ·  Source: openfoodfoundation/openfoodnetwork

Description

- As a: core team member
- I want to be able to do: gain efficiency and confidence on the release process so that I can focus my efforts on bringing more value to our users.

Acceptance Criteria

We need to get a list of the tests that are performed as a release testing (https://docs.google.com/document/d/15EdXKb4B3BS8gekD6_9PDdPTZsjUCAVS2011zRf55lM/edit#heading=h.alpdtdl2tc74) that are already included in our automated test suite and how well covered they are.

Then, we can decide which ones we stop testing manually.

spike

Most helpful comment

@lin-d-hop @daniellemoorhead @RachL I checked the checkboxes with the ones I think we're properly covered. I created the Release testing automation wiki page to report the findings and create the necessary issues later on. My goal is to evolve this page until it says. "100% automated, move on." :tada:

You'll see some items need clarification like the item "Complete your enterprise setting and check that both payment method and shipping method work for stripe and paypal".

All 15 comments

I was talking to @mkllnk about this last week. We thought we could make a list and then each release we do we check off one of them. If it's not automated, we add that to be automated. If it is then we wait till the next release to check the next one.

@mkllnk did I remember correctly?

Yep! But this issue is only about the list :) We would need separate issue for the automated tests.

yep, not jumping into implementations yet. But yes, that iterative process you mention seems really good @daniellemoorhead

I copy here the contents of the Testing Handbook v2 for reference

How to do a sanity check (release testing)?

First steps

  • [x] Check signing up for a customer or a producer: https://github.com/openfoodfoundation/openfoodnetwork/blob/master/spec/features/consumer/authentication_spec.rb#L47-L86
  • [ ] Check that the producer account is correctly displayed on the map
  • [ ] Complete your enterprise setting and check that both payment method and shipping method works for stripe and paypal
  • [x] Products : create, edit (add an image for example), duplicate (check that image is also duplicated), delete
  • [x] Can you create on OC? Does it show in front office? Can you duplicate / edit / delete it? If you delete products do they still appear in the shopfront?

Checkout

  • [x] Select an open shop and add item to the cart
  • [ ] Press continue
  • [ ] See your cart, but go back “continue shopping” in order to add another product
  • [ ] Press continue
  • [x] Delete one of the first product you’ve added on the cart and change the quantity on another one
  • [x] Proceed to checkout, and login
  • [ ] Select delivery and cash payment option (repeat for stripe, paypal and cash)
  • [x] Check you get a confirmation and a confirmation email
  • [x] Check your order is appearing correctly in /admin/orders
  • [ ] Order for producer: can you see it? Can you filter on the page? Can you ship it? Can you capture payments? Can you create an order as an admin?
  • [ ] Customers : add a customer and edit its credentials afterwards

Bulk Order Management

  • [x] Go to /admin/orders/bulk_management
  • [x] Are you able to change weight and was the order total recalculated accordingly?
  • [x] Are you able to change quantity and was the order total recalculated accordingly ?
  • [ ] Are you able to cancel an order
  • [x] Are you able to add columns?
  • [ ] Are you able to search for a product?
  • [x] Are you able to change the dates and see results accordingly?

Subscriptions

  • [x] Can enable from superadmin?
  • [x] Can create schedule?
  • [x] Can trigger subs?
  • [x] Get emails?
  • [x] Out of stock messaging works?
  • [x] Editing sub, pausing sub?

Inventory

  • [x] Override price
  • [x] Override stock levels
  • [ ] Check that override don't have an effect on the producer stock level
  • [x] Reset stock levels

Reports

  • [x] Orders and fulfillment reports
  • [ ] Packing reports
  • [ ] Customers
  • [x] Xero
  • [x] Sales tax

Minutes of the call we just had with @RachL about the Release testing handover:

In the discussion we did spot few issues that need to be tackled and discussed separately

  • Testing in iOS and Android devices
  • What browsers and versions do we actually support?
  • We need to ensure the mobile UI also works

having seen that, we agreed that our first focus is automating this release testing for desktop for now. This will already be a huge improvement.

Finally, we identified the need to investigate exploratory testing. As we transition towards not having any manual release testing, the always necessary bit of manual testing we'll not depend on releases anymore and we'll become something else. Also, POs will eventually test acceptance criteria manually to consider things done.

You remembered that correctly, @daniellemoorhead. This spike is going in the same direction. :-)

@lin-d-hop @daniellemoorhead @RachL I checked the checkboxes with the ones I think we're properly covered. I created the Release testing automation wiki page to report the findings and create the necessary issues later on. My goal is to evolve this page until it says. "100% automated, move on." :tada:

You'll see some items need clarification like the item "Complete your enterprise setting and check that both payment method and shipping method work for stripe and paypal".

I guess we can convert this to an epic that includes automating each of the tests?

I would do that in a separate issue as this is only for the spike and so we close this when done.

I'd like to add some smoke testing on Tagging. This is a powerful feature that we have let slide. Let's bring it back to a healthy state!

It is a pain to test manually, which is I think part of the problem. But automated testing will be a godsend!

I'll do some work on that when I have a moment to breathe :-)

More good things to have on this list:

  • VAT
  • Product Import
  • Invoicing
  • Order cycle notification emails to producers

Ok, so the spike is done. As mentioned above the outcome of my investigation is listed in https://github.com/openfoodfoundation/openfoodnetwork/wiki/Release-testing-automation. From that, in https://github.com/openfoodfoundation/openfoodnetwork/issues/4127#issuecomment-519114962 I checked each of the tests that IMO are not worth testing manually since they are properly covered by our automated test suite by the tests that interact with a browser (they live in https://github.com/openfoodfoundation/openfoodnetwork/tree/master/spec/features).

I haven't considered your suggestions yet @lin-d-hop . IMO these fall outside of this scope and deserve other issues.

I think the next step should be having a call and discuss whether we:

  • Stop doing release testing altogether
  • Only test the unchecked items above as part of the release testing

But also:

  • What we think the next steps should be

I summon you @RachL, tester master but perhaps @lin-d-hop or someone else would like to attend?

@RachL and I met yesterday and come up with a proposal for you all in https://community.openfoodnetwork.org/t/release-testing-next-steps/1741

For this last release I change the perimeter of the release test. If we all agree on this new perimeter maybe we can close this issue and start opening an epic with what we need to automate?

https://docs.google.com/document/d/1lsewB9hohQTsEDrSA2mF_f0Ni1eIH58dIdAFZcb58j4/edit#

OK as @sauloperez created #4333 let's keep on discussing there. I'm closing this issue 🎉

Was this page helpful?
0 / 5 - 0 ratings