Difference between revisions of "Python/C4/Testing-and-debugging/Tamil"

From Script | Spoken-Tutorial
Jump to: navigation, search
(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
| Hello friends! 'Testing மற்றும் Debugging' tutorial க்கு நல்வரவு!  
+
| 'Testing மற்றும் Debugging' குறித்த spoken tutorial க்கு நல்வரவு!  
  
 
|-
 
|-
 
|  0:05
 
|  0:05
| இந்த  tutorial லின் இறுதியில் நீங்கள், நீங்கள் பின் வருவனவற்றை செய்ய முடியும்.
+
| இந்த  tutorial லில் நாம் கற்க போவது
  
 
# software testing ஐ புரிந்து கொள்ளுதல்.
 
# software testing ஐ புரிந்து கொள்ளுதல்.
Line 19: Line 19:
 
|-
 
|-
 
|  0:21
 
|  0:21
| இந்த tutorial ஐ ஆரம்பிக்கும் முன், நாம் நீங்கள் பின் வரும் டுடோரியல்களை முடித்திருக்க பரிந்துரைக்கிறோம். "Getting started with functions" மற்றும் "Advanced Features of Functions".
+
| இந்த tutorial ஐ ஆரம்பிக்கும் முன் "Getting started with functions" மற்றும் "Advanced Features of Functions" டுடோரியல்களை முடிக்கவும்.
  
 
|-
 
|-
 
| 0:28
 
| 0:28
| இப்போது, software testing என்றால் என்ன?  
+
| software testing என்றால் என்ன?  
  
 
|-
 
|-
 
| 0:30
 
| 0:30
| ஒரு  program ஐ evaluate செய்து அது தேவையான விடைகளை தருகிறதா என நிர்ணயித்தலே Software testing ஆகும்.
+
| ஒரு  program ஐ evaluate செய்து அது தேவையான விடைகளை தருகிறதா என சோதித்தலே Software testing ஆகும்.
  
 
|-
 
|-
 
| 0:37
 
| 0:37
|முதலில் இரண்டு number களின் gcd ஐ கணக்கிட simple function ஒன்றை எழுதுவோம்.
+
|இரண்டு number களின் ... gcd ஐ கணக்கிட... simple function ஒன்றை எழுதுவோம்.
  
 
|-
 
|-
 
| 0:43
 
| 0:43
|ஒரு editor ஐ திறந்து slide இல் காட்டும் code ஐ type செய்க: பின் அதை  gcd.py என சேமிக்கவும்.
+
| editor ஐ திறந்து slide இல் காட்டும் code ஐ type செய்க:  
  
 
|-
 
|-
Line 43: Line 43:
 
|-
 
|-
 
| 0:56
 
| 0:56
| இப்போது நாம் இந்த function evaluate செய்யவேண்டும்.
+
| இப்போது இந்த function ஐ சோதிக்க வேண்டும்.
  
 
|-
 
|-
 
| 0:58
 
| 0:58
| அதாவது நாம் இரண்டு whole number களின்  gcd ஐ வெற்றிகரமாக தருகிறதா என்று செக் செய்ய வேண்டும்.
+
| அதாவது இரண்டு whole number களின்  gcd ஐ வெற்றிகரமாக தருகிறதா என காண வேண்டும்.
  
 
|-
 
|-
 
| 1:04
 
| 1:04
| நமக்கு ஒரு inputs set உம் மற்றும் எதிர்பார்க்கும் சரியான output களும் வேண்டும்.
+
| நமக்கு ஒரு inputs set உம் …. மற்றும்... எதிர்பார்க்கும் சரியான output களும் வேண்டும்.
  
 
|-
 
|-
 
| 1:10
 
| 1:10
| நம் test case 48 என்றும் 64 என்றும், ''a'' மற்றும் ''b'' முறையே இருக்கட்டும்.
+
| நம் test case 48, 64 என்றும், ''a'' மற்றும் ''b'' முறையே இருக்கட்டும்.
  
 
|-
 
|-
Line 63: Line 63:
 
|-
 
|-
 
| 1:19
 
| 1:19
| ஆகவே அதுதான் எதிர்பார்க்கும் output.
+
| அதுதான் எதிர்பார்க்கும் output.
  
 
|-
 
|-
 
| 1:23
 
| 1:23
| நாம் file gcd.py ஐ சோதிக்க code ஐ எழுதலாம்; மற்றும் மீதி lines of code ஐ file க்கு எழுதலாம்.
+
| file gcd.py ஐ சோதிக்க code ஐ எழுதலாம்; மற்றும் மீதி lines of code ஐ file க்கு எழுதலாம்.
 
   
 
   
 
|-
 
|-
 
|1:33
 
|1:33
|அதாவது f  underscore  underscore name underscore  underscore  == in quotes underscore  underscore main underscore  underscore  colon
+
|அதாவது 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 செய்யலாம்.
+
| இப்போது script ஐ இயக்கி நம் code ஐ test செய்யலாம்.
  
 
|-
 
|-
 
| 2:06
 
| 2:06
| நாம் code ஐ file இருக்கும் முழு பாதையை கொடுத்து சோதிப்போம்.
+
|code ஐ file இருக்கும் முழு பாதையை கொடுத்து சோதிப்போம்.
  
 
|-
 
|-
 
|2:10
 
|2:10
|அதாவது நாம் terminal லில் type செய்வோம்:python gcd.py
+
|terminal லில் type செய்வோம்: python gcd.py
  
 
|-
 
|-
 
| 2:17
 
| 2:17
| நமக்கு output 'test passed' என கிடைக்கிறது. அதாவது நம் code சரியானது.
+
|output ... 'test passed' என …. கிடைக்கிறது. அதாவது நம் code சரியானது.
  
 
|-
 
|-
 
| 2:20
 
| 2:20
| கவனிக்க: நாம் புதிய semantic ஐ அறிமுகப்படுத்தி இருக்கிறோம். அது இரண்டு புதிய  Python magic பெயர்களை '' underscore  underscore name underscore  underscore '' மற்றும் '' underscore  underscore main underscore  underscore '' ஐ பயன்படுத்துகிறது.
+
| புதிய semantic அறிமுகமாகி உள்ளது. அது இரண்டு புதிய  Python magic பெயர்களை '' underscore  underscore name underscore  underscore '' மற்றும் '' underscore  underscore main underscore  underscore '' ஐ பயன்படுத்துகிறது.
  
 
|-
 
|-
Line 102: Line 102:
 
|-
 
|-
 
| 2:35
 
| 2:35
|ஒரு file இல் இருக்கும் ஒவ்வொரு Python code உம் இரண்டு வழிகளில் இயக்கப்படலாம்: ஒரு independent stand-alone script ஆக அல்லது மற்ற Python scripts அல்லது modules களால் இறக்குமதி செய்யப்படும் ஒரு Python module ஆக.
+
|ஒரு 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 களை தனித்தனியாக சோதிக்க விரும்பினால்.
+
| இது மிக சௌகரியமான feature. குறிப்பாக நம் module களை தனித்தனியாக சோதிக்க விரும்பினால்.
  
 
|-
 
|-
Line 124: Line 124:
 
|-
 
|-
 
| 3:33
 
| 3:33
| அவை அனத்துக்கும் நாம் தனியாக test case எழுத முடியுமா?
+
| அவை அனத்துக்கும் தனியாக test case எழுத முடியுமா?
  
 
|-
 
|-
 
| 3:38
 
| 3:38
| video வை இங்கே நிறுத்தி பயிற்சியை செய்து முடித்து பின் தொடரவும்.
+
| video வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும்.
  
 
|-
 
|-
 
| 3:43
 
| 3:43
| gcd க்கு code எழுதுக. மேலும் அதற்கு test கள் எழுதுக.
+
| gcd க்கு code உம் அதற்கு test களும் எழுதுக.
  
 
|-
 
|-
Line 140: Line 140:
 
|-
 
|-
 
| 3:52
 
| 3:52
| நாம் நிறைய test களை செய்து எங்கெல்லாம் நம் code break ஆகிறது என்று பார்க்கலாம்.
+
| நிறைய test களை செய்து ... எங்கெல்லாம் நம் code break ஆகிறது எனப் பார்க்கலாம்.
  
 
|-
 
|-
Line 156: Line 156:
 
|-
 
|-
 
| 4:13
 
| 4:13
|file structure இங்கே ஒரு table ஆக காட்டப்படுகிறது.
+
|file structure இங்கே table ஆக காட்டப்படுகிறது.
  
 
|-
 
|-
 
| 4:20
 
| 4:20
| structure of the file என்னவென்றால் space ஆல் பிரிக்கப்பட்டு இரண்டு parameters மற்றும் output result.
+
| file structure  என்னவென்றால் …. space ஆல் பிரிக்கப்பட்டு இரண்டு parameters .. மற்றும் output result.
  
 
|-
 
|-
 
| 4:28
 
| 4:28
| நாம் elements ஐ ஒரு space ஆல் பிரித்துவிட்டோம்.
+
|elements ஐ ஒரு space ஆல் பிரித்துவிட்டோம்.
  
 
|-
 
|-
 
| 4:32
 
| 4:32
| நாம் இந்த code piece ஐ test ஐ automate செய்ய சேர்ப்போம்.
+
| இந்த code piece ஐ test ஐ automate செய்ய சேர்ப்போம்.
  
 
|-
 
|-
 
|4:41
 
|4:41
|ஆகவே நாம் இப்போது இந்த code ஐ test செய்யலாம்.
+
|நாம் இப்போது இந்த code ஐ test செய்யலாம்.
  
 
|-
 
|-
 
| 4:46
 
| 4:46
| file gcd.py ஐ திறந்து, பொருத்தமாக மேற்சொன்ன code ஐ சேர்க்கவும்.
+
| file gcd.py ஐ திறந்து, பொருத்தமாக, மேற்சொன்ன code ஐ சேர்க்கவும்.
  
 
|-
 
|-
 
| 5:00
 
| 5:00
| இப்போது, நாம் python gcd.py என அதை இயக்கலாம்.
+
| இப்போது, python gcd.py என அதை இயக்கலாம்.
  
 
|-
 
|-
 
| 5:12
 
| 5:12
| நாம் நம் code சோதனையில் pass செய்துவிட்டது என்பதை காணலாம்.
+
| நம் code சோதனையில் pass செய்துவிட்டது என்பதை காணலாம்.
  
 
|-
 
|-
 
| 5:15
 
| 5:15
|  video  வை இங்கே நிறுத்தி பயிற்சியை செய்து முடித்து பின் தொடரவும்.
+
|  video  வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும்.
  
 
|-
 
|-
Line 196: Line 196:
 
|-
 
|-
 
| 5:26
 
| 5:26
| நாம் GCD க்கு பயன்படுத்திய அதே automated test code ஐ சில மாற்றங்களுடன் பயன்படுத்தலாம்.
+
| GCD க்கு பயன்படுத்திய அதே automated test code ஐ சில மாற்றங்களுடன் பயன்படுத்தலாம்.
  
 
|-
 
|-
Line 212: Line 212:
 
|-
 
|-
 
| 5:49
 
| 5:49
| நீங்கள் இந்த code ஐ நாம் gcd.py க்கு செய்தது போலவே உங்கள் terminal லில் இயக்கி பாருங்கள்.  
+
| இந்த code ஐ gcd.py க்கு செய்தது போலவே ..... terminal லில் இயக்கி பாருங்கள்.  
  
 
|-
 
|-
 
| 5:56
 
| 5:56
| இப்படியாக, எந்த program க்கும் கணக்கிலடங்காத எண்ணிக்கை  test cases இருக்கலாம்.
+
| இப்படி, எந்த program க்கும் கணக்கிலடங்காத எண்ணிக்கை  test cases இருக்கலாம்.
  
 
|-
 
|-
 
| 6:01
 
| 6:01
| ஆகவே practical ஆக எல்லா test case களையும் இயக்க முடியாது.
+
| 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 it.  
+
|ஏனெனில் மற்றவர்கள் இதை படித்து கற்கிறார்கள்; அதை extend, improve செய்கிறார்கள்.
  
 
|-
 
|-
 
| 6:30
 
| 6:30
| readable code க்கான pointers சிலவற்றை நான் discuss செய்யப்போகிறேன்.
+
| 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 comma slash denom rAmount = nCoins star denom
+
| amount = 12.68  
 +
denom = 0.05  
 +
nCoins = round (amount/denom)
 +
rAmount = nCoins star denom
  
 
|-
 
|-
 
| 7:01
 
| 7:01
| நாம் காணும்படி இந்த உதாரணத்தில் code என்ன செய்கிறது என்பதை சுலபமாக புரிகிறது.
+
|இந்த உதாரணத்தில் code என்ன செய்கிறது என்பதை சுலபமாக புரிகிறது.
  
 
|-
 
|-
Line 288: Line 291:
 
|-
 
|-
 
| 7:26
 
| 7:26
| மேலும் code எழுதும் போது பின் வருவனவற்றை நினைவில் வைக்க வேண்டும்.
+
| மேலும் code எழுதுகையில் நினைவில் வைக்க வேண்டியவை....
  
 
|-
 
|-
Line 296: Line 299:
 
|-
 
|-
 
| 7:33
 
| 7:33
| 2. ஒரு லைனுக்கு 79 characters மட்டும், ஆனால் readability முதலில் வரவேண்டும்.
+
| 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 க்கு பிறகும் whitespace கள் இருக்க வேண்டும்.
+
| 6.  operator களை சுற்றியும்.... மற்றும் punctuation க்கு பிறகும் ... whitespace கள் இருக்க வேண்டும்.
  
 
|-
 
|-
 
| 8:00
 
| 8:00
|  video வை இங்கே நிறுத்தி பயிற்சியை செய்து முடித்து பின் தொடரவும்.
+
|  video வை நிறுத்தி பயிற்சியை முடித்த பின் தொடரவும்.
  
 
|-
 
|-
Line 332: Line 335:
 
|-
 
|-
 
| 8:15
 
| 8:15
| As நீங்கள் saw, this will help enormously towards making our program more readable.
+
| நீங்கள் காண்பது போல, இது ப்ரோக்ராமை படிக்க மிகவும் உதவும்.
  
 
|-
 
|-
 
| 8:24
 
| 8:24
| இப்போது நாம் handling errors மற்றும் exceptions க்கு போகலாம்.
+
| இப்போது handling errors மற்றும் exception களுக்கு போகலாம்.
  
 
|-
 
|-
Line 345: Line 348:
 
|8:30
 
|8:30
 
|ஆகவே type செய்க: ipython
 
|ஆகவே type செய்க: ipython
while True print in quotes Hello world
+
while True print within quotes Hello world
  
 
|-
 
|-
 
|  8:45
 
|  8:45
| நாம் இதை interpreter முயற்சி செய்தால் என்ன கிடைக்கிறது?
+
| இதை interpreter இல் முயற்சி செய்தால் என்ன கிடைக்கிறது?
  
 
|-
 
|-
Line 357: Line 360:
 
|-
 
|-
 
| 8:52
 
| 8:52
| Syntax error எனபன நாம் programming language rule களை கடைபிடிக்காத போது எழுவன.
+
| Syntax error என்பன …. நாம் programming language rule களை கடைபிடிக்காத போது எழுவன.
  
 
|-
 
|-
Line 365: Line 368:
 
|-
 
|-
 
|9:02
 
|9:02
|Typing 1 slash 0
+
|டைப் செய்க 1 slash 0
  
 
|-
 
|-
Line 373: Line 376:
 
|-
 
|-
 
| 9:13
 
| 9:13
| இப்படியாக python ஒரு <tt>ZeroDivisionError</tt> எனும் ஒரு exception ஐ திருப்புகிறது.
+
| இப்படி python ஒரு ZeroDivisionError எனும் ஒரு exception ஐ திருப்புகிறது.
  
 
|-
 
|-
Line 381: Line 384:
 
|-
 
|-
 
| 9:21
 
| 9:21
| ஏன் மற்றும் எப்படி நாம் Exception நம் program களில் பயன்படுத்தலாம் என்று பார்க்கலாம்
+
| ஏன் மற்றும் எப்படி Exception களை நம் program களில் பயன்படுத்தலாம் என்று பார்க்கலாம்
  
 
|-
 
|-
Line 398: Line 401:
 
|-
 
|-
 
| 10:10
 
| 10:10
| நீங்கள் கவனித்தால் நீங்கள் இந்த program ஐ இயக்கி non-numeric input ஐ கொடுத்தால் 'ValueError' Exception கிடைக்கிறது.
+
| கவனித்தால் இந்த program ஐ இயக்கி non-numeric input ஐ கொடுத்தால் 'ValueError' Exception கிடைக்கிறது.
  
 
|-
 
|-
 
| 10:21
 
| 10:21
| ஆகவே இப்போது நாம் இந்த exception ஐ 'catch' செய்து இதை கையாள code எழுதலாம்.
+
| ஆகவே இந்த exception ஐ 'catch' செய்து இதை கையாள code எழுதலாம்.
  
 
|-
 
|-
 
| 10:25
 
| 10:25
| இதற்கு நமக்கு python இல் try and except clause உள்ளது.
+
| இதற்கு python இல் try and except clause உள்ளது.
  
 
|-
 
|-
 
| 10:29
 
| 10:29
நம் முந்தைய code ஐ கொஞ்சம் மாற்றலாம்.
+
|  முந்தைய code ஐ கொஞ்சம் மாற்றலாம்.
  
 
|-
 
|-
 
|10:33
 
|10:33
|ஆகவே type செய்க: a = raw underscore input then
+
| 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 <tt>try</tt> block க்கின் உள் இருக்கும் code ஐ இயக்க முயல்கிறது. ஆனால் தோல்வியடைந்தால் <tt>except</tt> block க்கின் உள் இருக்கும் code ஐ execute செய்கிறது.
+
| இந்த piece of code இல் python try block க்கின் உள் இருக்கும் code ஐ இயக்க முயல்கிறது. ஆனால் தோல்வியடைந்தால் except block க்கின் உள் இருக்கும் code ஐ execute செய்கிறது.
  
 
|-
 
|-
 
| 11:23
 
| 11:23
|நம் conversion ஐ integer code க்கு இயக்குகையில் முந்தைய example இல் நாம் ஒரு problem ஐ சந்தித்தோம்.  
+
|நம் conversion ஐ integer code க்கு இயக்குகையில்... முந்தைய example இல் ... ஒரு problem ஐ சந்தித்தோம்.  
  
 
|-
 
|-
 
| 11:31
 
| 11:31
| நாம் எது அந்த error ஐ உருவாக்கியது என்று கண்டு[இடித்தோம்; பின் அதற்கு ஒரு solution ஐ உருவாக்கினோம்.
+
| எது அந்த error ஐ உருவாக்கியது என்று கண்டுபிடித்து,  அதற்கு solution ஐ உருவாக்கினோம்.
  
 
|-
 
|-
 
| 11:36
 
| 11:36
| இந்த முழு process debugging எனப்படும்.
+
| இந்த முழு process.. debugging எனப்படும்.
  
 
|-
 
|-
 
| 11:38
 
| 11:38
| இந்த படத்தைப் பார்த்து ஒருவர் debugging process அறியலாம்.
+
| இந்த படத்தைப் கண்டு ஒருவர் debugging process அறியலாம்.
  
 
|-
 
|-
 
| 11:42
 
| 11:42
|  debugging process இல் நாம் error ஐ தருவது எது என்று ஒரு ஊகம் செய்தோம்.
+
|  debugging process இல் error ஐ தருவது எது என்று ஒரு ஊகம் செய்தோம்.
  
 
|-
 
|-
Line 452: Line 455:
 
|-
 
|-
 
| 11:50
 
| 11:50
| மற்றும் அதன் result ஐ ஒட்டி ஊகத்தை மீன்டும் செய்வோம்.
+
| மற்றும் அதன் result ஐ ஒட்டி ஊகத்தை மீண்டும் செய்வோம்.
  
 
|-
 
|-
Line 460: Line 463:
 
|-
 
|-
 
| 11:57
 
| 11:57
| உருவாக்க a file mymodule.py மற்றும் add the following code
+
| mymodule.py என ஒரு பைல் உருவாக்கி பின் வரும் code ஐ சேர்க்கவும்.
  
 
|-
 
|-
Line 474: Line 477:
 
|-
 
|-
 
|12:16
 
|12:16
| இப்போது இந்த code ஐ ipython interpreter இல் இயக்கிப் பார்க்கலாம்.
+
| இந்த code ஐ ipython interpreter இல் இயக்கிப் பார்க்கலாம்.
  
 
|-
 
|-
 
|12:19
 
|12:19
| நாம் முதலில் file ஐ import செய்ய வேண்டும். type செய்க: import mymodule
+
| முதலில் file ஐ import செய்ய வேண்டும். type செய்க: import mymodule
  
 
|-
 
|-
Line 486: Line 489:
 
|-
 
|-
 
| 12:36
 
| 12:36
| Interpreter நமக்கு ஒரு error ஐ தருகிறது. ஏனென்றால் spam ஐ define செய்யவில்லை.
+
| Interpreter நமக்கு error ஐ தருகிறது. ஏனென்றால் spam ஐ define செய்யவில்லை.
  
 
|-
 
|-
Line 538: Line 541:
 
|-
 
|-
 
| 13:32
 
| 13:32
| 5. <tt>try</tt> மற்றும் <tt>except</tt> மூலம் exception களை Handle செய்தல்.
+
| 5. try மற்றும் except மூலம் exception களை Handle செய்தல்.
  
 
|-
 
|-
 
| 13:35
 
| 13:35
| 6. ipythonஇல் <tt>percentage debug</tt> ஐ debugging க்கு பயன்படுத்துதல்  
+
| 6. ipythonஇல் percentage debug ஐ debugging க்கு பயன்படுத்துதல்  
  
 
|-
 
|-
 
| 13:40
 
| 13:40
| நீங்கள் தீர்வு காண இதோ சில self assessment கேள்விகள்  
+
| தீர்வு காண சில சுயப் பரிசோதனைக் கேள்விகள்  
  
 
|-
 
|-
Line 567: Line 570:
 
|-
 
|-
 
| 14:01
 
| 14:01
| 1. standalone வகையில் python script களை இயக்க பயன்படும் idiom என்ன?
+
| 3. standalone வகையில் python script களை இயக்க பயன்படும் idiom என்ன?
  
 
|-
 
|-
Line 579: Line 582:
 
|-
 
|-
 
| 14:19
 
| 14:19
| 2. நாம் Modula debug என்பதால் debugger ஐ ipython இல் துவக்கலாம்.
+
| 2. Modula debug என்பதால் debugger ஐ ipython இல் துவக்கலாம்.
  
 
|-
 
|-
 
| 14:25
 
| 14:25
| 1.standalone வகையில் python script களை இயக்க பயன்படும் idiom  <tt>if  underscore  underscore name underscore  underscore  == in single quotes underscore  underscore main underscore  underscore  colon</tt>
+
| 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 லில் நாம் கற்க போவது
  1. software testing ஐ புரிந்து கொள்ளுதல்.
  2. functionality க்கு simple functions ஐ சோதித்தல்.
  3. test களை Automate செய்வது.
  4. coding style இன் தேவையை புரிந்து கொள்ளுதல்.
  5. Python Community, follow செய்யும் சில standard களை கற்றல்.
  6. Errors மற்றும் Exceptions ஐ Handle செய்தல்.
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 என்ன?
    • two space identation
    • three space identation
    • four Space Indentation
    • no Indentation
13:53 2. ipython இல் நீங்கள் debugger ஐ start செய்வது எப்படி?
      • debug
      • Modula debug
      • Modula debugger
      • start debugger
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 நன்றி!

Contributors and Content Editors

Priyacst, Sanmugam