7. Testing, Debugging, Exceptions, and Assertions

Поділитися
Вставка
  • Опубліковано 21 вер 2024
  • MIT 6.0001 Introduction to Computer Science and Programming in Python, Fall 2016
    View the complete course: ocw.mit.edu/6-0...
    Instructor: Dr. Ana Bell
    In this lecture, Dr. Bell discusses testing, debugging, and exceptions and assertion statements in Python.
    License: Creative Commons BY-NC-SA
    More information at ocw.mit.edu/terms
    More courses at ocw.mit.edu

КОМЕНТАРІ • 100

  • @leixun
    @leixun 4 роки тому +111

    *My takeaways:*
    1. Defensive programming: testing/validation and debugging 4:20
    2. Three classes of test: unit testing, regression testing and integration testing 6:25
    3. Testing approaches: natural boundaries for numbers, random testing, black box testing and glass box testing 7:45
    4. Black box testing is based on specification, an example 9:05
    5. Glass box testing tries to test every single path of the code 10:20
    6. Using the print statement to debug 15:17
    7. General debugging steps 17:20
    8. How to debug logic errors 18:42, try rubber ducky debugging
    9. Do and Don't 20:00
    10. Exceptions 21:40
    11. Assertions 37:45

  • @denisecarillo2586
    @denisecarillo2586 5 років тому +133

    She's really easy to learn from. Thank you for teaching and positing this online without charge

    • @willcheung7041
      @willcheung7041 4 роки тому +10

      and she is hot

    • @jcavs9847
      @jcavs9847 3 роки тому +6

      @@willcheung7041 feels weird man

    • @88Oleksiy
      @88Oleksiy 3 роки тому +13

      @@willcheung7041 very inappropriate

    • @EZ-hc5sh
      @EZ-hc5sh 3 роки тому

      Don’t care. Before I go, why did you volunteer that info? Unless she requested said statement be relayed, who youis, P? Either way, is a quick way to farm out, there..uum, P. Or p, really, cuz u ain’t proper- or correct. correctional yes, attitude-oh yard time gotta go fill my cup one drop at a time

  • @Saganist420
    @Saganist420 7 років тому +172

    "Decide it's high protein and declare it a feature".
    That's hilarious. ahahah

    • @yukeyang5735
      @yukeyang5735 6 років тому

      I guess the soup would be tasty.That guy is funny.Haha.

    • @serkansenturk6945
      @serkansenturk6945 4 роки тому +1

      The Elder Scrolls V: Skyrim likes this

    • @juanperezmondragon1676
      @juanperezmondragon1676 4 роки тому +9

      that's actually what we do in mexico, grasshoppers are a traditional snack in some parts of the country, cus in the prehispanic times the solution to famines due to plagues was eating the insect that caused them.

  • @mohammadsamir2713
    @mohammadsamir2713 5 років тому +14

    although i am not a native or the best in english , i can hear every word and understand her
    i want to thank you a lot Dr. Ana

  • @dhruv_aditya
    @dhruv_aditya 3 роки тому +4

    Dr. Anna Bell is a great instructor, Thank you MIT OCW for making this high quality content online absolutely for free.

  • @rooneymara8061
    @rooneymara8061 6 років тому +49

    Amazing how she gets better as the lectures go on

    • @JamBear
      @JamBear 3 роки тому +2

      Just like coding

  • @鄭心和
    @鄭心和 3 роки тому +10

    pre labeling
    ​​0:01:02 We aim for high quality - an analogy with soup 0:02:00​
    0:03:46 Programming so far
    0:06:48 Classes of test
    0:08:02 Testing approaches
    0:10:00 Glass box testing ​0:11:02 ​0:11:48 ​0:14:00​ 0:16:00
    0:17:26 Debugging steps 0:19:33
    0:20:05 Don't and Do
    0:22:16 Other types of exception 0:24:08 ​
    0:25:41 Handling specific exception
    0:27:09​ Other exception
    0:28:15 What to do with exception
    0:31:15 ​Example : Raising an exception 0:32:00 0:33:52 ​
    0:35:31 ​Option 1
    0:37:01​ Option 2
    0:38:38 Example
    0:40:48 Where to use assertion

  • @DistortedV12
    @DistortedV12 3 роки тому +2

    Where was this video when I started learning programming, would've saved me a lot of time

  • @nancylu4049
    @nancylu4049 3 роки тому +4

    Dr. Ana Bell is a great instructor!

  • @jesuelmarques2241
    @jesuelmarques2241 Рік тому +2

    At 26:42 she says that she couldn't think of an error that would be raised besides these two. I thought of one: if a/b is too large, Python won't be able to represent it as a float and would raise an OverflowError

  • @IACOIACOIACO
    @IACOIACOIACO 2 роки тому +2

    this lecture was a godsend, feeling a lot more eager and motivated to learn programming, especially when there are tools at your disposal when shit hits the fan !!

  • @Lexaire
    @Lexaire 4 роки тому +5

    26:35 for the last case, it will raise an Exception on interrupts like KeyboardInterrupt when you press CTRL+C. Programmers should be careful having broad except cases. If you had an infinite loop that caught all exceptions it would be hard to kill the program.

  • @alexandrugheorghe5610
    @alexandrugheorghe5610 Рік тому +1

    26:43 one more exception can be KeyboardInterrupt

  • @davidorsa4406
    @davidorsa4406 5 років тому +2

    Dr.Hanna, you are awesome instructor and you made learning fun. Thank you very much!!!!

  • @TheMinaProject
    @TheMinaProject 2 роки тому

    Watched so many videos but only Dr Ana Bell's one stuck! Thank you!

  • @jiakai7254
    @jiakai7254 Рік тому

    perhaps the most valuable lecture in this series

  • @nephetssnephetss1508
    @nephetssnephetss1508 Рік тому

    Dr. Anna Bell. This is great.

  • @PradeepKumar-gq8ej
    @PradeepKumar-gq8ej 4 роки тому +2

    Love this session, fund very easy and clear and fun. Thank you so much for sharing..

  • @hectort88
    @hectort88 7 років тому +25

    We use the "rubber ducking" method, not for coding but for general problem solving in our IT department with an empty pringles can.

    • @oximas-oe9vf
      @oximas-oe9vf 2 роки тому

      I talk to my tulpa (a consious imaginary friend) LOL

  • @bla3029
    @bla3029 2 роки тому

    Your voice and words are very clear good for concentration

  • @TedsWorld101
    @TedsWorld101 Рік тому

    Anyone: Did you learn anything today?
    Me: Yeah, talking to rubber duckies helps me with my problems.

  • @jmjtoob
    @jmjtoob 6 років тому +28

    "Decide it's high protein and declare it a feature"... I may have worked as a software engineer for that student's father in the past.

    • @hektor6766
      @hektor6766 5 років тому

      I think he has many fathers.

    • @sarthakraj3981
      @sarthakraj3981 5 років тому +11

      Pretty sure that was John, and not a student

  • @jojojojo4862
    @jojojojo4862 6 місяців тому

    You are the best👏🏻👏🏻❤️ thanks Professor Anna

  • @tes33720
    @tes33720 5 років тому +3

    These are great, and Ana is great. Was worried when there was a new teacher in the last video.

    • @adas21
      @adas21 5 років тому +4

      Mr. Eric Grimmson is actually better and more experienced

    • @oximas-oe9vf
      @oximas-oe9vf 2 роки тому

      @@adas21 yaa but prof. Ana is more fun and has more jokes

    • @geekyprogrammer4831
      @geekyprogrammer4831 Рік тому

      @@oximas-oe9vf we are here to learn not for jokes

    • @oximas-oe9vf
      @oximas-oe9vf Рік тому

      @@geekyprogrammer4831 welll jokes secrete happy hormones inside you which generate emotion and emotions help with memory and help you get motivated to learn more

  • @jpdroidjp
    @jpdroidjp 2 роки тому

    Lecturer is very good, it's not easy teaching programming. But for some reason I'm hung up on her pacing back and forth, and I can't get it out of my head! I wish I never thought of it now.

  • @jaddadzakaria
    @jaddadzakaria 10 місяців тому

    love these lectures

  • @HexagonalColumbus
    @HexagonalColumbus 8 місяців тому

    36:21 How did you divide 100 by 3 and got 15.41666? Same for other lines. You should debug your code

  • @Tintak_hatpin
    @Tintak_hatpin 4 роки тому +2

    I am surprised that no one in the class asked why does it raise ValueError instead of TypeError, as the user provides the wrong Type of input i.e string Type whereas the expected input was integer Type.
    I had to google to find the answer.
    May be they already know the answer ?

    • @anlbasaran8206
      @anlbasaran8206 Рік тому +1

      even though the user provides a string , n = int(input("How old are you? ")) this line converts n to an integer, even though n = twenty , which doesnt sount like an integer but when you ask type() it will return the answer "integer" so the error isnt a type error, sorry for the messy explaination even if you already googled and learned the answer , it might help the people who hasnt :D

  • @akbarrauf2741
    @akbarrauf2741 7 років тому +3

    thank you ,mit

  • @Tarun-zf5ep
    @Tarun-zf5ep 3 роки тому +4

    CD Projekt Red should watch this.

  • @oussematoussli8085
    @oussematoussli8085 4 роки тому

    this proffesor is really great i wish i could study for her

  • @Mark-wq7wd
    @Mark-wq7wd Рік тому

    Your brain is the kitchen. Keep that place clean and sharp

  • @evanmcarthur478
    @evanmcarthur478 5 років тому +6

    The first answer was genius, she laughs, but thats what companies do all the time release buggy software .....then endless patches.

  • @obli8984
    @obli8984 2 роки тому

    thanks she is back after him

  • @seanpatrickmcdevitt
    @seanpatrickmcdevitt 7 років тому +6

    i still havent found out how to get all the #(comments) away like shes does. she highlights a block and does something that gets them to all be not commented then

    • @windzhang6708
      @windzhang6708 7 років тому +8

      select all the #(comments), then press ctrl + 1. It is working in the spyder.

    • @seanpatrickmcdevitt
      @seanpatrickmcdevitt 7 років тому

      thanks, i thought it was something simple like that but that doesnt work in pyscripter :/

    • @mihirpatel8216
      @mihirpatel8216 7 років тому +4

      try doing Ctrl-/ or Ctlr/#

    • @ReverendRichardSeeland568209
      @ReverendRichardSeeland568209 5 років тому +1

      @hammertapping But then you have to install Numpy and PySci manually.

    • @gehanameresekere1345
      @gehanameresekere1345 4 роки тому

      Python IDLE has this feature comment section or uncomment section.

  • @bimboblacky
    @bimboblacky 3 роки тому

    COVERED soup only prevents *more* bugs from invading. Complete cleaning of the house means deleting all applications, removing the entire operating system, & then low-level formatting everything! *yeah* baby *yeah*

  • @aviliocarcamo6454
    @aviliocarcamo6454 Рік тому

    Does anyone know in which video she talks about the Rubber Ducky?

  • @iansullivan9738
    @iansullivan9738 5 років тому +3

    Current American model for dealing with the first analogy:
    Burn the ceiling down

  • @antoniobuccoliero5437
    @antoniobuccoliero5437 6 років тому

    Bravissima, complimenti!!!

  • @adrianivanov6626
    @adrianivanov6626 4 роки тому +1

    How do I do the thing where she selects multiple lines of code and adds a # in front of each of them at once?

  • @sheikhakbar2067
    @sheikhakbar2067 3 роки тому

    Could debugging be fun; I hope so!

  • @dve845
    @dve845 4 роки тому

    be conservative in what you output and liberal in accepting your input? ... exceptions demand catches, just as return values rquire if's

  • @xmnemonic
    @xmnemonic 3 роки тому +1

    she has BLE: big lecture energy

  • @McAwesomeReaper
    @McAwesomeReaper Рік тому

    I feel like 85% of the engineers I work with skipped this class.

  • @PhilippeCarphin
    @PhilippeCarphin 7 років тому +10

    Don't backup your code, make a commit with git

    • @PhilippeCarphin
      @PhilippeCarphin 7 років тому

      That's a bit much for people who are learning about if statements. All they need is version control. The advice she was giving was one of version control even though she used the word backup.
      But if you're going to do a backup, wouldn't it be better to backup your repo by having a remote repository whose url is a path to some place on another drive.

    • @sandeepkosta5750
      @sandeepkosta5750 7 років тому

      these days ide does that for us.. making our life a lot easier

  • @aymensekhri2133
    @aymensekhri2133 4 роки тому

    thanks a lot

  • @funandmotivationweekly
    @funandmotivationweekly 3 роки тому

    comment the code what you have written and not working, so you don't endup doing the same implemenation again while doing the testing, cleanup at the end of finding the solution.

  • @Rollo_and_Jeet
    @Rollo_and_Jeet 4 роки тому

    what is need of raising the exception? we can simply use print statement and break ?

  • @JeffBarron1
    @JeffBarron1 2 роки тому

    stand still damn it!

  • @varungupta5493
    @varungupta5493 5 років тому +2

    is there a way to know which pset to do after which lecture?

    • @mitocw
      @mitocw  5 років тому +4

      At the bottom of the Syllabus page on the full course site on OCW ocw.mit.edu/6-0001F16 there is a Calendar with the release and due dates of the psets. Good luck with your studies!

    • @varungupta5493
      @varungupta5493 2 роки тому +1

      @@mitocw Thanks!

  • @quocvu9847
    @quocvu9847 Рік тому

    32:53

  • @yodgoralisherov289
    @yodgoralisherov289 2 роки тому

    👍👍👍

  • @chrischungy
    @chrischungy 4 роки тому

    19:33 Professor's kid is probably going start to dreaming in code and grow up to be a wizard.

  • @pgoeds7420
    @pgoeds7420 6 років тому

    Try not to use ingredients with bugs already in.

  • @Xgckl
    @Xgckl 7 років тому

    That program for the class wouldn't work. The first student in class_list would get a correct entry in new_stats but then in the next step of the for-loop his grades and the next student would go into new_stats. Also, the program would try to do avg on his name, so you would definitely get an error message.

    • @hoangfuongduy
      @hoangfuongduy 6 років тому +4

      no dude, she separated the avg function to debug, that means when insert in back to the main function, she will amend the argument to be the right argument. As earlier we know that to debug we will devide the main program to smallers functions and check indiviualy.

  • @sharketespark6495
    @sharketespark6495 Рік тому

    Deadpool never comes to any tests😢

  • @wanyinleung912
    @wanyinleung912 5 років тому +4

    Voice crack at 38:57

  • @germanarrowood2748
    @germanarrowood2748 2 роки тому

    The abundant look prenatally slow because test noteworthily tug barring a many confirmation. mammoth, hollow passive

  • @sanjeetkumarrai4998
    @sanjeetkumarrai4998 3 роки тому

    disappoint beyond belief!!!

  • @ramazanaktas3699
    @ramazanaktas3699 5 років тому +1

    I wish she had praticed a little before lectures. Maybe 1/5 of lectures goes with "ehm", "umm", "err" or an awkward silence.

  • @quocvu4023
    @quocvu4023 8 місяців тому

    18:24