Sunday, July 19th, 2009
Elements and Concepts - A brief overview
Download PDF version of the whole document. You can browse the article online but I encourage the download of the PDF since it is written with accuracy.
Introduction
This document contains some basic concepts and definitions about software testing. It has been written for studying a part of the Software Engineering Project course at my University. It is composed by a summary of the intersection of more than 10 different sources, all of which are cited. If you feel that some contents of this publication belong to your intellectual property and it is not cited, please contact the author who is willing to correct any mistake.
The first part of the paper focuses on the definition of the most important key aspects of software testing. Then some information about input partitioning are given. What follows is a research about code coverage and two useful and famous tools, Control-flow coverage and Data-flow analysis. A complete example on using those tools is then given. The second half of the document also contains the definition of the most important software testing practices.
The goal of this tiny document is to clarify key terms and therefore become a base start for the reader to go in deep with the interested topics. Another goal is to give a simple but clear example about data flow analysis, as I realized that not all the people understand the examples around the Net.
Software Testing
Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs. It can also be stated as the process of validating and verifying that a software program/application/product meets the business and technical requirements that guided its design and development, so that it works as expected and can be implemented with the same characteristics.
(more...)
Tags: 2009, Analysis, aria, beginning, brief introduction to software testing, bugs, CFG, change, code, CONNECT, contact, control flow graph, daniel, data flow analysis, data flow testing, definitions software testing, Design, DFG, document, Download, elements of, fix, functionality, graziotin, how, how-to, howto, HTTP, intel, introduction to software testing, java, javascript, Jeff, list, memory, mind, models, OSI, page, pageTracker, paper, PDF, PNG, POST, pro, Programming, project, projects, publication, PUT, reference, repository, research, rest, Serv, set, sid, sito, software engineering, software engineering project, software testing, source, source code, summary, Text, tutorial, university, URI, variables, version, Wiki, wikipedia
Posted in Activism?, Free*, Programming | No Comments »
Tuesday, June 16th, 2009
Like I did for Functional Programming, this post contains the mindmap that covers the basic elements of Aspect-Oriented Programming.
This is just a tiny summary of the most important points of AOP, and uses AspectJ in the examples.
Topics covered:
- Definition
- Response to Object-Oriented crosscutting concerns
- Aspects
- Advices
- Inter-Type Declarations
- Join Point Model: Join Points, Pointcuts, Advices
- AspectJ tiny example
You can reach a browsable HTML export of the mindmap
You can download a PNG export of the MindMap.
You can download Freemind sources of the MindMap
Tags: 2009, aspect-oriented programming, Download, elements of, freemind, functional programming, HTTP, java, javascript, mind, mindmap, page, pageTracker, PNG, POST, pro, Programming, programming paradigms, source, summary, Wiki, wikipedia
Posted in Programming, Unibz | No Comments »
Saturday, February 23rd, 2008
UPDATE 17:19: it seems that the program I implemented today uses a kind of Bubble Sort algorithm, give it a try, it's quite interesting!
After 3 long days studying C, I think I've assimilated a good knowledge base for the incoming semester.
So there is a tiny C program that sorts the elements of a given integer array, using pointers:
Download the source code (well commented)
#include <stdio.h>
void sortArray(int *firstElement, int *lastElement);
void swapArrayElements(int *firstElement, int *secondElement);
void printArray(int array[], int arraySize);
void sortArray(int *firstElement, int *lastElement){
int *currentElement = firstElement;
while (firstElement != lastElement){
while(currentElement != lastElement){
if(*currentElement < *firstElement){
swapArrayElements(currentElement,firstElement);
}
currentElement++;
}
firstElement++;
currentElement = firstElement;
}
}
void swapArrayElements(int *firstElement, int *secondElement){
int tmp;
tmp = *firstElement;
*firstElement = *secondElement;
*secondElement = tmp;
}
void printArray(int array[], int arraySize){
int counter = 0;
while(counter<arraySize){
printf("%d\n",array[counter]);
counter++;
}
}
int main (int argc, char *argv[]){
int array[] = {2929393,1,23239,-66,15,4,3,0,112,45,3,1000,19};
int arraySize = sizeof(array)/sizeof(array[0]);
int *firstElement = &array[0];
int *lastElement = firstElement + arraySize;
printf("-------------------------------------------------\n");
printf("Elements of the array:\n");
printf("-------------------------------------------------\n");
printArray(array,arraySize);
printf("-------------------------------------------------\n");
sortArray(firstElement,lastElement);
printf("Elements sorted:\n");
printf("-------------------------------------------------\n");
printArray(array,arraySize);
printf("-------------------------------------------------\n");
} |
A better program should ask the user to input the array elements, and a better algorithm should not scan every array element n times, where n is the number of the elements.
But I wrote it just for fun and for learning C pointers. I will learn to do better in the Data Structures and Algorithms course in the next semester
Tags: algorithms, C language, code, data structures, Download, elements of, HTTP, java, javascript, language, page, pageTracker, php, pointer, pointers, pro, PUT, rest, source, source code, tiny c, Unibz, Wiki, wikipedia
Posted in Programming | 3 Comments »
Sunday, June 10th, 2007
This document contains some precious definitions about Introduction to Programming, with Java as programming language supported. All of these definitions do not come from my mind, I just wrote a summary of the exhaustive teaching material of prof. Diego Calvanese of the free University of Bolzano. You can read his whole work at this url: http://www.inf.unibz.it/~calvanese/teaching/06-07-ip/lecture-notes/
I hope you will find the following interesting and useful. Enjoy it!
(more...)
Tags: account, aria, cannot, Client, code, document, Download, elements of, HEAD, HTTP, java, javascript, language, life, link, list, memory, mind, OSI, page, pageTracker, PDF, php, pointer, position, pro, Programming, PUT, reference, rest, Serv, set, sid, summary, Text, Unibz, university, URI, url, variables, version
Posted in Activism?, Unibz | 3 Comments »