Subscribe by Email


Showing posts with label Functionality. Show all posts
Showing posts with label Functionality. Show all posts

Sunday, September 15, 2013

What is inter-network routing?

In this article we shall discuss about inter-network routing. Before moving to that there are certain terms with which you should be familiar:
Ø  End systems: The ISO (the international standards of organization) defines the end systems as the network elements that do not have the ability of forwarding the packets across the networks. Sometimes the term host is used to refer to the end systems.
Ø  Intermediate systems: These are the network elements that have the ability of forwarding the packets across the network. Most common examples are routers, switches, bridges and so on.
Ø  Network: It can be defined as a part of the inter-network infrastructure encompassing various elements including hubs, repeaters, bridges and so on. The networks are bounded by the intermediate systems.
Ø Router: This is one of the intermediate systems that is used for connecting various networks with each other. It might support one protocol (router) or many protocols (multi-protocol router). Its hardware part is optimized especially for performing routing. The software part is responsible for carrying out the routing and takes care of the routing tables.
Apart from these devices, there are 3 types of addresses involved in inter-network routing:
Ø  The inter-network address: The host address and the network address are combined together to form this address. This is used for unique identification of a host over the inter-network.
Ø The host address or host ID: This ID might be assigned by the administrator or might be simply the physical address of the host. It is used for the unique identification of the host on its network.
Ø  The network address or network ID: This is address of a network for identifying it in an inter-network.

All the data packets consist of a network layer header. This network layer header consists of the following when the packet is transmitted from one host to another:
ØThe address of the source inter-network: This address combines the address of the source host and the source network.
ØThe address of the destination inter-network: This address combines the address of the destination host and the destination network.
ØThe hop count: This usually begins at zero and is numerically incremented when the packet crosses a router. Or in the opposite case it might be assigned some maximum value which might be decremented on reaching a router. The purpose of using the hop count is to make sure that the packet does not keeps on circulating endlessly in the network.


- For inter-network routing, two things have to be known.
- Firstly, how do you reach other routers which lie in the same network and secondly, how do you reach other routers which lie in other networks? 
- The answer to the first question is easy as it is the common routing problem among two hosts residing over the same network. 
- This routing is handled by the interior gateway protocol and it is different for different networks since only local routing info is required. 
- In this case, the commonly used protocol is the open shortest path first or OSPF protocol. 
- The routing between two different networks is performed using the exterior gateway protocol. 
- This is actually the problem of inter-network routing. 
- Here, the commonly used protocol is the BGP or the border gateway protocol. 
- The graph for inter-network routing is quite different from the one that is used in the network routing. 
- This is so because the routers which lie in the same network can be thought of as being directly connected to one another for routing across inter-network. - All the networks in an inter-network function as though they are one large unit. 


Wednesday, May 22, 2013

What are Address Binding, Dynamic Loading and Dynamic Linking?

In this article we shall discuss about three interrelated concepts namely address binding, dynamic loading and dynamic linking.

1. Address Binding: 
- There are two types of addresses for the computer memory. 
- These are called the physical address and the logical address. 
- A physical memory location is allocated to a logical pointer by address binding process.
- This is actually nothing but associating the physical address and the logical address with each other. 
- Sometimes logical address is also referred to as the virtual address. 
- This concept is an important part of the memory management. 
- Operating system is responsible for carrying out address binding on behalf of the applications and programs that need an access to the memory. 
- A program cannot be executed without bringing it to the main memory. 
- The instructions of the program have to be bound to right address spaces in the physical memory. 
- Address binding is simply a scheme for performing this job. 
- It can be thought of as something similar to address mapping. 
- Address binding can be carried out at any of the following times:
Ø  Compile time
Ø  Loading time
Ø  Execution time

- In execution time binding, whenever the program requires access to memory, it has to go through a register called the relocation register and is similar to the base register. 
- Then the offset is added. 
- But in binding during the loading time, same thing is done but every time this register need not be evaluated. 
- The addresses are mapped at the time of loading the program in to the memory. 
- If there is a change in the base address, the whole program has to be reloaded.

