Subscribe by Email


Showing posts with label Framework. Show all posts
Showing posts with label Framework. Show all posts

Saturday, September 21, 2013

What are the services provided to upper layers by transport layer?

In the field of computer networking, the purpose of the 4th layer or the transport layer is to provide services for the end to end communication for the various operating applications. The services are provided within an architectural framework that consists of protocols and the components and is layered. It also offers convenient services such as the following:
Ø  Connection – oriented data stream support
Ø  Reliability
Ø  Flow control
Ø  Multiplexing and so on.

- Both the OSI (open systems interconnection) and TCP/ IP model include the transport layer. 
- The foundation of the internet is based up on the TCP/ IP model whereas for the general networking, the OSI model is followed. 
- However, the transport layer is defined differently in both of these models. Here we shall discuss about the transport layer in the TCP model since it is used for keeping the API (application programming interface) convenient to the internet hosts. 
- This is in contrast with the definition of the transport layer in the OSI model. 
- TCP (transmission control protocol) is the most widely used transport protocol and so the internet protocol suite has been named after it i.e., the TCP/ IP. 
- It is a connection-oriented transmission protocol and so it is quite complex. 
- This is also because it incorporates reliable data stream and transmission services in to its state-ful design. 
- Not only TCP there are other protocols in the same category such as the SCTP (stream control transmission protocol) and DCCP (datagram congestion control protocol).

Now let us see what all services are provided by the transport layer to its upper layers:
ØConnection-oriented communication: It is quite easy for the application for interpreting the connection as a data stream instead of having to cope up with the connectionless models that underlie it. For example, internet protocol (IP) and the UDP’s datagram protocol.
Ø Byte orientation: Processing the data stream is quite easy when compared with using the communication system format for processing the messages. Because of such simplification, it becomes possible for the applications to work up on message formats that underlie.
Ø  Same order delivery: Usually, it is not guaranteed by the transport layer that the data packets will be received in the same order in which they were sent. But this is one of the desired features of the transport layer. Segment numbering is used for incorporating this feature. The data packets are thus passed on to the receiver in order. Head of line blocking is a consequence of implementing this.
Ø  Reliability: During the transportation some data packets might be lost because of errors and problems such as network congestion. By using error detection mechanism such as CRC (cyclic redundancy check), the data might be checked by the transport protocol for any corruption and for the verification whether the correct reception of the data by either sending a NACK or an ACK signal to the sending host. Some schemes such as the ARR (automatic repeat request) are sometimes used for the retransmission of the corrupted or the lost data.
Ø  Flow control: The rate with which the data is transmitted between two nodes is managed for preventing a sending host with a fast speed from the transmission of data more than what the receiver’s data buffer can take at a time. Otherwise it might cause a buffer overrun.

Ø  Congestion avoidance: Traffic entry in to the network can be controlled by means of congestion control by avoiding congestive collapse. The network might be kept in a state of congestive collapse by automatic repeat requests. 


Saturday, June 29, 2013

What are the reasons for using layered protocols?

Layered protocols are typically used in the field of networking technology. There are two main reasons for using the layered protocols and these are:
  1. Specialization and
  2. Abstraction
