A program is said to be in active state whenever there is some data flow in the program. Without having the data flowing around the whole program, it would not have been possible for the software systems or application to do any thing.
Hence, we conclude that data flow is an extremely important aspect of any program since it is what that keeps a program going on. This data flow also needs to be tested like any other aspect of the software system or application and therefore, this whole article is dedicated to the cause of the data flow testing.
What is Data Flow Testing?
- Data flow testing technique has been categorized under the white box testing techniques since the tester needs to have an in depth knowledge of the whole software system or application.
- Data flow testing cannot be carried out without a control flow graph since without that graph the data flow testing won’t be able to explore any of the unreasonable or unexpected things i.e., anomalies that can influence the data of the software system or application.
- Taking these anomalies in to consideration, it helps in defining the strategies for the selection of the test paths that play a great role in filling up the gaps between the branch testing or statement testing and the complete path testing.
- Data flow testing implements a whole lot of testing strategies chosen in the above mentioned way for exploring the events regarding the use of the data that occurs in a sequential way.
- It is a way determining that whether or not every data object has been initialized before it used and whether or not all the data objects are used at least once during the execution of the program.
Classification of Data types
The data objects have been classified in to various types based up on their use:
- Defined, created and initialized data objects denoted by d.
- Killed, undefined and released data objects denoted by k.
- Used data objects in predicates, calculations etc, denoted by u.
Critical Elements for Data Flow Testing
- The critical elements for the data flow testing are the arrays and the pointers.
- These elements should not be under estimated since they may fail to include some DU pairs and also they should not be over estimated since then unfeasible test obligations might be introduced.
- The under estimation is preferable over the over estimation since over estimation is causes more expense to the organization.
- Data flow testing is also aimed at distinguishing between the important and not so important paths.
- During the data flow testing many a times pragmatic compromises are needed to make since there exist so many unpredictable properties and exponential blow up of the paths.
Anomaly Detection under Data Flow Testing
There are various types of anomaly detection that are carried under the data flow testing:
1. Static anomaly detection
This analysis is carried out on the source code of the software program without the actual execution.
2. Dynamic anomaly detection
This is just the opposite of the static testing i.e., it is carried out on a running program.
3. Anomaly detection via compilers
Such detection are possible due to the static analysis. Certain compilers like the optimizing compilers can even detect the dead variables. The static analysis itself is incapable of detecting the dead variables since they are unreachable and thus unsolvable in the general case.
Other factors:
There are several other factors that play a great role in the data flow testing and they are:
1. Data flow modelling based on control flow graph
2. Simple path segments
3. Loop free path segments
4. DU path segments
5. Def – use associations
6. Definition clear paths
7. Data flow testing strategies
Wednesday, March 21, 2012
Data flow testing is a white box testing technique - Explain?
Posted by
Sunflower
at
3/21/2012 11:51:00 PM
0
comments
Labels: Anomaly, Application, Create, Critical, Data, Data Flow Testing, Data objects, In-depth, Internal, Paths, program, Software Systems, Strategy, Techniques, Test cases, Tester, White box testing
|
| Subscribe by Email |
|
Wednesday, August 24, 2011
User Interface Analysis and Design - Testing Interface Mechanisms
There are interface mechanisms through which the interaction between the user and the web application occurs. There are some testing interface mechanisms described below:
- Links are tested to ensure that proper content object or function is reached. External link testing should occur throughout the life of the web application. Links within content object are also tested. Part of a support strategy should be regularly scheduled link tests.
- Client side scripting should be repeated whenever a new version of a popular browser is released. Compatibility testing should be done to ensure that the scripting language that is chosen is working properly in environmental configuration that support the web application.
- Forms testing is done at two levels:
At macroscopic level, tests ensure that labels correctly identify fields within the form; server is receiving the information that is contained within the form; defaults are used when user is not selecting from pull down menu or set of buttons; browser functions do not corrupt data and error checking script is working properly.
At targeted level, tests ensure that form fields are of proper width and data types; appropriate pull-down menus option are specified; tab key is performing in the right manner and browser auto fill features do not lead to data input errors.
- Dynamic HTML in web applications are tested to ensure that the dynamic display is working fine.
- Pop up windows are tested to ensure that a pop up window is properly positioned and sized; the design of pop up window is consistent with the aesthetic design of interface; scroll bars are working properly.
- Streaming Content is tested to ensure that they are up to date, properly displayed and restarted without difficulty.
- Cookies are tested at both server and client side. On server side, tests are conducted to ensure cookie is properly constructed and transmitted to client side. Proper persistence of cookie is tested to ensure that the expiration date is correct. On client side, tests are conducted to ensure whether web applications properly attaches existing cookies to specific request.
Posted by
Sunflower
at
8/24/2011 01:20:00 PM
0
comments
Labels: Analysis, Client side scripting, Content, Cookies, Data objects, Design, Dynamic HTML, Forms, Interface, Links, Mechanisms, User Interface, Web Applications, WebApps
|
| Subscribe by Email |
|
Monday, July 18, 2011
What are the different data modeling concepts?
Data model is a conceptual representation of data structures. The data structures consist of data objects, relationship between data objects and rules that govern these operations. Often, analysis modeling begins with data modeling.
The inputs of data model comes from the planning and analysis stage. There are two outputs of the data model. First is an entity relationship diagram and second is a data document. The goal of the data model is to make sure that the all data objects required by the database are completely and accurately represented.
The different concepts of data modeling are:
- Data Objects are a representation of any composite information that is processed by software. A data object can be an external entity, thing, occurrence, event, role, an organizational unit, place or a structure. The description of the data object includes data object and its attributes. A data object contains only data.
- Data Attributes name a data object, describe its characteristics and sometimes make reference to another object. One or more attributes must be identified as a key which acts as an identifier.
- Relationships indicate the manner in which data objects are connected to one another.
- Cardinality of a relationship is the actual number of related occurences for each of the two entities. It defines the maximum number of objects participating in relationship. It does not indicate whether a data object should participate in relationship or not.
- Modality of a relationship can be 0 or 1. It is 1 if an occurrence of relationship is must. It is 0 if an occurrence of relationship is optional.
Posted by
Sunflower
at
7/18/2011 01:18:00 PM
0
comments
Labels: Analysis Model, Attributes, Cardinality, Characteristics, Data, Data Modeling, Data objects, Data structure, Entity, ER diagram, Modality, Modeling, Objects, Relationships
|
| Subscribe by Email |
|