oppia / oppia

A free, online learning platform to make quality education accessible for all.
https://www.oppia.org
Apache License 2.0
5.64k stars 3.79k forks source link

Acceptance Testing - covering all the Creator's and Contributor's CUJs. #17712

Open Shivkant-Chauhan opened 1 year ago

Shivkant-Chauhan commented 1 year ago

Describe the bug

In order to verify that key user journeys do not break, the Oppia development team is implementing Acceptance Testing for the develop branch. This means that, on every commit, all key requirements are verified through a set of acceptance tests that check that each type of end user can do the things they expect to do on the site.

The aim of this issue is to build up a set of such tests for all the CUJs that creators and contributors experience on Oppia. Please see the instructions below for how to claim a task in this issue. (Feel free to contact @oppia/acceptance-test-reviewers if you have any doubts!)

# Instructions

  1. Carefully read the “How to write Acceptance Tests” wiki page.
  2. Select 1 or more “package” (of 1-2 user stories each) from the list below, and get yourself assigned to them from @oppia/acceptance-test-reviewers
  3. After the user stories are assigned to you, go to the user file for the tests inside core/tests/puppeteer-acceptance-tests/spec/<user-type>tests.spec.js
  4. Start writing the assigned user stories based on the Testing Spreadsheet. Each user story in the spreadsheet should be covered within 1 it block, and all the test steps and expectations should match the expected behavior. You might also need to write utility functions, similar to the existing examples below.
  5. After you have written the tests, make sure they run fine on your local machine before submitting your PR. If this is your first time writing acceptance tests, we suggest writing the tests for one user story and verifying that it runs fine before adding the rest of the tests to your PR.
  6. In case of any confusion or for PR reviews, feel free to ask @oppia/acceptance-test-reviewers
  7. After getting assigned to a package(containing 2-3 user stories), your inactivity/no communication for more than 7 days may lead to getting unassigned from the task assigned.

For reference: You can see an example set of acceptance tests for “blog admin”/”blog editor” here. Please follow a similar format and file naming convention for the tests that you write:

List of user stories (arranged by user type)

(serial numbers same as testing spreadsheet row number for each user type)

Blog Editor

2.1 Users can create and delete draft blog posts 2.2 Users unable to publish an empty blog-post, can publish a blog post (upload thumbnail image, add tags, add title and body) and delete that published blog post from the Published Tab.

Exploration Creator

Voiceovers

Contributor Dashboard

seanlip commented 3 months ago

@Akhilesh-max Please create a draft PR showing a part of the user journey. If it looks good, we can assign you so that you can complete the rest of it. Thanks!

rahat2134 commented 3 months ago

@seanlip I am also working on 9 and 10th user journey , will update you with a draft PR once completed.

rahat2134 commented 3 months ago

@seanlip please assign me the 9th and 10th user journeys in the Exploration Creator section. I just need to make some minor changes in the PR, otherwise it's almost complete. Some flakes need to be addressed. I have raised a PR #19780 . (You can start reviewing it if possible.)

rahat2134 commented 3 months ago

@seanlip till PR #19780 for user journey 9 and 10 is getting reviews from reviewers, can you assign me user journey 7 and 8 in exploration creator. Will try to do that asap .(Started working on this).

Akhilesh-max commented 3 months ago

@seanlip, I’ve initiated the PR draft for the following CUJs:

5- Users have the ability to view history in the exploration editor, inspect the latest version with its notes, user, and date, and compare any two versions. 6- Users can preview the exploration and initiate the questions from the start.

While the work is almost complete, it’s occasionally failing or, to be precise, it’s a bit flaky. However, I anticipate that these issues will be resolved in the next couple of days. I would appreciate your initial round of reviews. (please assign me as well)

Thanks.

rahat2134 commented 3 months ago

@seanlip till PR #19780 for user journey 9 and 10 is getting reviews from reviewers, can you assign me user journey 7 and 8 in exploration creator. Will try to do that asap .(Started working on this).

although i can do it and i had started doing this but since there are already 2 pr opened for exploration-editor, it will be quite difficult to manage merge conflict and complexities. Hence what I think I should do **3- As a learner I should be able to play an embedded lesson** until those 2 pr get merged. Thank You. @seanlip what you think? Although you can assign me both, the above-mentioned one will be done as soon as possible, and the exploration-editor one will be done afterwards.

seanlip commented 3 months ago

@rahat2134 Please take just one acceptance test issue at a time. Merge it before taking the next one. It is important to ensure you can do quality PRs, more is not necessarily better.

@Akhilesh-max I've assigned you. I am not sure I have time to review but perhaps you can get some feedback from @oppia/acceptance-test-reviewers.

jnvtnguyen commented 3 months ago