- A neutral standard is created by a protocol which can be used by the rival companies for creating programs that are compatible. 
- So many protocols are required in the field and that should also be organized properly and these protocols have to be directed to the specialists that can work up on these protocols. 
- A network program can be created using the layered protocols by a software house if the guidelines of one layer are known. 
- The services of the lower level protocols can be provided by the companies. 
- This helps them to specialize. 
- In abstraction, it is assumed that another protocol will provide the lower services. 
- A conceptual framework is provided by the layered protocol architecture that divides the complex task of information exchange into much simpler tasks between the hosts. 
- The responsibility for each of the protocols is narrowly defined. 
- A protocol provides an interface for the successive higher layer protocol. 
- As a result of this, it goes in to hiding the details of the higher protocol layers that underlies. 
- The advantage of using the layered protocols is that the same application i.e., the user level program can be used by a number of diverse communication networks.
- For example, when you are connected to a dial up line or internet via LAN you can use the same browser. 
- For simplifying the networking designs, one of the most common techniques used is the protocol layering. 
- The networking designs are divided in to various functional layers and the protocols are assigned for carrying out the tasks of each layer. 
- It is quite common to keep the functions of the data delivery separate from each other and separate layers for the connection management too.  
- Therefore, we have one protocol for performing the data delivery tasks and second one for performing connection management. 
- The second one is layered up on the first one. 
- Since the connection management protocol is not concerned with the data delivery, it is also quite simple. 
- The OSI seven layer model and the DoD model are one of the most important layered protocols ever designed. 
- A fusion of both the models is represented by the modern internet. 
- Simple protocols are produced by the protocol layering with some well defined tasks. 
- These protocols then can be put together to be used as a new whole protocol. - As required for some particular applications, the individual protocols can be either replaced or removed. 
- Networking is such a field involving programmers, electricians, mathematicians, designers, electricians and so on. 
- People from these various fields have very less in common and it is because of the layering that people with such varying skills to make an assumption or feel like others are carrying out their duty. 
- This is what we call abstraction. 
- Protocols at a level can be followed by an application programmer via abstraction assuming that network exists and similarly electricians assume and do their work. 
- One layer can provide services to the succeeding layer and can get services in return too. 
- Abstraction is thus the fundamental foundation for layering. 
- Stack has been used for representing the networking protocols since the start of network engineering. 
- Without stack, it would be unmanageable as well as overwhelming. 
- Representing the layers of specialization for the first protocols derived from TCP/ IP.



Tuesday, March 12, 2013

What are autonomic systems? What is the basic concept behind autonomic system?


In this article we shall discuss about the autonomic systems, but before moving on to that we shall see a brief discussion regarding the autonomic computing. 

About Autonomic Computing

- Distributed computing resources have the ability of self–management. 
- This kind of computing is called autonomic computing and such systems are called autonomic systems. 
- Because of their unique capabilities, these systems are able to adapt to the changes that are both predictable and unpredictable. 
- At the same time, these systems keep the intrinsic complexities hidden from the users as well as the operators. 
- The concept of autonomic computing was initiated by IBM in the year of 2001. - This was started in order to keep a curb on the growing complexity of the management of the computer systems and also to remove any complexity barriers that prove to be a hindrance in development.

About Autonomic Systems

- Autonomic systems have the power to make decisions of their own. 
- They do this because of the high level policies. 
- These systems automatically check and optimize their status and adapt to the conditions that have changed. 
- The frame work of these computing systems is constituted of various autonomic components that are continuously interacting with each other. 
- Following are used to model an autonomic component:
  1. 2 main control loops namely the global and the local.
  2. Sensors (required self – monitoring)
  3. Effectors (required for self-adjustment)
  4. Knowledge
  5. Adapter or planner
- The number of computing devices is increasing by a great margin every year. - Not only this, each device’s complexity is also increasing. 
- At present highly skilled humans are responsible for managing such huge volume of complexity. 
- The problem here is that the number of such skilled personnel is not much and this has led to a rise in the labor costs.
- It is true that the speed and automation of the computing systems have revolutionized the way world runs but now there is a need for a system that is capable of maintaining these systems without any human intervention. 
- Complexity is a major problem of the today’s distributed computing systems particularly concerning their management. 
- Large scale computer networks are employed by the organizations and institutions for their computation and communication purposes. 
- These systems run diverse distributed applications that are capable of dealing with a number of tasks. 
- These networks are being pervaded by the growing mobile computing. 
- This means that the employees have to be contact with their organizations outside office through devices such as PDAs, mobile phones and laptops that connect through wireless technologies. 
- All these things add to the complexity of the overall network that cannot be managed by human operators alone. 
- There are 3 main disadvantages of manual operating:
  1. Consumes more time
  2. Expensive
  3. Prone to errors
