Difference between revisions of "Python/C4/Testing-and-debugging/Tamil"
From Script | Spoken-Tutorial
(Created page with '{| border=1 !Time !Narration |- | 0:01 | Hello friends! 'Testing மற்றும் Debugging' tutorial க்கு நல்வரவு! |- | 0:05 | இந்த tutori…') |
|||
Line 1: | Line 1: | ||
− | {| border=1 | + | {| border=1 |
!Time | !Time | ||
!Narration | !Narration | ||
|- | |- | ||
| 0:01 | | 0:01 | ||
− | | | + | | 'Testing மற்றும் Debugging' குறித்த spoken tutorial க்கு நல்வரவு! |
|- | |- | ||
| 0:05 | | 0:05 | ||
− | | இந்த tutorial | + | | இந்த tutorial லில் நாம் கற்க போவது |
# software testing ஐ புரிந்து கொள்ளுதல். | # software testing ஐ புரிந்து கொள்ளுதல். | ||
Line 19: | Line 19: | ||
|- | |- | ||
| 0:21 | | 0:21 | ||
− | | இந்த tutorial ஐ ஆரம்பிக்கும் முன் | + | | இந்த tutorial ஐ ஆரம்பிக்கும் முன் "Getting started with functions" மற்றும் "Advanced Features of Functions" டுடோரியல்களை முடிக்கவும். |
|- | |- | ||
| 0:28 | | 0:28 | ||
− | | | + | | software testing என்றால் என்ன? |
|- | |- | ||
| 0:30 | | 0:30 | ||
− | | ஒரு program ஐ evaluate செய்து அது தேவையான விடைகளை தருகிறதா என | + | | ஒரு program ஐ evaluate செய்து அது தேவையான விடைகளை தருகிறதா என சோதித்தலே Software testing ஆகும். |
|- | |- | ||
| 0:37 | | 0:37 | ||
− | | | + | |இரண்டு number களின் ... gcd ஐ கணக்கிட... simple function ஒன்றை எழுதுவோம். |
|- | |- | ||
| 0:43 | | 0:43 | ||
− | | | + | | editor ஐ திறந்து slide இல் காட்டும் code ஐ type செய்க: |
|- | |- | ||
Line 43: | Line 43: | ||
|- | |- | ||
| 0:56 | | 0:56 | ||
− | | இப்போது | + | | இப்போது இந்த function ஐ சோதிக்க வேண்டும். |
|- | |- | ||
| 0:58 | | 0:58 | ||
− | | அதாவது | + | | அதாவது இரண்டு whole number களின் gcd ஐ வெற்றிகரமாக தருகிறதா என காண வேண்டும். |
|- | |- | ||
| 1:04 | | 1:04 | ||
− | | நமக்கு ஒரு inputs set உம் மற்றும் எதிர்பார்க்கும் சரியான output களும் வேண்டும். | + | | நமக்கு ஒரு inputs set உம் …. மற்றும்... எதிர்பார்க்கும் சரியான output களும் … வேண்டும். |
|- | |- | ||
| 1:10 | | 1:10 | ||
− | | நம் test case 48 | + | | நம் test case 48, 64 என்றும், ''a'' மற்றும் ''b'' முறையே இருக்கட்டும். |
|- | |- | ||
Line 63: | Line 63: | ||
|- | |- | ||
| 1:19 | | 1:19 | ||
− | | | + | | அதுதான் எதிர்பார்க்கும் output. |
|- | |- | ||
| 1:23 | | 1:23 | ||
− | | | + | | file gcd.py ஐ சோதிக்க code ஐ எழுதலாம்; மற்றும் மீதி lines of code ஐ file க்கு எழுதலாம். |
|- | |- | ||
|1:33 | |1:33 | ||
− | |அதாவது f underscore underscore name underscore underscore == | + | |அதாவது f underscore underscore name underscore underscore == withi double quotes underscore underscore main underscore underscore colon |
result = gcd within bracket 48 comma 64 if result exclamation= 16 colon | result = gcd within bracket 48 comma 64 if result exclamation= 16 colon | ||
print within double quotes Test failed | print within double quotes Test failed | ||
Line 78: | Line 78: | ||
|- | |- | ||
| 2:02 | | 2:02 | ||
− | | | + | | இப்போது script ஐ இயக்கி நம் code ஐ test செய்யலாம். |
|- | |- | ||
| 2:06 | | 2:06 | ||
− | | | + | |code ஐ file இருக்கும் முழு பாதையை கொடுத்து சோதிப்போம். |
|- | |- | ||
|2:10 | |2:10 | ||
− | | | + | |terminal லில் type செய்வோம்: python gcd.py |
|- | |- | ||
| 2:17 | | 2:17 | ||
− | | | + | |output ... 'test passed' என …. கிடைக்கிறது. அதாவது நம் code சரியானது. |
|- | |- | ||
| 2:20 | | 2:20 | ||
− | | | + | | புதிய semantic அறிமுகமாகி உள்ளது. அது இரண்டு புதிய Python magic பெயர்களை '' underscore underscore name underscore underscore '' மற்றும் '' underscore underscore main underscore underscore '' ஐ பயன்படுத்துகிறது. |
|- | |- | ||
Line 102: | Line 102: | ||
|- | |- | ||
| 2:35 | | 2:35 | ||
− | |ஒரு file இல் இருக்கும் ஒவ்வொரு Python code உம் இரண்டு வழிகளில் இயக்கப்படலாம்: | + | |ஒரு file இல் இருக்கும் ஒவ்வொரு Python code உம் இரண்டு வழிகளில் இயக்கப்படலாம்: independent stand-alone script ஆக ….அல்லது மற்ற Python scripts அல்லது modules களால் இறக்குமதி செய்யப்படும் ….. Python module ஆக. |
|- | |- | ||
Line 112: | Line 112: | ||
|- | |- | ||
| 3:04 | | 3:04 | ||
− | | வேறு வழியில் சொல்ல, நாம் இந்த python file ஐ ஒரு stand-alone script ஆக இயக்கினால், program control முதலில் if block code இலிருந்து ஆரம்பிக்கும்; பின்னர் control program இன் மற்ற பகுதிகளுக்கு அல்லது இங்கேயே உள்ள module களுக்கோ மாற்றப்படும் | + | | வேறு வழியில் சொல்ல, நாம் இந்த python file ஐ ஒரு stand-alone script ஆக இயக்கினால், program control முதலில் if block code இலிருந்து ஆரம்பிக்கும்; பின்னர் … control program இன் மற்ற பகுதிகளுக்கு அல்லது இங்கேயே உள்ள module களுக்கோ மாற்றப்படும் |
|- | |- | ||
| 3:21 | | 3:21 | ||
− | | இது | + | | இது மிக சௌகரியமான feature. குறிப்பாக நம் module களை தனித்தனியாக சோதிக்க விரும்பினால். |
|- | |- | ||
Line 124: | Line 124: | ||
|- | |- | ||
| 3:33 | | 3:33 | ||
− | | அவை அனத்துக்கும் | + | | அவை அனத்துக்கும் தனியாக test case எழுத முடியுமா? |
|- | |- | ||
| 3:38 | | 3:38 | ||
− | | | + | | video வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும். |
|- | |- | ||
| 3:43 | | 3:43 | ||
− | | gcd க்கு code | + | | gcd க்கு code உம் அதற்கு test களும் எழுதுக. |
|- | |- | ||
Line 140: | Line 140: | ||
|- | |- | ||
| 3:52 | | 3:52 | ||
− | | | + | | நிறைய test களை செய்து ... எங்கெல்லாம் நம் code break ஆகிறது எனப் பார்க்கலாம். |
|- | |- | ||
Line 156: | Line 156: | ||
|- | |- | ||
| 4:13 | | 4:13 | ||
− | |file structure இங்கே | + | |file structure இங்கே table ஆக காட்டப்படுகிறது. |
|- | |- | ||
| 4:20 | | 4:20 | ||
− | | | + | | file structure என்னவென்றால் …. space ஆல் பிரிக்கப்பட்டு இரண்டு parameters .. மற்றும் output result. |
|- | |- | ||
| 4:28 | | 4:28 | ||
− | | | + | |elements ஐ ஒரு space ஆல் பிரித்துவிட்டோம். |
|- | |- | ||
| 4:32 | | 4:32 | ||
− | | | + | | இந்த code piece ஐ test ஐ automate செய்ய சேர்ப்போம். |
|- | |- | ||
|4:41 | |4:41 | ||
− | | | + | |நாம் இப்போது இந்த code ஐ test செய்யலாம். |
|- | |- | ||
| 4:46 | | 4:46 | ||
− | | file gcd.py ஐ திறந்து, பொருத்தமாக மேற்சொன்ன code ஐ சேர்க்கவும். | + | | file gcd.py ஐ திறந்து, பொருத்தமாக, மேற்சொன்ன code ஐ சேர்க்கவும். |
|- | |- | ||
| 5:00 | | 5:00 | ||
− | | இப்போது, | + | | இப்போது, python gcd.py என அதை இயக்கலாம். |
|- | |- | ||
| 5:12 | | 5:12 | ||
− | | | + | | நம் code சோதனையில் pass செய்துவிட்டது என்பதை காணலாம். |
|- | |- | ||
| 5:15 | | 5:15 | ||
− | | video வை | + | | video வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும். |
|- | |- | ||
Line 196: | Line 196: | ||
|- | |- | ||
| 5:26 | | 5:26 | ||
− | | | + | | GCD க்கு பயன்படுத்திய அதே automated test code ஐ சில மாற்றங்களுடன் பயன்படுத்தலாம். |
|- | |- | ||
Line 212: | Line 212: | ||
|- | |- | ||
| 5:49 | | 5:49 | ||
− | | | + | | இந்த code ஐ gcd.py க்கு செய்தது போலவே ..... terminal லில் இயக்கி பாருங்கள். |
|- | |- | ||
| 5:56 | | 5:56 | ||
− | | | + | | இப்படி, எந்த program க்கும் கணக்கிலடங்காத எண்ணிக்கை test cases இருக்கலாம். |
|- | |- | ||
| 6:01 | | 6:01 | ||
− | | | + | | practical ஆக எல்லா test case களையும் இயக்க முடியாது. |
|- | |- | ||
Line 232: | Line 232: | ||
|- | |- | ||
| 6:15 | | 6:15 | ||
− | | தேவையான வேலையை செய்வது தவிர நல்ல program இன் குணம் readability. | + | | தேவையான வேலையை செய்வது தவிர …. நல்ல program இன் குணம் readability. |
|- | |- | ||
| 6:22 | | 6:22 | ||
− | | Code எழுதப்படுவதைவிட அதிகமாக படிக்கப்படுகிறது. | + | | Code எழுதப்படுவதைவிட …. அதிகமாக படிக்கப்படுகிறது. |
|- | |- | ||
| 6:25 | | 6:25 | ||
− | | | + | |ஏனெனில் மற்றவர்கள் இதை படித்து கற்கிறார்கள்; அதை extend, improve செய்கிறார்கள். |
|- | |- | ||
| 6:30 | | 6:30 | ||
− | | readable code க்கான pointers சிலவற்றை | + | | readable code க்கான pointers சிலவற்றை discuss செய்யலாம். |
|- | |- | ||
Line 252: | Line 252: | ||
|- | |- | ||
| 6:39 | | 6:39 | ||
− | | | + | | ஒரு பெயரை இட்டால் ... அது அதன்... பயனை புரிந்து கொள்ளும்படி.. இருக்கட்டும். |
|- | |- | ||
| 6:44 | | 6:44 | ||
− | | ஒரு | + | | ஒரு உதாரணம் |
|- | |- | ||
| 6:47 | | 6:47 | ||
− | | amount = 12.68 denom = 0.05 nCoins = round amount | + | | amount = 12.68 |
+ | denom = 0.05 | ||
+ | nCoins = round (amount/denom) | ||
+ | rAmount = nCoins star denom | ||
|- | |- | ||
| 7:01 | | 7:01 | ||
− | | | + | |இந்த உதாரணத்தில் code என்ன செய்கிறது என்பதை சுலபமாக புரிகிறது. |
|- | |- | ||
Line 288: | Line 291: | ||
|- | |- | ||
| 7:26 | | 7:26 | ||
− | | மேலும் code | + | | மேலும் code எழுதுகையில் நினைவில் வைக்க வேண்டியவை.... |
|- | |- | ||
Line 296: | Line 299: | ||
|- | |- | ||
| 7:33 | | 7:33 | ||
− | | 2. | + | | 2.லைனுக்கு 79 characters மட்டும், ஆனால் readability முதலில் வரவேண்டும். |
|- | |- | ||
Line 308: | Line 311: | ||
|- | |- | ||
| 7:50 | | 7:50 | ||
− | | 5. functions போன்ற குறிப்பிட்ட வேலையை units of code செய்யுமானால் அதை விளக்க Docstring ஐ பயன்படுத்துக. | + | | 5. functions போன்ற குறிப்பிட்ட வேலையை.... units of code செய்யுமானால் … அதை விளக்க Docstring ஐ பயன்படுத்துக. |
|- | |- | ||
| 7:56 | | 7:56 | ||
− | | 6. operator களை சுற்றியும் மற்றும் punctuation க்கு பிறகும் | + | | 6. operator களை சுற்றியும்.... மற்றும் punctuation க்கு பிறகும் ... whitespace கள் இருக்க வேண்டும். |
|- | |- | ||
| 8:00 | | 8:00 | ||
− | | video வை | + | | video வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும். |
|- | |- | ||
Line 332: | Line 335: | ||
|- | |- | ||
| 8:15 | | 8:15 | ||
− | | | + | | நீங்கள் காண்பது போல, இது ப்ரோக்ராமை படிக்க மிகவும் உதவும். |
|- | |- | ||
| 8:24 | | 8:24 | ||
− | | இப்போது | + | | இப்போது handling errors மற்றும் exception களுக்கு போகலாம். |
|- | |- | ||
Line 345: | Line 348: | ||
|8:30 | |8:30 | ||
|ஆகவே type செய்க: ipython | |ஆகவே type செய்க: ipython | ||
− | while True print | + | while True print within quotes Hello world |
|- | |- | ||
| 8:45 | | 8:45 | ||
− | | | + | | இதை interpreter இல் முயற்சி செய்தால் என்ன கிடைக்கிறது? |
|- | |- | ||
Line 357: | Line 360: | ||
|- | |- | ||
| 8:52 | | 8:52 | ||
− | | Syntax error | + | | Syntax error என்பன …. நாம் programming language rule களை … கடைபிடிக்காத போது எழுவன. |
|- | |- | ||
Line 365: | Line 368: | ||
|- | |- | ||
|9:02 | |9:02 | ||
− | | | + | |டைப் செய்க 1 slash 0 |
|- | |- | ||
Line 373: | Line 376: | ||
|- | |- | ||
| 9:13 | | 9:13 | ||
− | | | + | | இப்படி python ஒரு ZeroDivisionError எனும் ஒரு exception ஐ திருப்புகிறது. |
|- | |- | ||
Line 381: | Line 384: | ||
|- | |- | ||
| 9:21 | | 9:21 | ||
− | | ஏன் மற்றும் எப்படி | + | | ஏன் மற்றும் எப்படி Exception களை நம் program களில் பயன்படுத்தலாம் என்று பார்க்கலாம் |
|- | |- | ||
Line 398: | Line 401: | ||
|- | |- | ||
| 10:10 | | 10:10 | ||
− | | | + | | கவனித்தால் இந்த program ஐ இயக்கி non-numeric input ஐ கொடுத்தால் 'ValueError' Exception கிடைக்கிறது. |
|- | |- | ||
| 10:21 | | 10:21 | ||
− | | ஆகவே | + | | ஆகவே இந்த exception ஐ 'catch' செய்து இதை கையாள code எழுதலாம். |
|- | |- | ||
| 10:25 | | 10:25 | ||
− | | இதற்கு | + | | இதற்கு python இல் try and except clause உள்ளது. |
|- | |- | ||
| 10:29 | | 10:29 | ||
− | | | + | | முந்தைய code ஐ கொஞ்சம் மாற்றலாம். |
|- | |- | ||
|10:33 | |10:33 | ||
− | | | + | | type செய்க: a = raw underscore input then |
Enter a decimal number | Enter a decimal number | ||
Line 425: | Line 428: | ||
|- | |- | ||
| 11:13 | | 11:13 | ||
− | | இந்த piece of code இல் python | + | | இந்த piece of code இல் python try block க்கின் உள் இருக்கும் code ஐ இயக்க முயல்கிறது. ஆனால் தோல்வியடைந்தால் except block க்கின் உள் இருக்கும் code ஐ execute செய்கிறது. |
|- | |- | ||
| 11:23 | | 11:23 | ||
− | |நம் conversion ஐ integer code க்கு இயக்குகையில் முந்தைய example இல் | + | |நம் conversion ஐ integer code க்கு இயக்குகையில்... முந்தைய example இல் ... ஒரு problem ஐ சந்தித்தோம். |
|- | |- | ||
| 11:31 | | 11:31 | ||
− | | | + | | எது அந்த error ஐ உருவாக்கியது என்று கண்டுபிடித்து, அதற்கு solution ஐ உருவாக்கினோம். |
|- | |- | ||
| 11:36 | | 11:36 | ||
− | | இந்த முழு process debugging எனப்படும். | + | | இந்த முழு process.. debugging எனப்படும். |
|- | |- | ||
| 11:38 | | 11:38 | ||
− | | இந்த படத்தைப் | + | | இந்த படத்தைப் கண்டு ஒருவர் debugging process ஐ அறியலாம். |
|- | |- | ||
| 11:42 | | 11:42 | ||
− | | debugging process இல் | + | | debugging process இல் error ஐ தருவது எது என்று ஒரு ஊகம் செய்தோம். |
|- | |- | ||
Line 452: | Line 455: | ||
|- | |- | ||
| 11:50 | | 11:50 | ||
− | | மற்றும் அதன் result ஐ ஒட்டி ஊகத்தை | + | | மற்றும் அதன் result ஐ ஒட்டி ஊகத்தை மீண்டும் செய்வோம். |
|- | |- | ||
Line 460: | Line 463: | ||
|- | |- | ||
| 11:57 | | 11:57 | ||
− | | | + | | mymodule.py என ஒரு பைல் உருவாக்கி பின் வரும் code ஐ சேர்க்கவும். |
|- | |- | ||
Line 474: | Line 477: | ||
|- | |- | ||
|12:16 | |12:16 | ||
− | | | + | | இந்த code ஐ ipython interpreter இல் இயக்கிப் பார்க்கலாம். |
|- | |- | ||
|12:19 | |12:19 | ||
− | | | + | | முதலில் file ஐ import செய்ய வேண்டும். type செய்க: import mymodule |
|- | |- | ||
Line 486: | Line 489: | ||
|- | |- | ||
| 12:36 | | 12:36 | ||
− | | Interpreter நமக்கு | + | | Interpreter நமக்கு error ஐ தருகிறது. ஏனென்றால் spam ஐ define செய்யவில்லை. |
|- | |- | ||
Line 538: | Line 541: | ||
|- | |- | ||
| 13:32 | | 13:32 | ||
− | | 5. | + | | 5. try மற்றும் except மூலம் exception களை Handle செய்தல். |
|- | |- | ||
| 13:35 | | 13:35 | ||
− | | 6. ipythonஇல் | + | | 6. ipythonஇல் percentage debug ஐ debugging க்கு பயன்படுத்துதல் |
|- | |- | ||
| 13:40 | | 13:40 | ||
− | | | + | | தீர்வு காண சில சுயப் பரிசோதனைக் கேள்விகள் |
|- | |- | ||
Line 567: | Line 570: | ||
|- | |- | ||
| 14:01 | | 14:01 | ||
− | | | + | | 3. standalone வகையில் python script களை இயக்க பயன்படும் idiom என்ன? |
|- | |- | ||
Line 579: | Line 582: | ||
|- | |- | ||
| 14:19 | | 14:19 | ||
− | | 2. | + | | 2. Modula debug என்பதால் debugger ஐ ipython இல் துவக்கலாம். |
|- | |- | ||
| 14:25 | | 14:25 | ||
− | | | + | | 3.if underscore underscore name underscore underscore == in single quotes underscore underscore main underscore underscore colon |
|- | |- | ||
| 14:40 | | 14:40 | ||
− | | இந்த டுடோரியல் | + | | இந்த டுடோரியல் பயனுள்ளதாக இருந்திருக்கும் என நம்புகிறோம் |
|- | |- |
Revision as of 17:02, 11 September 2013
Time | Narration |
---|---|
0:01 | 'Testing மற்றும் Debugging' குறித்த spoken tutorial க்கு நல்வரவு! |
0:05 | இந்த tutorial லில் நாம் கற்க போவது
|
0:21 | இந்த tutorial ஐ ஆரம்பிக்கும் முன் "Getting started with functions" மற்றும் "Advanced Features of Functions" டுடோரியல்களை முடிக்கவும். |
0:28 | software testing என்றால் என்ன? |
0:30 | ஒரு program ஐ evaluate செய்து அது தேவையான விடைகளை தருகிறதா என சோதித்தலே Software testing ஆகும். |
0:37 | இரண்டு number களின் ... gcd ஐ கணக்கிட... simple function ஒன்றை எழுதுவோம். |
0:43 | editor ஐ திறந்து slide இல் காட்டும் code ஐ type செய்க: |
0:50 | file ஐ gcd.py என slash home slash fossee slash path இல் சேமிக்கவும். |
0:56 | இப்போது இந்த function ஐ சோதிக்க வேண்டும். |
0:58 | அதாவது இரண்டு whole number களின் gcd ஐ வெற்றிகரமாக தருகிறதா என காண வேண்டும். |
1:04 | நமக்கு ஒரு inputs set உம் …. மற்றும்... எதிர்பார்க்கும் சரியான output களும் … வேண்டும். |
1:10 | நம் test case 48, 64 என்றும், a மற்றும் b முறையே இருக்கட்டும். |
1:15 | இந்த test case க்கு நாம் GCD 16 என அறிவோம். |
1:19 | அதுதான் எதிர்பார்க்கும் output. |
1:23 | file gcd.py ஐ சோதிக்க code ஐ எழுதலாம்; மற்றும் மீதி lines of code ஐ file க்கு எழுதலாம். |
1:33 | அதாவது f underscore underscore name underscore underscore == withi double quotes underscore underscore main underscore underscore colon
result = gcd within bracket 48 comma 64 if result exclamation= 16 colon print within double quotes Test failed print within double quotes Test Passed |
2:02 | இப்போது script ஐ இயக்கி நம் code ஐ test செய்யலாம். |
2:06 | code ஐ file இருக்கும் முழு பாதையை கொடுத்து சோதிப்போம். |
2:10 | terminal லில் type செய்வோம்: python gcd.py |
2:17 | output ... 'test passed' என …. கிடைக்கிறது. அதாவது நம் code சரியானது. |
2:20 | புதிய semantic அறிமுகமாகி உள்ளது. அது இரண்டு புதிய Python magic பெயர்களை underscore underscore name underscore underscore மற்றும் underscore underscore main underscore underscore ஐ பயன்படுத்துகிறது. |
2:31 | இது பைதானில் வெகு சாதாரணமாக பயன்படும் idiom. |
2:35 | ஒரு file இல் இருக்கும் ஒவ்வொரு Python code உம் இரண்டு வழிகளில் இயக்கப்படலாம்: independent stand-alone script ஆக ….அல்லது மற்ற Python scripts அல்லது modules களால் இறக்குமதி செய்யப்படும் ….. Python module ஆக. |
2:48 | இந்த idiom
if underscore underscore name underscore underscore == ' underscore underscore main underscore underscore ' பயன்படுத்தப்படும் போது Python file ஐ stand-alone script ஆக இயக்கினால் இந்த block இல் உள்ள code முதலில் execute ஆகிறது. |
3:04 | வேறு வழியில் சொல்ல, நாம் இந்த python file ஐ ஒரு stand-alone script ஆக இயக்கினால், program control முதலில் if block code இலிருந்து ஆரம்பிக்கும்; பின்னர் … control program இன் மற்ற பகுதிகளுக்கு அல்லது இங்கேயே உள்ள module களுக்கோ மாற்றப்படும் |
3:21 | இது மிக சௌகரியமான feature. குறிப்பாக நம் module களை தனித்தனியாக சோதிக்க விரும்பினால். |
3:27 | ஆனால் gcd function பல இடங்களில் சிதையலாம். |
3:33 | அவை அனத்துக்கும் தனியாக test case எழுத முடியுமா? |
3:38 | video வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும். |
3:43 | gcd க்கு code உம் அதற்கு test களும் எழுதுக. |
3:48 | இங்கேதான் automating tests வருகிறது. |
3:52 | நிறைய test களை செய்து ... எங்கெல்லாம் நம் code break ஆகிறது எனப் பார்க்கலாம். |
3:57 | இதை ஒரு உதாரணத்தால் பார்க்கலாம். |
4:01 | முதலில் gcd function ஐ automate test களுக்கு உட்படுத்தலாம். |
4:05 | இதற்கு நாம் test case களுடன் ஒரு file ஐ எழுதலாம்; மேலும் அவை எல்லாவற்றுக்கும் இந்த function ஐ call செய்யலாம். |
4:13 | file structure இங்கே table ஆக காட்டப்படுகிறது. |
4:20 | file structure என்னவென்றால் …. space ஆல் பிரிக்கப்பட்டு இரண்டு parameters .. மற்றும் output result. |
4:28 | elements ஐ ஒரு space ஆல் பிரித்துவிட்டோம். |
4:32 | இந்த code piece ஐ test ஐ automate செய்ய சேர்ப்போம். |
4:41 | நாம் இப்போது இந்த code ஐ test செய்யலாம். |
4:46 | file gcd.py ஐ திறந்து, பொருத்தமாக, மேற்சொன்ன code ஐ சேர்க்கவும். |
5:00 | இப்போது, python gcd.py என அதை இயக்கலாம். |
5:12 | நம் code சோதனையில் pass செய்துவிட்டது என்பதை காணலாம். |
5:15 | video வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும். |
5:21 | LCM க்கு gcd க்கு தந்த அதே input களுடன் automated tests எழுதுக. |
5:26 | GCD க்கு பயன்படுத்திய அதே automated test code ஐ சில மாற்றங்களுடன் பயன்படுத்தலாம். |
5:32 | data வை file lcmtestcases.txt இலிருந்து பெறுகிறோம். |
5:36 | solution உங்கள் screen இல் உள்ளது |
5:46 | இதுவே problem க்கு complete solution. |
5:49 | இந்த code ஐ gcd.py க்கு செய்தது போலவே ..... terminal லில் இயக்கி பாருங்கள். |
5:56 | இப்படி, எந்த program க்கும் கணக்கிலடங்காத எண்ணிக்கை test cases இருக்கலாம். |
6:01 | practical ஆக எல்லா test case களையும் இயக்க முடியாது. |
6:04 | எனினும் இந்த set of test case களை குறைக்க பல முறைகள் உள்ளன. Errors காட்ட அதிக வாய்ப்பு உள்ளதாக தோன்றுவனவற்றை டெஸ்ட் செய்யலாம். |
6:10 | testing இலிருந்து coding style க்கு இப்போது போகலாம். |
6:15 | தேவையான வேலையை செய்வது தவிர …. நல்ல program இன் குணம் readability. |
6:22 | Code எழுதப்படுவதைவிட …. அதிகமாக படிக்கப்படுகிறது. |
6:25 | ஏனெனில் மற்றவர்கள் இதை படித்து கற்கிறார்கள்; அதை extend, improve செய்கிறார்கள். |
6:30 | readable code க்கான pointers சிலவற்றை discuss செய்யலாம். |
6:34 | முதலில், Naming variables. |
6:39 | ஒரு பெயரை இட்டால் ... அது அதன்... பயனை புரிந்து கொள்ளும்படி.. இருக்கட்டும். |
6:44 | ஒரு உதாரணம் |
6:47 | amount = 12.68
denom = 0.05 nCoins = round (amount/denom) rAmount = nCoins star denom |
7:01 | இந்த உதாரணத்தில் code என்ன செய்கிறது என்பதை சுலபமாக புரிகிறது. |
7:07 | இதை ஏறத்தாழ English sentence ஆகவே கருதலாம். |
7:10 | Amount 12.68 |
7:12 | Denomination .05 |
7:16 | Number of coins என்பது round of amount by denominations. |
7:20 | code ஐ புரிந்து கொள்ள பொருத்தமான பெயர் மிகவும் உதவுகிறது. |
7:26 | மேலும் code எழுதுகையில் நினைவில் வைக்க வேண்டியவை.... |
7:30 | 1. Four Space Indentation |
7:33 | 2.லைனுக்கு 79 characters மட்டும், ஆனால் readability முதலில் வரவேண்டும். |
7:38 | 3. Functions மற்றும் methods இரண்டு blank line களால் பிரிக்கப்பட வேண்டும் |
7:41 | 4. inline comments கூடாது; அவை comment செய்யப்படும் லைனுக்கு மேலே இருக்க வேண்டும். |
7:50 | 5. functions போன்ற குறிப்பிட்ட வேலையை.... units of code செய்யுமானால் … அதை விளக்க Docstring ஐ பயன்படுத்துக. |
7:56 | 6. operator களை சுற்றியும்.... மற்றும் punctuation க்கு பிறகும் ... whitespace கள் இருக்க வேண்டும். |
8:00 | video வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும். |
8:05 | பின் வரும் code இல் variable களுக்கு பொருத்தமாக பெயரிடுக |
8:08 | c=a slash b |
8:12 | solution உங்கள் screen இல் உள்ளது |
8:15 | நீங்கள் காண்பது போல, இது ப்ரோக்ராமை படிக்க மிகவும் உதவும். |
8:24 | இப்போது handling errors மற்றும் exception களுக்கு போகலாம். |
8:28 | பின்வரும் code துண்டை பார்க்கலாம் |
8:30 | ஆகவே type செய்க: ipython
while True print within quotes Hello world |
8:45 | இதை interpreter இல் முயற்சி செய்தால் என்ன கிடைக்கிறது? |
8:49 | interpreter ஒரு syntax error உள்ளதாக சொல்கிறது. |
8:52 | Syntax error என்பன …. நாம் programming language rule களை … கடைபிடிக்காத போது எழுவன. |
8:58 | இப்படி expression ஐ பார்க்கலாம் |
9:02 | டைப் செய்க 1 slash 0 |
9:06 | இந்த expression programming language rule கள் படி சரியானாலும், இதற்கு விடை சொல்வது சுலபமல்ல. |
9:13 | இப்படி python ஒரு ZeroDivisionError எனும் ஒரு exception ஐ திருப்புகிறது. |
9:17 | Exception என்பது programming language சொல்லும் special வகை தோல்வி. |
9:21 | ஏன் மற்றும் எப்படி Exception களை நம் program களில் பயன்படுத்தலாம் என்று பார்க்கலாம் |
9:26 | ஆகவே type செய்க: ipython
a = raw underscore input within bracket within double quotes Enter a number colon |
9:54 | பின் ஒரு non-numeric input ஐ type செய்யலாம். |
10:01 | type செய்க: num = int a. |
10:10 | கவனித்தால் இந்த program ஐ இயக்கி non-numeric input ஐ கொடுத்தால் 'ValueError' Exception கிடைக்கிறது. |
10:21 | ஆகவே இந்த exception ஐ 'catch' செய்து இதை கையாள code எழுதலாம். |
10:25 | இதற்கு python இல் try and except clause உள்ளது. |
10:29 | முந்தைய code ஐ கொஞ்சம் மாற்றலாம். |
10:33 | type செய்க: a = raw underscore input then
Enter a decimal number try colon num = int a except print within double quotes Wrong input ... |
11:13 | இந்த piece of code இல் python try block க்கின் உள் இருக்கும் code ஐ இயக்க முயல்கிறது. ஆனால் தோல்வியடைந்தால் except block க்கின் உள் இருக்கும் code ஐ execute செய்கிறது. |
11:23 | நம் conversion ஐ integer code க்கு இயக்குகையில்... முந்தைய example இல் ... ஒரு problem ஐ சந்தித்தோம். |
11:31 | எது அந்த error ஐ உருவாக்கியது என்று கண்டுபிடித்து, அதற்கு solution ஐ உருவாக்கினோம். |
11:36 | இந்த முழு process.. debugging எனப்படும். |
11:38 | இந்த படத்தைப் கண்டு ஒருவர் debugging process ஐ அறியலாம். |
11:42 | debugging process இல் error ஐ தருவது எது என்று ஒரு ஊகம் செய்தோம். |
11:47 | code ஐ மாற்றி அது சரிதானா என Test செய்தோம். |
11:50 | மற்றும் அதன் result ஐ ஒட்டி ஊகத்தை மீண்டும் செய்வோம். |
11:54 | இன்னொரு example of debugging ஐ பார்க்கலாம். |
11:57 | mymodule.py என ஒரு பைல் உருவாக்கி பின் வரும் code ஐ சேர்க்கவும். |
12:02 | type செய்து file ஐ உருவாக்கவும். |
12:07 | def test() colon
total=1+1 print spam |
12:16 | இந்த code ஐ ipython interpreter இல் இயக்கிப் பார்க்கலாம். |
12:19 | முதலில் file ஐ import செய்ய வேண்டும். type செய்க: import mymodule |
12:27 | பின் type செய்க: mymodule.test() |
12:36 | Interpreter நமக்கு error ஐ தருகிறது. ஏனென்றால் spam ஐ define செய்யவில்லை. |
12:40 | இப்போது ipython interpreter இல் modula debug செய்யலாம். |
12:45 | modula debug பின் என்டர் செய்க. |
12:48 | shell prompt இப்போது ipdb ஆக மாறிவிட்டது. |
12:55 | இது ஒரு debugger. இங்கே normal interpreter ஐ போல இல்லாமல் நீங்கள் code block இல் உள்ள பல variables களை அணுகலாம். உதாரணமாக 'total' . |
13:06 | type செய்க: total பின் சோதிக்கவும். |
13:11 | நமக்கு சரியான output கிடைக்கிறது. |
13:13 | ipdb prompt இலிருந்து வெளியேற q ஐ அழுத்தவும். |
13:18 | இத்துடன் இந்த டுடோரியல் முடிகிறது. |
13:21 | இந்த டுடோரியலில், நாம் கற்றவை, 1. ஒரு function க்கு simple test களை உருவாக்குதல். |
13:24 | 2. predefined test case கள் மூலம் test களை Automate செய்தல். |
13:27 | 3. python coding standards ஐ பயன்படுத்துதல். |
13:30 | 4.syntax error மற்றும் exception கள் இடையே வித்தியாசத்தை புரிந்து கொள்ளுதல். |
13:32 | 5. try மற்றும் except மூலம் exception களை Handle செய்தல். |
13:35 | 6. ipythonஇல் percentage debug ஐ debugging க்கு பயன்படுத்துதல் |
13:40 | தீர்வு காண சில சுயப் பரிசோதனைக் கேள்விகள் |
13:43 | 1. style guidelines படி python code க்கு proper indentation என்ன?
|
13:53 | 2. ipython இல் நீங்கள் debugger ஐ start செய்வது எப்படி?
|
14:01 | 3. standalone வகையில் python script களை இயக்க பயன்படும் idiom என்ன? |
14:08 | விடைகள் இதோ |
14:11 | 1. style guidelines படி python code க்கு Four Space Indentation தேவை. |
14:19 | 2. Modula debug என்பதால் debugger ஐ ipython இல் துவக்கலாம். |
14:25 | 3.if underscore underscore name underscore underscore == in single quotes underscore underscore main underscore underscore colon |
14:40 | இந்த டுடோரியல் பயனுள்ளதாக இருந்திருக்கும் என நம்புகிறோம் |
14:46 | நன்றி! |