# MPHY0021 - Day 5 (4th November 2021) :::info ## :tada: Welcome to the fifth day! Testing code with :snake: ### Today Today we will look at writing automated tests in Python. - Testing edge cases - Testing that that it errors when it should fail - Automating tests - Avoid code repetition in your tests ::: ### :stopwatch: Time keeper - [name=Siyi] :raised_hand: 5' before the end. - 10:00 - 10:50 - 11:05 - 11:55 - 12:05 - 12:55 ### Review from last week - :1234: Data and Python :snake: (csv, json, yaml) - :chart_with_upwards_trend: a bit about graphs #### What was discussed during the week :newspaper: - Sample solution for plotting exercise published - Practical homework done by at least 18 people (count this morning) - Assignment has been released, deadline: 23rd Nov - join via GitHub Classroom, submit on Moodle ### Groups :handshake: We will be using the breaking rooms functionality of Zoom. We have the following groups, and each group have its own document. Each week you will be in a randomly allocated group. Once in your breakout-room, find who is chairing that room and open the document linked to that group. :::danger Remember to `rename` yourself by clicking on your zoom name (in the participants list) and change it to: `SGX - Your name` being `X` the number of the group you have been assigned to. If you disconnect and connect again, please rename yourself again. ::: - [Group 1 (Alessandro)](https://hackmd.io/@UCL-MPHY0021-21-22/H1OzkCkPK) - [Group 2 (Nina)](https://hackmd.io/@UCL-MPHY0021-21-22/BkbxlAkDY): - [Group 3 (Nisha)](https://hackmd.io/@UCL-MPHY0021-21-22/rJz4lAyDY): - [Group 4 (Matt)](https://hackmd.io/@UCL-MPHY0021-21-22/SkgoxC1DF) - [Group 5 (Matthew)](https://hackmd.io/@UCL-MPHY0021-21-22/BJVTlCyDY): - [Group 6 (Stef)](https://hackmd.io/@UCL-MPHY0021-21-22/rJrgW0yDY): - [Group 7 (David)](https://hackmd.io/@UCL-MPHY0021-21-22/BJOMZRJwY): ### Discussion of preparation work - testing terminology - on [Mentimeter](https://www.menti.com/9fi8o1xcxa). - homework consisted of writing a unit test for `times.py` - what else should be tested about `times.py` ([questionnaire](https://moodle.ucl.ac.uk/mod/questionnaire/view.php?id=2483635)) ### Exercise: Write more tests :::info For this exercise, we will continue working with the `times.py` that was part of the class preparation. In smaller groups, share a screen and discuss how to write the tests required. Then work collaboratively on the exercise. rse-classwork repo: [:hash::one::seven:](https://github.com/UCL-MPHY0021-21-22/RSE-Classwork/issues/17) :::spoiler call a helper to your room If you need help, you can ask for us to drop in click "Ask for Help" :grey_question: button in the meeting controls. If you don't find it, [watch this video showing where it is](https://www.youtube.com/watch?v=yIOMPRLQIHA). ::: ### Discussion: On Mentimeter. Ask about things you were unsure of, and point out anything you found interesting or unexpected. ### Time for a short-movie :film_projector: What can happen when tests are lacking? ### Exercise: Write a negative test :::info Let's keep checking the robustness of this code! In smaller groups, share a screen, discuss how to write the required test, and work collaboratively on the exercise. rse-classwork repo: [:hash::one::eight:](https://github.com/UCL-MPHY0021-21-22/RSE-Classwork/issues/18) :::spoiler call a helper to your room If you need help, you can ask for us to drop in click "Ask for Help" :grey_question: button in the meeting controls. If you don't find it, [watch this video showing where it is](https://www.youtube.com/watch?v=yIOMPRLQIHA). ::: ### Discussion of the exercise On [Mentimeter](https://www.menti.com/9fi8o1xcxa). Ask about things you were unsure of, and point out anything you found interesting or unexpected. ### Exercise: :construction_worker: Running the tests automatically :::info Easy check that new contributions don't break stuff. In smaller groups, share a screen and work collaboratively on the exercise. rse-classwork repo: [:hash::one::nine:](https://github.com/UCL-MPHY0021-21-22/RSE-Classwork/issues/19) :::spoiler call a helper to your room If you need help, you can ask for us to drop in click "Ask for Help" :grey_question: button in the meeting controls. If you don't find it, [watch this video showing where it is](https://www.youtube.com/watch?v=yIOMPRLQIHA). ::: ### Discussion of the exercise On [Mentimeter](https://www.menti.com/9fi8o1xcxa). Ask about things you were unsure of, and point out anything you found interesting or unexpected. ### Exercise: :sunny: DRYing the tests :::info Let's make these tests easier to manage! In smaller groups, share a screen, discuss how to write the required test, and work collaboratively on the exercise. rse-classwork repo: [:hash::two::one:](https://github.com/UCL-MPHY0021-21-22/RSE-Classwork/issues/21) :::spoiler call a helper to your room If you need help, you can ask for us to drop in click "Ask for Help" :grey_question: button in the meeting controls. If you don't find it, [watch this video showing where it is](https://www.youtube.com/watch?v=yIOMPRLQIHA). ::: ### Discussion of the exercise On [Mentimeter](https://www.menti.com/9fi8o1xcxa). Ask about things you were unsure of, and point out anything you found interesting or unexpected. ### Feedback Please, fill the [mid-course feedback questionnaire](https://moodle.ucl.ac.uk/mod/questionnaire/view.php?id=2502087). ### Next... & Homework - Remaining exercises from week 5 - Preparation for week 6 - Next week we will send information about Submitty (10 attempts before 22nd 00:00) - Remember to tell [us what's your github username](https://moodle.ucl.ac.uk/mod/questionnaire/view.php?id=2501711) and [your preferred office hours](https://moodle.ucl.ac.uk/mod/questionnaire/view.php?id=2379290) # Questions :::info Feel free to add any question below. Remember the syntax: ``` - Example question - [name=student_a] Example answer - [name=TA_1] Example answer ``` ::: - . - [name=...] - . - [name=...] - . - [name=...] ###### tags: `mphy0021` `teaching` `class`