- Autonomic systems are a solution to such problems since they are self – adjustable and do not require human intervention. 
- The inspiration or the concept behind the autonomic systems is the autonomic nervous system found in humans.
- This self – manageable system controls all the bodily functions unconsciously. - In autonomic systems, the human operator just has to specify the high level goals and rules and policies that would guide the management. 

- There are 4 functional areas of an autonomic system:
  1. Self–configuration: Responsible for the automatic configuration of the network components.
  2. Self–healing: Responsible for the automatic detection and correction of the errors.
  3. Self–optimization: Monitors and controls the resources automatically.
  4. Self–protection: Identifies the attacks and provides protection against them.
- Below mentioned are some characteristics of the autonomic systems:
  1. Automatic
  2. Adaptive
  3. aware


Friday, March 8, 2013

What are benefits of agile process improvement?


Agile methodologies that we have today are a resultant of the experiences gained from the real life projects that were undertaken by the leading software professionals. These professionals were thorough with the challenges and limitations imposed by the traditional development methodologies on various projects. 

- The agile process improvement directly addresses the issues of the traditional development methods both in terms of processes and philosophy behind it. 
- Agile process improvement provides a simple framework to the development teams suiting varying scenarios while focusing up on the fast delivery of the business values. 
- With all these benefits of the agile process improvements, the organizations have been able to reduce the associated overall risk with the development of the project. 
- The delivery of the initial business values is accelerated well by the agile process improvement. 
- This is achieved through a process of constant planning and feedback. 
- Agile process improvement ensures that the business values are maximized throughout the development process. 
- With the API’s iterative planning plus feedback loop, it becomes possible for teams to align the software process with the business needs as required. 
- Another major benefit of the agile process is that the software development process can adapt to the ever–changing requirements of the process and business. 
- By taking a measure and evaluation of the status based up on the amount of work and testing done, visibility can be obtained to a more accurate value. 
- The final result of the agile process improvement is a software system that is capable of addressing the customer requirements and the business in a much better way. 
- By following an agile process improvement program, not only just deployable, tested and working software can be delivered on an incremental basis but also increased visibility, adaptability and values are delivered earlier in the software development life cycle. 
- This proves to be a great thing in reducing the risk associated with the project. 
- There are a number of problems with the traditional development methods. 
- In a research it was found that the waterfall style development methodology was the major factor in the contribution of failure of the software. 
- Some other software could not meet the real needs. 
- They had the inability in dealing with the changing requirements and late integration. 
- All this has proven that the traditional development methods prove to be risky as well as a costly way for building software. 
- Thus the majority of the industry has turned towards agile development.
- There is a continuous feedback input from the customers and a face to face communication among all the stake holders. 
- The business needs associated with the agile process improvement are ever changing. 
- Organizations want quick results from what they invest. 
- They want their improvement programs to keep pace with these changing business needs. 
- The agile process improvement is composed of several mechanisms using which all this can be achieved. 
- Working iteratively lets you deliver the product before the deadline to the customer. 
- It lets you deliver only the things are actually required i.e., it does not let you waste your time on the un-required things. 
- Also, early and regular feedback from the customer lets you deliver the product with quality as desired by the customer.
- Agile projects are distributive in nature i.e., the work is divided among people. 
- Agile software development is still an immature process and there is a need for improving it for the betterment of the software industry. 
- Agile process improvement is one way to do this.


Tuesday, February 26, 2013

Explain Tellurium - Web Functional/Regression Test Tool