2. Dynamic Loading: 
- This mechanism is very useful for a program as it helps it do the following things:
Ø  Loading library in to the main memory.
Ø  Retrieving the address of the variables and routines that are contained in the library.
Ø  Accessing those variables and executing those routines.
Ø  Unloading the library.
- Dynamic loading is very much different from the load time linking and static linking. 
- Dynamic loading allows a system to start up even of the libraries are absent. - It also helps in discovering the absent libraries and then gaining the additional functionality. 
- Dynamic loading is a very transparent process since it is the operating system that handles it. 
- Main advantages are firstly, it helps in fixing the patches at once without having the need for re-linking them and secondly, it provides protection to the libraries against modification that is not authorized. 
Dynamic loading find its major use in the implementation of the software plugins.
- It is also used in the implementation of the computer programs where requisite functionality is supplied by the different libraries and user has the freedom to select the libraries he/ she wishes to provide.

3. Dynamic Linking: 
- This is an important part of the binding process. 
- The purpose of the dynamic linking is resolving the references or symbols and links to the library modules. 
- This process is carried out by a linker program. 
- This programs searches for a set of library modules in some given sequence. 
This process takes place during the creation of the executable file. 
- The resolved references may be addresses of the jump calls and the routines. - These may in different modules or in the main program.
- Dynamic linking resolves them in to relocatable address or fixed address through allocation of the memory to each of the memory segment of the referenced module. 


Sunday, March 24, 2013

What are types of artificial neural networks?


In this article we discuss the types of artificial neural networks. These models simulate the real life biological system of nervous system.
1. Feed forward neural network: 
- This is the simplest type of neural network that has been ever devised. 
- In these networks the information flow is unidirectional; therefore the data moves only in forward direction. 
- From input nodes data flows to the output nodes via hidden nodes (if there are any). 
- In this model there are no loops or cycles. 
- Different types of units can be used for constructing feed forward networks for example, McCulloch – pitts neurons.
- Continuous neurons are used in error back propagation along with the sigmoidal activation.
2. Radial basis function network: 
- For interpolating in a multi – dimensional space radial basis functions are the most powerful tools. 
- These functions can be built in to criterion of distance with respect to some center.
- These functions can be applied in the neural networks. 
- In these networks, sigmoidal hidden layer transfer characteristic can be replaced by these functions.
3. Kohonen self–organization network: 
- Un–supervised learning is performed with the help of self – organizing map or SOM. 
- This map was an invention of Teuvo Kohonen.
- Few neurons learn mapping points in the input space that could not coordinate in the output space. 
- The dimensions and topology of the input space can be different from those of the output space. SOM makes an attempt for preserving these.
4. Learning vector quantization or LVQ: 
- This can also be considered as neural network architecture. 
- This one also was a suggestion of Teuvo Kohonen.  
- In these prototypical representatives are parameterized along with two important things namely, a classification scheme based - up on distance and a distance measure.
5. Recurrent neural network: 
- These networks are somewhat contrary to the feed forward networks. 
- They offer a bi–directional flow of data.
- On a feed forward network data is propagated linearly from input to output. 
- Data from later stages of processing is also transferred to its earlier stages by this network. 
- Sometimes these also double up as the general sequence processors. 
- Recurrent neural networks have a number of types as mentioned below:
Ø  Fully recurrent network
Ø  Hopfield network
Ø  Boltzmann machine
Ø  Simple recurrent networks
Ø  Echo state network
Ø  Long short term memory network
Ø  Bi – directional RNN
Ø  Hierarchical RNN
Ø  Stochastic neural networks
6. Modular neural networks: 
- As per the studies have shown that human brain works actually as a collection of several small networks rather than as just one huge network, this ultimately helped in realizing the modular neural networks where smaller networks cooperate in solving a problem. 
- Modular networks are also of many types such as:
Ø  Committee of machines: Different networks that work together on a given problem are collectively termed as the committee of machines. The result achieved through this kind of networking is quite better than what is achieved with the others. The result is highly stabilized.
Ø  Associative neural network or ASNN: This is an extension of the previous one. And extends a little beyond the weighted average of various models. This one is a combined form of the k- nearest neighbor technique (kNN) and the feed forward neural networks. Its memory is coincident with that of the training set.
7. Physical neural network: 
- It consists of some resistance material that is electrically adjustable and capable of simulating the artificial synapses.
There are other types of ANNs that do not fall in any of the above categories:
Ø  Holographic associative memory
Ø  Instantaneously trained networks
Ø  Spiking neural networks
Ø  Dynamic neural networks
Ø  Cascading neural networks
Ø  Neuro – fuzzy networks
Ø  Compositional pattern producing networks
Ø  One – shot associative memory