@seanlip Can I pick up one (have no preference)

seanlip commented 3 months ago

@jnvtnguyen Added you to the first exploration editor one. Thanks!

jnvtnguyen commented 3 months ago

@seanlip BTW doesn't this overlap with other PRs (exploration editor utils, etc.)

seanlip commented 3 months ago

@jnvtnguyen It might -- sorry, I haven't looked in detail, just added you to the first one on the list. Perhaps pick one that doesn't?

jnvtnguyen commented 3 months ago

Topic manager 3 4 is fine then.

seanlip commented 3 months ago

Thanks! Updated.

Just as a note: might be worth seeing the current ongoing review on https://github.com/oppia/oppia/pull/19780 to get a sense of coding conventions.

jnvtnguyen commented 3 months ago

@seanlip As clarification when the story says to login as an admin account and create topics should the admin be created through the existing superAdmin and assigned a role of curric admin or a new utils file?

seanlip commented 3 months ago

@jnvtnguyen I don't understand your question, sorry. Could you please elaborate?

jnvtnguyen commented 3 months ago

Ah sorry, right now each user represents a "role" but inside the google sheets it asks to create a super admin user and create topics (which here I suppose means to create a curriculum admin, which I did). Also is @agallop currently working on the curriculum admin because topic manager has overlaps with curriculum admin like I said since you need a curriculum admin to setup for the topic manager.

seanlip commented 2 months ago

@jnvtnguyen I think curriculum admin is the right thing to do, thanks.

And I'm not sure @agallop is actually working on curriculum admin -- I'll deassign him. Given this, do you want to work on topic manager or curriculum admin, @jnvtnguyen?

jnvtnguyen commented 2 months ago

@seanlip You can unassign me, I will try to work on #18268 and #17416 first.

Vir-8 commented 2 months ago

Hey @seanlip, can I pick one up if possible?

seanlip commented 2 months ago

@Vir-8 Sure. Which one do you want?

Vir-8 commented 2 months ago

@seanlip Any works. I am new to acceptance testing so apologies - I'm not sure, but preferably something not too complex for starting out

seanlip commented 2 months ago

@Vir-8 OK, thanks, I gave you one of the curriculum admin ones.

AFZL210 commented 2 months ago

@seanlip I would like to give this a try. Can you assign me the classroom creation part of the curriculum admin?

seanlip commented 2 months ago

@AFZL210 Done, thanks.

hrshkshri commented 2 months ago

Hey @seanlip Can I get assigned to one, maybe an easy one first : )

seanlip commented 2 months ago

@hrshkshri Feel free to pick one that you like and self-assign, thanks.

AFZL210 commented 2 months ago

@seanlip just a question. In the setup section of the testing spreadsheet for curriculum admin (classroom journey), it's creating a new topic manually.

And for that, we already have a separate journey, so should I just use the admin panel function to create a topic?

seanlip commented 2 months ago

@AFZL210 No, admin Activities panel is not functional in prod mode. Try to reuse functionality from that other journey for now.

AFZL210 commented 2 months ago

@AFZL210 No, admin Activities panel is not functional in prod mode. Try to reuse functionality from that other journey for now.

Ok, I guess the classroom journey should be implemented when this PR is merged, as there are many overlapping functions.

AFZL210 commented 2 months ago

@seanlip as Vir is working on the curriculum PR, which I guess will take some time, in the meantime, can I work on logged-in learner cases 3 & 4?

seanlip commented 2 months ago

@AFZL210 Yup, sure thing, I switched your assignment, thanks for the ping.

rahat2134 commented 2 months ago

@seanlip If it seems appropriate, please update the issue description with the new CUJs that have been added to the spreadsheet. For eg. -> CUJ 11,12,13 in exploration creator.

seanlip commented 2 months ago

@rahat2134 Done, thanks. Please let me know if there are any more gaps.

rahat2134 commented 2 months ago

@seanlip Practice Question Reviewer has been implemented. Please mark it as done. Also, there is 3rd CUJ in Practice Question Reviewer and others also -> User can see stats, badges and generate a certificate based on stats which is not mentioned here.

Also, is each CUJ of blog editor implemented, as no checkbox for blog editor here?

pritam2317 commented 3 weeks ago

Hi @seanlip can you assign me to the curiculum admin (2) ?

Nik-09 commented 3 weeks ago

Hi @seanlip can you assign me to the curiculum admin (2) ?

Done

Akhilesh-max commented 3 days ago

The list of journeys mentioned above is not exhaustive. I will continue adding the creator’s and contributor’s CUJs that need to be documented. @rahat2134, would you like to help me with this? Perhaps you would be having a list of creator’s and contributor’s CUJs?