- Tellurium is an automated testing framework developed exclusively for the web–based applications.
- It is an open source tool and based up on user interface module.
- All UI elements grouped together are called as the UI module. 
- Usually, a composite UI object is what that a UI module represents in a format similar to that of the basic nested UI elements. 
- Building of UI locators is actually possible because of the UI module. 
- This tool comes with a Firefox plug – in called the TrUMP (tellurium UI model plugin) using which one can create UI modules automatically.
- The duty of the framework is to perform object to locator mapping or OLM. 
- It does this at the execution time automatically so that the user finds it easy to define the UI objects just by their respective attributes. 
- Another technique used by tellurium is the GLC or the group locating concept for the exploitation of the information contained in the UI components. 
- This information is used for locating the locators.
- It defines a complete new language for web testing known as the domain specific language or DSL. 
- UI templates are one of the powerful features of tellurium. 
- These templates can be used for representing many identical UI elements with their dynamic size at the run time. 
- These elements are quite useful for testing dynamic web elements like for example a data grid.
- Another characteristic feature of tellurium is that it can composite the UI objects very nicely in to tellurium widget objects. 
- The tellurium widgets thus obtained can be packed as a jar file. 
- Each of these widgets can be used as a single tellurium UI object once included with the jar file. Java and groovy wrote the code for the tellurium core. 
- However, tellurium trump and engine can be implemented with jQuery and JavaScript. 
- Users are free to test cases in any of these languages: groovy, pure DSL, or java. 
- Tellurium is kind of a portable framework and runs up on selenium. 
- JUnit and TestNG testing frameworks are both supported by tellurium. 
- Tellurium is hosted on Google code as an open source project.
- It comes with Apache license 2. 
- The credit for the creation of this tool goes to Jian Fang of the Georgia institute of technology.
- The major flagship project of the tellurium team is the tellurium core. 
- The UI modules act as a backbone to the tellurium tests since they define the html content of the page that is being tested. 
- But it does not make use of CSS and xpaths for defining the UI elements as selenium do. 
- It uses a much better thing i.e., DSL that also defines the relationships among those modules. 
- JUnit or TestNG can be used as testing container as preferred by you. 
- It is required to write the UI module DSL for writing a selenium test case. 
- This can be either be done using TrUMP or manually. 
- The robustness of the tests are further improved by the tellurium’s santa algorithm. 
- This algorithm locates the UI module at the execution time DOM. 
- But this feature is only available in 0.7.0 and higher versions.
- The lower versions require that the run – time locators are generated by the tellurium core based up on the definition of the UI module. 
- The selenium commands are then passed by to the tellurium for locating individual UI elements. 
- Using trump UI module DSL can be generated just by clicking on the page elements. 
- The DSL then can be saved to a groovy class and can be used by the tests any time. 
- It is the use of UI modules that have made the tellurium so expressive.



Saturday, February 23, 2013

Explain FuncUnit and QUnit - Web Functional/Regression Test Tool


FuncUnit and QUnit are both tools developed for web functional and regression testing. In this article we first discuss about the FuncUnit testing tool.

About FuncUnit Tool

- It is an open source framework and therefore free to use. 
- The API that this tool uses is based up on the JQuery.
- FuncUnit can either be used as a standalone application or a part of the JavaScript full stack framework. 
- This JavaScript framework is commonly known as the JavaScript MVC. 
- Almost all the modern browsers are supported by FuncUnit on almost all the platforms such as mac, linux etc.
- The tool also offers you a choice of running the tests through selenium. 
- An integrated development environment or IDE called funcIT is also available for this tool. 
- Another component is there using which synthetic events can be created and default event behavior can be performed.
- It is known as the Syn and it can simulate events such as dragging the mouse, clicking, typing and so on. 
- Using syn complex JavaScript functional testing can also be carried out. 
- FuncIT lets you do the testing directly in the browser. 
- Writing, running and debugging of the tests takes place in the web browsers. - FuncUnit makes this all so easy. 
- You just need to open a page and start the debugger. 
- FuncUnit uses syntax similar to that of the JQuery. 
- This is the perfect web testing tool for you if like short and flexible test cases.  - You can run the tests in any of the browsers and later automate them via selenium. 
- FuncUnit supports the following versions of the modern browsers:
  1. Internet explorer version 6 and above.
  2. Firefox version 2 and above.
  3. Safari version 4 and above.
  4. Chrome
  5. Opera version 9 and above.