Thursday, March 21, 2013

What are principles of autonomic networking?


The complexity, dynamism, heterogeneity and so on are on ever rise. All these factors are making the infrastructure of our network insecure, brittle and un – manageable. Today’s world is so dependent on networking that its security and management cannot be risked. In terms of networking, we call this the ‘autonomic networking’. 
The goal of building such systems is to realize such network systems that have capability of managing themselves as per the high level guidance provided by the humans. But meeting this goal calls for a number of scientific advances and newer technologies.

Principles of Autonomic Networking

A number of principles, paradigms and application designs need to be considered.

Compartmentalization: This is a structure having extensive flexibility. The makers of autonomic systems prefer this instead of a layering approach. This is the first target of the autonomic networking.

Function re–composition: An architectural design has been envisioned that would provide highly dynamic, autonomic and flexible formation of the networks on a large – scale. In such architecture, the functionality would be composed in a fashion that is autonomic.

Atomization: The functionality are broken down in to smaller atomic units. Maximum re - composition freedom is made possible by these atomic units.

Closed control loop: This is one of the fundamental concepts of the control theory. It is now also counted among the fundamental principles of the autonomic networking. This loop is known for controlling and maintaining the properties of the controlled system as per the desired bounds. The target parameters are constantly monitored within the desired bounds.

The human autonomic nervous system is what that inspires the autonomic computing paradigm. An autonomic computing paradigm must then have a mechanism by virtue of which it can change its behavior according to the change in various essential variables in the environment and bring it back itself in to the state of equilibrium. 
Survivability can be viewed in the terms of following in case of autonomic networking:
  1. Ability to protect itself
  2. Ability to recover from the faults
  3. Ability to reconfigure itself as per the environment changes.
  4. Ability to carry out its operation at an optimal limit.
The following two factors affect the equilibrium state of an autonomic network:
  1. The internal environment: This includes factors such as CPU utilization, excessive memory and so on.
  2. The external environment: This includes factors such as safety against external attacks etc.
There are 2 major requirements of an autonomic system:
  1. Sensor channels: These sensors are required for sensing the changes.
  2. Motor channels: These channels would help the system in reacting and overcoming the effects of the changes.
The changes that are sensed by the sensor are analyzed for determining the viability limits of the variables. If the variables are detected out of this limit, then the system plans what changes it should introduce in to the system to bring them in their limit, thus bringing back the system in to its equilibrium state. 


Friday, February 15, 2013

What are different Web Functional/Regression Test Tools?


As functional and regression testing is important for many software systems, the same way it is important for the web applications to undergo the functional and regression testing. At present we have a number of tools available for web functional/ regression testing.  

In this article we shall discuss many such tools available:

  1. ManageEngine QEngine: This tool is for functional testing and load testing of the web applications. This tool enables you to carry out GUI testing in minutes and below are some of its features:
Ø Portability: With this feature you can record scripts in windows and play them in linux without any need of recreation.
Ø  Scripting capabilities: These are simplified script creation, keyword driven testing, data – driven testing, object repository, Unicode support.
Ø  Playback options: It includes playback synchronization, chain scripts, multiple playback options etc.
Ø  Validation and verification: The tool comes with a rich library of built – in functions for constructing function calls for requirements such as dynamic property handling, database handling, and screen handling and so on.
Ø   AJAX testing
Ø  Reporting capabilities: The tool provides you with clear and powerful reports indicating the status of the execution of the test.

  1. SeleniumHQ: This tool has a number of smaller projects that combined to create a testing environment to suit your needs:
Ø  Selenium IDE: This one’s an add – on for firefox and can be used for replaying the tests in the same.
Ø  Selenium remote control: Web browsers can be controlled with this client/ server system located on either a local host or a remote one.
Ø  Selenium grid: This is the same as the previous one but can handle multiple servers at a time.
Ø  Selenium core: Testing system based on JavaScript.
Ø Further specific selenium projects have been developed for ruby, eclipse and rails.

  1. Rapise: It was developed by Inflectra inc. This tool has an extensible architecture and cross browser testing capabilities. It supports various versions of Mozilla Firefox, chrome, MS internet explorer and so on. The tool comes with built – in support for AJAX, YUI, GWT, AIR, Silverlight, flash/ flex etc. one can use this tool for carrying out keyword as well as data driven testing through excel spreadsheets. The tool identifies the objects based up on CSS and Xpath. For bitmaps, the tool comes with a built – in OCR (optical character recognition). It uses JavaScript for scripting purposes and therefore also has a JavaScript editor.
  2. funcUnit: This is an open source web application testing framework. The API is based up on JQuery. Almost all the modern browsers are supported on Linux and MAC. Selenium can also be used for executing the tests. It can simulate various user input events clicking, typing, and dragging the mouse and so one. 
  1. qUnit: Any JavaScript code that is generic can be tested by this tool. It is somewhat similar to the JUnit but operates up on JavaScript features. 
  1. EnvJS: This is a simulated browser environment and an open source tool whose code has been written in javascript. 
  1. QF – test: It has been developed by quality first software  as tool for cross  - platform testing and cross browser automation of the web applications. It can be used to test web applications based up on html, ajax, GWT, exTJS, richfaces, Qooxdoo, java and so on. The tool has got some small scale capabilities for test management, intuitive user interface, extensive documentation, capture/ playback mechanism, component recognition and so on. It can be used for handling both custom and complex GUI objects. It has got customizable reporting and integrated test debugger system. 
  1. Cloud testing service: This enables the cloud capabilities to be utilized while web testing. It has been developed by the cloud testing limited. Here, web functionality can be recorded via selenium IDE and a web browser. The scripts can be uploaded to the cloud testing website.




Monday, February 11, 2013

What smaller projects are contained in Watir projects?


About Watir

- Web application testing in Ruby often known as ‘watir’ belongs to the family of the open source family of tools for automation of the web browsers. 
- This tool is available under BSD license and consists of ruby libraries that can be used for automating the web browsers. 
- The tool possesses the ability for driving the web browsers such as Mozilla firefox, internet explorer, opera, safari and chrome. 
- Further, watir has been even made available in the form of RubyGems gem. 
- The credit for the primary development of this tool goes to Brett Pettichord and his colleague Paul Rogers.

Functionality of Watir

- The functionality of watir has been divided in to three main smaller projects. 
- Actually, watir consists of a number of smaller projects but we shall discuss the 3 major ones namely:
  1. Watir – classic
  2. Watir – webdriver
  3. Watirspec

About Water–classic

- This project of watir is based on the fact that the OLE (i.e., object linking and embedding) capabilities come in – built with the ruby package.
- With such capabilities it becomes easy for watir–classic to drive the browsers pro-grammatically.
- One thing to be noted about the water – classic is that its way of operation is quite different from the way the other HTTP based test tools operate. 
- The other HTTP based testing tools operate via the simulation of the browsers. 
- The web browsers are directly driven by the water – classic using the OLE protocol. 
- The implementation of this protocol is done over the COM (component object model) architecture.
- Inter-process communication is possible due to COM such as in IE and ruby. 
- Further, dynamic object creation as well as manipulation is also possible with such architecture. 
- This is termed as OLE automation by Microsoft. 
- The manipulating program has been termed as the automation controller. 
- Technically this can be explained as follows: The internet explorer serves as the server and caters to the automation objects and exposes their methods. The ruby program then serves as the client that carries out the manipulation of the automation objects. Water – classic can be put in to the gemfile or can be installed manually.

