7. Testing, Debugging, Exceptions, and Assertions

Sdílet
Vložit
  • čas přidán 14. 02. 2017
  • MIT 6.0001 Introduction to Computer Science and Programming in Python, Fall 2016
    View the complete course: ocw.mit.edu/6-0001F16
    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

Komentáře • 99

  • @leixun
    @leixun Před 4 lety +110

    *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 Před 5 lety +131

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

    • @willcheung7041
      @willcheung7041 Před 4 lety +10

      and she is hot

    • @jcavs9847
      @jcavs9847 Před 3 lety +6

      @@willcheung7041 feels weird man

    • @88Oleksiy
      @88Oleksiy Před 3 lety +13

      @@willcheung7041 very inappropriate

    • @EZ-hc5sh
      @EZ-hc5sh Před 2 lety

      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 Před 7 lety +169

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

    • @yukeyang5735
      @yukeyang5735 Před 5 lety

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

    • @serkansenturk6945
      @serkansenturk6945 Před 4 lety +1

      The Elder Scrolls V: Skyrim likes this

    • @juanperezmondragon1676
      @juanperezmondragon1676 Před 4 lety +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.

  • @rooneymara8061
    @rooneymara8061 Před 6 lety +49

    Amazing how she gets better as the lectures go on

    • @JamBear
      @JamBear Před 3 lety +2

      Just like coding

  • @mohammadsamir2713
    @mohammadsamir2713 Před 5 lety +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 Před 2 lety +4

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

  • @davidorsa4406
    @davidorsa4406 Před 5 lety +2

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

  • @PradeepKumar-gq8ej
    @PradeepKumar-gq8ej Před 4 lety +2

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

  • @user-fl7vs4ed6l
    @user-fl7vs4ed6l Před 3 lety +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

  • @nancylu4049
    @nancylu4049 Před 3 lety +4

    Dr. Ana Bell is a great instructor!

  • @IACOIACOIACO
    @IACOIACOIACO Před 2 lety +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 !!

  • @DistortedV12
    @DistortedV12 Před 3 lety +2

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

  • @TheMinaProject
    @TheMinaProject Před 2 lety

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

  • @akbarrauf2741
    @akbarrauf2741 Před 7 lety +3

    thank you ,mit

  • @bla3029
    @bla3029 Před 2 lety

    Your voice and words are very clear good for concentration

  • @Lexaire
    @Lexaire Před 4 lety +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.

  • @jiakai7254
    @jiakai7254 Před rokem

    perhaps the most valuable lecture in this series

  • @nephetssnephetss1508
    @nephetssnephetss1508 Před rokem

    Dr. Anna Bell. This is great.

  • @jaddadzakaria
    @jaddadzakaria Před 7 měsíci

    love these lectures

  • @antoniobuccoliero5437
    @antoniobuccoliero5437 Před 5 lety

    Bravissima, complimenti!!!

  • @jesuelmarques2241
    @jesuelmarques2241 Před 10 měsíci +1

    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

  • @jojojojo4862
    @jojojojo4862 Před 2 měsíci

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

  • @hectort88
    @hectort88 Před 6 lety +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 Před rokem

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

  • @oussematoussli8085
    @oussematoussli8085 Před 4 lety

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

  • @jmjtoob
    @jmjtoob Před 6 lety +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 Před 5 lety

      I think he has many fathers.

    • @sarthakraj3981
      @sarthakraj3981 Před 5 lety +11

      Pretty sure that was John, and not a student

  • @TedsWorld101
    @TedsWorld101 Před rokem

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

  • @alexandrugheorghe5610
    @alexandrugheorghe5610 Před 10 měsíci +1

    26:43 one more exception can be KeyboardInterrupt

  • @aymensekhri2133
    @aymensekhri2133 Před 4 lety

    thanks a lot

  • @tes33720
    @tes33720 Před 4 lety +3

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

    • @adas21
      @adas21 Před 4 lety +4

      Mr. Eric Grimmson is actually better and more experienced

    • @oximas-oe9vf
      @oximas-oe9vf Před rokem

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

    • @geekyprogrammer4831
      @geekyprogrammer4831 Před 10 měsíci

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

    • @oximas-oe9vf
      @oximas-oe9vf Před 10 měsíci

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

  • @aviliocarcamo6454
    @aviliocarcamo6454 Před rokem

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

  • @jpdroidjp
    @jpdroidjp Před 2 lety

    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.

  • @Tintak_hatpin
    @Tintak_hatpin Před 4 lety +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 Před rokem +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

  • @HexagonalColumbus
    @HexagonalColumbus Před 5 měsíci

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

  • @sheikhakbar2067
    @sheikhakbar2067 Před 3 lety

    Could debugging be fun; I hope so!

  • @obli8984
    @obli8984 Před 2 lety

    thanks she is back after him

  • @Tarun-zf5ep
    @Tarun-zf5ep Před 3 lety +4

    CD Projekt Red should watch this.

  • @adrianivanov6626
    @adrianivanov6626 Před 4 lety +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?

  • @Mark-wq7wd
    @Mark-wq7wd Před rokem

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

  • @dve845
    @dve845 Před 4 lety

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

  • @mindywashere
    @mindywashere Před 7 lety +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 Před 7 lety +8

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

    • @mindywashere
      @mindywashere Před 7 lety

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

    • @mihirpatel8216
      @mihirpatel8216 Před 7 lety +4

      try doing Ctrl-/ or Ctlr/#

    • @ReverendRichardSeeland568209
      @ReverendRichardSeeland568209 Před 5 lety +1

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

    • @gehanameresekere1345
      @gehanameresekere1345 Před 3 lety

      Python IDLE has this feature comment section or uncomment section.

  • @iansullivan9738
    @iansullivan9738 Před 5 lety +3

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

  • @evanmcarthur478
    @evanmcarthur478 Před 4 lety +6

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

  • @McAwesomeReaper
    @McAwesomeReaper Před 9 měsíci

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

  • @yodgoralisherov289
    @yodgoralisherov289 Před rokem

    👍👍👍

  • @bimboblacky
    @bimboblacky Před 3 lety

    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*

  • @varungupta5493
    @varungupta5493 Před 5 lety +2

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

    • @mitocw
      @mitocw  Před 5 lety +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 Před 2 lety +1

      @@mitocw Thanks!

  • @JeetSingh-kp5xq
    @JeetSingh-kp5xq Před 4 lety

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

  • @xmnemonic
    @xmnemonic Před 3 lety +1

    she has BLE: big lecture energy

  • @JeffBarron1
    @JeffBarron1 Před 2 lety

    stand still damn it!

  • @PhilippeCarphin
    @PhilippeCarphin Před 7 lety +10

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

    • @PhilippeCarphin
      @PhilippeCarphin Před 7 lety

      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 Před 7 lety

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

  • @quocvu9847
    @quocvu9847 Před rokem

    32:53

  • @quocvu4023
    @quocvu4023 Před 4 měsíci

    18:24

  • @funandmotivationweekly

    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.

  • @chrischungy
    @chrischungy Před 3 lety

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

  • @pgoeds7420
    @pgoeds7420 Před 5 lety

    Try not to use ingredients with bugs already in.

  • @Xgckl
    @Xgckl Před 7 lety

    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 Před 6 lety +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 Před rokem

    Deadpool never comes to any tests😢

  • @wanyinleung912
    @wanyinleung912 Před 5 lety +4

    Voice crack at 38:57

  • @germanarrowood2748
    @germanarrowood2748 Před 2 lety

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

  • @sanjeetkumarrai4998
    @sanjeetkumarrai4998 Před 2 lety

    disappoint beyond belief!!!

  • @ramazanaktas3699
    @ramazanaktas3699 Před 4 lety +1

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