- Platforms supported are mac, PC and Linux. 
- In other words you have a complete automated testing suite.
- Some of the features are:
1.   Functional testing
2.   High fidelity
3.   Automated
4.   Free
5.   Multi – system
6. Easy to write


About QUnit Tool

 
- QUnit is based on the similar lines as that of the junit which is a unit testing framework. 
- This testing tool works on the JavaScript test suite (that is used by the JQuery project) for testing the code. 
- It comes with various plug – ins which render it the ability to test any generic JavaScript code. 
- Though, QUnit is somewhat similar to Junit, it does uses features of JavaScript for helping with the testing chores in the web browser like starting and stopping the facilities to carry out tests for the asynchronous code. 
- QUnit is quite a powerful unit testing framework used in JQuery mobile projects, JQuery UI and so on.
- You can get QUnit from JQuery CDN and the latest release id version 1.11.0. 
- John Resig is the person behind QUnit.
- Earlier in 2008, QUnit was completely dependent up on JQuery but now it can be used as a standalone application. 
- Common JSunit testing specifications are followed by the assertion methods of QUnit.
- For automated testing writing your own testing framework involves a lot of work since you have to cover all the requirements of JavaScript code. 
- QUnit makes this all easy. 
- You need to include only two QUnit files on the page namely:
QUnit.js: This is the test runner file and
QUnit.css: This styles the test suite so that the results can be displayed.

- Assertions are essential elements of all the unit tests and the QUnit provides 3 namely:
Ok()
Equal()
Deepequal()





Saturday, February 2, 2013

Explain Robot Framework?


The Robot Framework was developed as generic test automation framework for two major tasks namely:
  1. Acceptance testing and
  2. ATDD or acceptance test driven development
- It makes use of the keyword driven testing approach for achieving the above mentioned two tasks. 
- It has got a very simple and unique tabular test data syntax that is quite easy to follow and this is what that makes robot framework so easy to be used. 
- All this makes the robot framework popular among the testers.
- Test libraries that can be implemented through either java or python can be used for extending the capabilities of the frame work. 
- The users have the choice of creating new keywords from the existing ones. 
- This can be done using the same syntax that is available for the creation of the test cases. 
- Robot framework is actually an open source software. 
- The license it possesses is the Apache license 2.0.
- The Nokia Siemens Networks supports the development of this framework and also owns its copyrights. 

Features of Robot Framework

The robot test automation framework is abundant of features. Its features are:
  1. Its tabular syntax is easy to use and can be used for the creation of the test cases in a way that is uniform.
  2. Robot framework can work up on three approaches namely:
- Keyword driven testing approach
- Behavior driven development approach or BDD
- Data driven testing approach or DDT.
  1. It provides the facility for the creation of higher level keywords that are reusable for the already existing keywords.
  2. The reports and logs it generates are quite easy to follow and are based up on HTML.
  3. This test automation framework does not depend up on any platform or application.
  4. The architecture of the frame work is quite modular in nature that helps in supporting the creation of the tests for even the software systems and applications that possess a number of interfaces all different from one another.
  5. It comes with a library API that is quite simple and can be further used for the creation of other test libraries that can be customized.
  6. The XML based outputs that the framework provides allow for integrating itself in to the build infrastructure that already exists. These are called continuous integration systems.
  7. It also provides a command line interface for the same purpose as that of the XML based outputs.
  8. It supports selenium tool for the following things:
Ø  Web testing
Ø  Java GUI testing
Ø  telnet
Ø  running processes
Ø  SSH and so on.
  1. The framework comes with a remote library interface, thus enabling the implementation of the test libraries in any desired programming language and distributed testing.
  2. The tagging feature provides helps in categorizing the tests and selecting them accordingly for the execution.
  3. For variables, it comes with a special built – in support for regulating testing in different environments.