About Water–webdriver

 
- This project has been developed as a modern version of selenium based water API. 
- The selenium 2.0 has been taken to be the reference implementation of the specification of the webdriver.
- Selenium 2.0 is the selenium webdriver. 
- Water API has been implemented as a wrapper around the selenium webdriver by Jari Bakken.
- The selenium 2.0 is what from which the water – webdriver has been derived and has been built up on the html specifications. 
- This implies that the water webdriver always maintain compatibility with the world wide web consortium specifications that already exist. 
- Webdriver is quite an elegant way for using webdriver with ruby. 
- Ruby 1.9.3 is perfectly supported by the watir – webdriver but nonetheless it works well with its old versions also. 
- When you start with watir ruby will take your commands and the spath selectors are absent here. 
- Even though the xpath selectors are supported by watir, its API is so awesome that the need for using the xpaths is totally eliminated. 
- Using watir web driver increases your efficiency as well as productivity. 
- In addition to this, the quality of the scripts execution increases by a thousand times.

About Watirspec

- This is the third major project of watir and can be considered to be its API’s executable specification such as ruby has rubyspec. 
- The performance of watir is better with watirspec and also improves the compliance with the watir – webdriver. 


Sunday, February 10, 2013

Explain Watir (Web application testing in Ruby)?


Watir stands for Web application testing in Ruby and was developed as an open source that would provide Ruby libraries by Paul Rogers and Bret Pettichord. The software is licensed under BSD and contains all ruby libraries that would be required for the automation of the web browsers. The software is known to drive a number of web browsers namely:
  1. Internet explorer
  2. Mozilla firefox
  3. Chrome
  4. Opera
  5. Safari
The software has been made available especially for ruby as the ruby gems. Watir is comprised of several smaller projects which define its functionality:
  1. Watir–classic: Ruby has got built – in OLE capabilities that can be used by water classic for driving the IE pro grammatically. The way of operation of water classic is different than that of the other HTTP based based testing tools.
  2. Watirspec: This one is watir’s executable specification.
  3. Water–webdriver: The reference implementation of the web driver specification is the selenium 2.0. the roots of the water web driver can be traced to the HTML specification.
- This automated test tool uses ruby as the scripting language for driving the above mentioned web browsers. 
- You can call it a tool kit for developing effective automated tests and run them against the browsers. 
- Watir can be used for driving the web applications which can be looked up as HTML pages while browsing. 
- However, Watir is not known to work with the following:
  1. Active X plug – in components
  2. Java applets
  3. Macromedia flash and other plug – in applications.
- Before you use watir for your application you need to determine whether it will work for it or not. 
- To do so just right click on the object and check for the view source menu.
- If the HTML source for the object is available it can be well automated using watir otherwise not. 
- There are certain prerequisites for using watir which are that you need to have knowledge about the following:
  1. HTML
  2. Programming basics including simple control structures.
  3. Ruby: this is required if you put water to a really good use.
- Watir works well for all the windows platforms including windows 2000, server 2003, XP and vista and it can be run on versions 6 and 7 of internet explorer. 
- Using Ruby 1.8.5 – 24 or 1.8.6 – 26 is recommended. 
- For installing ruby and water you need to log on as the administrator. 
- There are two ways for installing watir:
  1. From behind a proxy and
  2. From behind a firewall
