User Tools

Site Tools


software_carpentary2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

software_carpentary2 [2011/06/20 04:01]
medhamsh
software_carpentary2 [2018/03/24 11:13]
Line 1: Line 1:
-====== Quality Assurance ====== 
  
-  
-The more you invest in quality, the less time it takes to develop working software.\\ 
-Quality is not just testing\\ 
-Trying to improve the quality of software by doing more testing is like trying to lose weight by weighing yourself more often. (Steve McConnell)\\ 
- 
-Quality is: 
- 
-  * Designed in 
-  * Monitored and maintained through the whole software life cycle 
- 
-This lecture looks at basic things every developer can do to maintain quality. 
- 
-===== Limits to Testing ===== 
- 
-    * Suppose you have a function that compares two 7-digit phone numbers, and returns True if the first is greater than the second 
-    * 1072 possible inputs 
-    * At ten million tests per second, that's 155 days 
-    * If they'​re 7-character alphabetic strings, it's 254 years 
-          o Then you move on to the second function... 
-             * And how do you know that your tests are correct? 
-    * All a test can do is show that there may be a bug 
- 
-===== Nomenclature ===== 
- 
-A unit test exercises one component in isolation 
- 
-    * Developer-oriented:​ tests the program'​s internals 
- 
-An integration test exercises the whole system 
- 
-    * User-oriented:​ tests the software'​s overall behavior 
- 
-Regression testing is the practice of rerunning tests to check that the code still works 
- 
-    * I.e., make sure that today'​s changes haven'​t broken things that were working yesterday 
-    * Programs that don't have regression tests are difficult (sometimes impossible) to maintain 
- 
-===== Test results specifications ===== 
- 
-Any test can have one of three outcomes: 
- 
-    * Pass: the actual outcome matches the expected outcome 
-    * Fail: the actual outcome is different from what was expected 
-    * Error: something went wrong inside the test (i.e., the test contains a bug) 
-          o Don't know anything about the system being tested 
- 
-A specification is something that tells you how to classify a test's result 
- 
-    * You can't test without some sort of specification 
- 
- 
-===== Writing Tests ===== 
-How to write tests so that: 
-   * It's easy to add or change tests 
-  *  It's easy to see what's been tested, and what hasn't 
- 
-A test consists of a fixture, an action, and an expected result 
-          o A fixture is something that a test is run on 
-          o Can be as simple as a single value, or as complex as a networked database 
-Every test should be independent 
-          o I.e., the outcome of one test shouldn'​t depend on what happened in another test 
-          o Otherwise, faults in early tests can distort the results of later ones 
-So each test: 
-          o Creates a fresh instance of the fixture 
-          o Performs the operation 
-          o Checks and records the result 
- 
-Find the exercises at http://​software-carpentry.org/​3_0/​qa.html 
- 
-====== Reading Code ====== 
- 
-Read the following code and test! 
- 
-<​code>​ 
-void main() 
-{ 
-char str[40]; 
-int i,​flag=0,​len;​ 
-clrscr(); 
-printf("​\n Enter A string : "); 
-gets(str); 
-len=strlen(str);​ 
-for(i=0;​i<​(len/​2);​i++) 
-{ 
-if(str[i]!=str[len-1-i]) 
-{ 
-flag=1; 
-break; 
-} 
-} 
-if(flag==1) 
-{ 
-printf("​ \n The string is not palindrome"​);​ 
-} 
-if(flag==0) 
-printf("​\n String is palindrome"​);​ 
-getch(); 
- 
-</​code>​ 
- 
-<​code>​ 
-void main() 
-{ 
-char main_str[40],​str[40];​ 
-int i,​j,​len1,​len2;​ 
-clrscr(); 
-printf("​\n Enter the main String :"); 
-gets(main_str);​ 
-printf("​\n enter the String you wanna search : "); 
-gets(str); 
-len1=strlen(main_str);​ 
-len2=strlen(str);​ 
-i=0; 
-j=0; 
-while(str[i]!='​\0'​) 
-{ 
-while(main_str[j]!='​\0'​) 
-{ 
-if(str[i]==main_str[j]) 
-{ 
-i++; 
-if(len2==i) 
-{ 
-j=j-len2+2; 
-printf("​\n found at %d location",​j);​ 
-break; 
-} 
- 
-}//if 
-else 
-j++; 
- 
-}//inner while 
-if(j==len1) 
-{ 
-printf("​\n not Found"​);​ 
-break; 
-}//if 
- 
-}//outer while 
-getch(); 
-} 
-</​code>​ 
- 
-<​code>​ 
-void main() 
-{ 
-int a,b; 
-clrscr(); 
-printf("​\n enter First Number :"); 
-scanf("​%d",&​a);​ 
-printf("​\n enter Second Number :"); 
-scanf("​%d",&​b);​ 
-swap(&​a,&​b);​ 
-printf("​\n first Number is : %d",​a);​ 
-printf("​\n second Number is : %d",​b);​ 
-getch(); 
-} 
- 
-swap(int *a,int *b) 
-{ 
-*a=*a-*b; 
-*b=*a+*b; 
-*a=*b-*a; 
- 
-} 
- 
-</​code>​ 
- 
-<​code>​ 
-main() 
-{ 
-int temps[31]; 
-int index,​total;​ 
-float average,​celsius;​ 
-total=0.0; 
-for(index=0;​index<​31;​index++) 
-{ 
-printf("​enter temperature #​%d:",​index);​ 
-scanf("​%d",&​temps[index]);​ 
-} 
-for(index=0;​index<​31;​index++) 
-total+=temps[index];​ 
-average=total/​31.0 
-printf("​average is:​%f\n\n",​ average); 
-puts9"​fahrenheit\tcelsius\n"​);​ 
-for(index=0;​index<​31;​index++) 
-{ 
-celsius=(5.0/​9.0)*(temps[index]-32);​ 
-printf("​%d\t\t%6.2f\n",​temps[index],​celsius);​ 
-} 
-} 
-</​code>​ 
- 
-<​code>​ 
-#include "​stdio.h"​ 
-main() 
-{ 
-FILE*fp; 
-int letter; 
-if((fp=fopen("​MYFILE","​r"​))==NULL) 
-{ 
-puts("​Cannot oepn the file"​);​ 
-exit(); 
-} 
-while((letter=fgetc(fp)) !=eof) 
-printf("​%c",​letter);​ 
-fclose(fp); 
-} 
-</​code>​ 
software_carpentary2.txt ยท Last modified: 2018/03/24 11:13 (external edit)