- Test cases can be written either in HTML or in plain text.
- Also, any editor can be used for editing the test cases. 
- The robot test automation framework comes with a graphical development tool called the RIDE or robot IDE. 
- The tool has got a number of features specific to the framework such as syntax highlighting, code completion and so on. 
- Selenium library is an extension to the robot test automation frame work and similarly there are a number of others. 
- However, there are some other languages that can be used for implementing the libraries such as perl, PHP, java script and so on. 
- However, these languages can be used only through a remote library interface.


Friday, February 1, 2013

Explain Ranorex? What are its features? What are its supporting technologies?


Ranorex is a framework developed exclusively for the windows GUI test automation. Ranorex has proved to be quite an effective framework for testing a number of applications such as the following:
  1. Web 2.0 applications
  2. Win32
  3. MFC
  4. WPF
  5. Flash
  6. Flex
  7. .NET
  8. Java (SWT) and so on.
One fact about this test automation frame work is that it does not have its own scripting language. Programming languages such as vb.net and C# have certain functionality that are used by the software testers as the base. Then they use the Ranorex’s GUI automation functionality for enlarging the base.
Ranorex supports number of technologies few of which we have mentioned below:
  1. Web applications including:
Ø  HTML
Ø  HTML5
Ø  Javascript
Ø  Silverlight
Ø  AJAX
Ø  It also supports cross browser testing on IE, chrome, Firefox and safari
  1. Windows desktop client applications:
Ø  .net
Ø  Winforms
Ø  WPF
Ø  Win32
Ø  Java
  1. SAP
  2. Mobile apps including:
Ø  Android and
Ø  iOS
  1. Flash and flex including:
Ø  adobe air
Ø  adobe flash
Ø  adobe flex

Features of Ranorex

  1. Capture and playback editor: This feature of Ranorex is more commonly called the Ranorex recorder.This feature lets easy maintenance of the recordings through an actions table editor. It is because of this feature that the Ranorex is able to integrate with the object repositories for the automation.
  2. GUI object recognition: This feature uses the RanorexXpath for filtering and identifying any type of GUI element.
  3. Test automation library:It includes exclusively .net applications.
  4. GUI mapping: This is more commonly known as the Ranorex repository and helps in the management of all kinds of GUI elements present in the application.
  5. Test development environment: More commonly called as Ranorex studio and is used for code completion and debugging.
- This framework has won a number of awards for being the best functional automated test tool. 
- With Ranorex, one can test a large number and types of technologies such as that of the desktop, mobile and web. 
- Ranorex makes it extremely easy to create robust and powerful test automation frameworks. 
- Ranorex removes all the barriers in the path of learning process and also accelerates the process to realize a good return of investment or ROI. 
- A number of benefits come along with ranorex:
  1. Object based capture and playback editor
  2. ranorexXpath
  3. Best object recognition
  4. Professional library for .net and C#.
- Ranorex has been carried over to a more advanced level of the GUI test automation. 
- Ranorex Xpath is a very powerful technology that has made the test automation even much easier. 
- Ranorex is a testing tool which recognizes almost every UI technology. 
- Not only this, it proves suitable for all the development environments that already exist. 
- Ranorex does a great attempt in bringing together the software testers and developers. 
- The Ranorex automation framework has been developed with an open architecture. 
- At the core functionality of the Ranorex automation frame work lies an API that revolves around a .net framework. 
- The Ranorex is based on standards and helps in generation of better .net and C# user code. 
- Usually the Ranorex studio project works with a lot of files. 
- Before one starts with developing test cases, one should have all the knowledge regarding the layout and views of the tool.  
- The Ranorex studio may consist of the following types of items:
  1. Test suite
  2. Model group
  3. Repository
  4. Code files
  5. Recording


Facebook activity