Académique Documents
Professionnel Documents
Culture Documents
Over the last decade, the extraordinary growth in the World Wide Web has become widespread
throughout business and industry. There are a number of companies who have used and are still
using web technologies to establish or incorporate their mission-critical applications. As web
applications get more and more complex, hence qa testing becomes not only crucial, but also
challenging.
Basically, data flow testing is a white box testing approach. Herein, we test the variable definitions
and their use in the program to find out anomalies. Test cases are created based on the data flow
within the code and the system. By performing data flow testing, transaction and greater, test
coverage can be achieved. Usually, this type of testing is applied on the lowest level. At system and
integrated level tests, it also considers the risk analysis which drives the key permutations.
The main strategy of data flow testing is based on selecting paths through the programs control flow
in order to explore sequences of events related to the status of data objects. The tester has to cover
enough paths to ensure that every data object has been initialized before its use and all defined
objects have been used at least once. Data objects containing data values have a distinct life cycle.
They are created, used, and then killed.
The patterns of data usage are characterized by data-flow anomalies, which may generate some
improper or incorrect implementation of the code. These anomalies have been noted to be not only
dangerous, but also suspicious, which denotes that slip-ups or miscalculations can happen. There are
two techniques that are widely used, in this space:
1.Static Data Flow Testing
2.Dynamic Data Flow Testing
Static data flow testing is done on source code without really executing it. This approach helps in
uncovering bugs like syntax errors. While this is a useful technique, this alone will not suffice. QA
Testing for Static data-flow is not appropriate to use as it might collapse in certain scenarios where
the state of data variable cannot be determined by examining the code.
As web applications get more complex leading to difficult control flows, it may be possible at times
that certain paths can never be executed. To make this clearer, lets take an example of an array, i.e.
collection of data elements that share the same name and type. Arrays can be demarcated and
demolished as a group, but a few distinctive elements of array are used separately. Static data flow
testing cannot ascertain if the define-use-kill guidelines have been charted appropriately unless
every single element is taken into account individually.
The main goal of dynamic data-flow testing is to expose the possible number of errors while
implementing the program code. Test cases are developed to trace every definition to each of its use
where every use is traced to each of its definition. There are so many strategies that are engaged for
the creation of test cases.
Some such strategies from qa testing point of view in Data Flow Testing are as outlined below:
All Definitions: Every definition of every variable be covered by at least one use of that variable, be
Knowledge Sharing Team at QA InfoTech is responsible for research on new tools and technologies
for effective Software testing services across all industry verticals. The team also builds a valuable
repository of content based on its experience that can be shared with QA fraternity.
QA InfoTech (an ISO 9001:2008 & CMMI III certified) is an independent Software Quality Assurance
and Testing Organization with five testing Centers of Excellence in the United States and India. It
offers QA Testing services ranging from functional testing to globalization testing, automation
frameworks using open source technologies, performance testing, security testing, usability testing,
content testing and much more. The company has domain expertise, in several industries including
education, publishing, retail, cross-industry, mobile, government, gaming, banking and finance and
healthcare.