- The tests written using watir are quite easy to read as well as maintain and exhibit simplicity and flexibility.
- The way watir drives the web browsers is the same as done by people. 
- It performs clicking operations such as clicking on links and buttons, forms filling operations and so on. 
- Results are also checked by watir. 
- Ruby, like other programming languages provides your application with the ability to do the following:
  1. To connect to data bases
  2. To read from spreadsheets and data files
  3. To export the XML files
  4. To restructure your code so that it can be converted in to a reusable library.
- Watir is free open source tool and therefore no money expenditure in using it. 
- Ruby is a full featured modern programming language which lets watir support all the web applications no matter by what technology it has been developed. 
- Watir provides support to a number of browsers on different platforms. 
- Though the tool is quite powerful it is extremely simple and easy to use. 
- For using watir, it is recommended that you install the IE developer tool bar. 


Friday, February 8, 2013

What is TOSCA Test suite? Explain the architecture of TOSCA?


TOSCA test suite is another software tool in the line of tools for automated execution of the regression and functional testing. But what makes it different from the other tools in the same category is the TOSCA’s following features:
  1. Integrated test management
  2. Graphical user interface (GUI)
  3. A command line interface (CLI)
  4. Application programming interface (API)

History and Evolution of TOSCA

- The developer of TOSCA is TRICENTIS technology and consulting GmbH which is an Austrian company based in Vienna. 
- The year of 2011 saw the inclusion of TOSCA in magic quadrant’s report (developed by Gartner Inc.’s) as a visionary. 
- In year 2011 the TOSCA test suite were recognized as the second most widely used test automation tool by Ross report in New Zealand and Australia. 
- The tool was further recognized by the scientific community when it was presented at two important international conferences namely:
  1. Euromicro SEAA and
  2. IEEE ICST
- Since then TOSCA has been awarded a number of awards for its web and customer support. 
- TOSCA is software testing tool that serves purposes of numerous other tools such as:
  1. Test management tool
  2. Test design tool
  3. Test execution tool
  4. Data generation tool for regression and functional testing

Architecture of TOSCA

The architecture of TOSCA is composed of the following:
  1. TOSCA commander: This is the test execution tool of TOSCA which can be used for the creation, administration, execution and analyzation of the test cases.
  2. TOSCA wizard: This is the model building tool of TOSCA which can be used for building application model and storing related info in to modules that are essentially XML – GUI maps.
  3. TOSCA executor: This TOSCA tool is responsible for the execution of the test cases and displaying the results obtained in the TOSCA commander.
  4. TOSCA exchange portal: This TOSCA portal is the place where the exchange and use of the special modules, TOSCA commander components that have already been built and extensions by the customers takes place.
  5. TOSCA test repository: This has been made integrated by the TOSCA is responsible for holding the assets. A number of users can access the repository at the same time.

Functionality of TOSCA

Business Dynamic Steering
- The model–driven approach is the concept behind the TOSCA commander.
- This approach focuses in making the whole test dynamic in nature rather than just making the input data dynamic. 
- You can drag and drop the modules and enter the actions and values for validation in order to create the test cases. 
- Making the whole test dynamic is of great advantage for enabling the business – based description of both the automated and manual test cases. 
- This lets the non – technical users (SMEs) to design, automate, maintain and specify the test cases.
- TOSCA supports the following technologies for automation of software tests:
  1. Application development environments such as  powerbuilder and gupta.
  2. Programming frameworks and languages such as .net, Delphi, WPF, visual basic and java swing/ AWT/ SWT.
  3. Host applications (5250, 3270)
  4. Web browsers including Mozilla firefox, opera and internet explorer
  5. Single – position application programs such as MS excel and outlook
  6. Key application programs including Siebel and SAP
  7. Protocols and hardwares including Flash, SOAP, USB execution and ODBC
TOSCA is supported on the following platforms:
Ø  Windows vista Service pack 2
Ø  Windows 7 (both 32 and 64 bit)
Ø  Windows XP service pack 2 and plus.
- The data bases supported are:
Ø  DB v 9.1
Ø  Oracle 10g
Ø  Microsoft SQL server 2005
- TOSCA is being used by 300 customers all over world. 


Facebook activity