This is an old revision of the document!
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:
This lecture looks at basic things every developer can do to maintain quality.
o Then you move on to the second function…
A unit test exercises one component in isolation
An integration test exercises the whole system
Regression testing is the practice of rerunning tests to check that the code still works
Any test can have one of three outcomes:
o Don't know anything about the system being tested
A specification is something that tells you how to classify a test's result
How to write tests so that:
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
Read the following code and test!
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(); }
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(); }
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; }
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); } }
#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); }
The make utility
If you run
make
this program will look for a file named makefile in your directory, and then execute it. If you have several makefiles, then you can execute them with the command:
make -f MyMakefile
There are several other switches to the make utility. For more info, man make.