Subscribe by Email


Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Thursday, September 25, 2014

Which languages support logic programming?

In this article we discuss about the languages supporting the logic programming. There are many such languages and we divide them in to the following two categories:
- Prolog programming language family
- Functional logic programming languages

First we shall discuss some languages falling under the first category:
1. Algebraic logic functional programming language or ALF: Combines the techniques of both the logic programming techniques and the functional programming techniques. This language is based on the horn clause logic. The resolution rules for solving the literals and evaluating the functions form the foundation for the operational semantics of this language. It follows a left – most inner – most narrowing strategy for reducing the number of steps in solving a problem. Thus, these operational semantics are much more efficient and powerful than those produced by the resolution strategy of prolog.
2. Alice ML: This programming language was designed at the Saarland University and is actually a standard ML dialect. But it has the support for concurrency (this includes distributed computing as well as multithreading), lazy evaluation, constraint programming etc. this language uses a relation concept called “promise” according to which a future value provided by one thread will be computed to another thread. Thus data flow synchronization is possible in Alice ML by use of future typed variables and promise concept.
3. Ciao
4. Curry
5. Leda: It stands for ‘library of efficient data types and algorithms’ and is a multi – paradigm – programming language. The language is used for mixing the features of logic based, object based, functional and imperative programming in to one.
6. Mercury
7. Metal
8. Mozart
9. Oz: This one is another multi – paradigm programming language for the purpose of programming language education. It was developed in the year of 1991 at the Swedish institute of computer science. A primary example of Oz implementation is the Mozart Programming system. The system comes with an open source language and supports many platforms including Microsoft windows, mac os x, Linux, Unix etc.
10. Visual prolog

Now we shall see the second category of languages i.e., the functional logic programming languages:
1. B – prolog: This is the high – level implementation of the prolog and has some additional features such as the event handling rules, matching clauses, arrays, declarative loops, tabling, constraint solving etc. it was developed in 1994 and now is a popular CLP system. Though B – prolog is a commercial product, it comes free for research purposes. A clause in which the input/ output unifications and the determinacy are denoted in an explicit way is called a matching clause.
The matching clauses are translated in to the respective trees by the compiler and indexes are generated. This compilation is easier when compared to the compilation of the normal clauses in prolog. B – prolog overcomes the absence of active sub goals programming facility in prolog by introducing the action rules or AR which is a powerful but simple language for serving this purpose. The sub –goals are called agents. Activation of an agent is followed by the execution of an action. The CHIP system heavily affected the finite domain solver of B – prolog.  For creating arrays, a built – in is provided by B – prolog called new_array(X, Dims) where x stands for uninitialized variable and Dims for positive integers for specifying the array dimensions.
2. Eclipse
3. GNU prolog
4. Jprolog
5. KL0 and KL1
6. Logtalk
7. Objlog: This one is a frame based language that combines two things: Prolog II and object from CNRS.
8. Prolog
9. Prolog++
10. Strawberry prolog
11. Tuprolog
12. Visual prolog
13. YAP


Tuesday, May 14, 2013

What is a Distributed System?


In the field of computer science, the distributed computing constitutes of distributed systems. 
- Multiple computers that are capable of communicating via a computer network together compose a distributed system. 
- All the computers in a distributed system work together in order to accomplish a common task.
- A common program is also required for running this whole system and is known as the distributed system. 
- Such programs for distributed systems are written using the process called the distributed programming. 
- Distributed computing involves the use of distributed systems for solving the computational problems.
- A distributed system divides the problem into much smaller tasks that are then given to one or more computers of the distributed systems. 
- These systems use message passing for communicating with each other. 
- The term distributed system earlier referred to the networks which had their hosts distributed over a geographical area. 
- This term was eventually refined and now is applied to a much broader concept. 
- It now also refers to the various autonomous processes that execute on the same system but maintain an interaction with other systems also through message passing. 
Because of the wide sense to which the concept is applied, it has no formal definition; rather the following properties are used for defining it:
  1. There are many computational entities of the distributed system that are autonomous in nature and each of them possesses individual local memory. These entities are commonly referred to as the nodes.
  2. By means of message passing these entities communicate with each other.
- A distributed system works towards a common goal which may involve solving a big computing problem. 
- On the other side, each node in a distributed system may have its own requirements. 
- The distributed system must provide communication means to the user and help in coordinating the use of the common resources.

Properties of Distributed Systems

Distributed systems possess many other typical properties as mentioned below:
  1. It has the capability to tolerate the failures of the individual nodes or the computers.
  2. The system’s structure cannot be determined in advance. It includes a number of factors such as number of computers, network topology, and network latency and so on. The computers in the system might be of many different types and so the links also. As a result the structure of a distributed system may alter while executing a distributed program.
  3. The complete view of the distributed system is hidden from its nodes. They are provided only with a limited view or information about the system. Only a part of the input is known by each of the nodes.
- There are two terms which consistently overlap with the distributed computing namely parallel computing and concurrent computing
- The distinctions between these three are not clear at all. 
- At the same time a system may be called both a parallel one and a distributed one.
- Another thing about distributed systems is that the processors involved run in concurrence with each other but in parallel.
- Distributed computing in a more tightly coupled form is called parallel computing. 
- Thus, a loosely coupled form of parallel computing is the distributed computing. 

Two main reasons have been observed for using distributed computing:
  1. Depending on the nature of the application it may require using a network connecting many other systems. For example, data produced by one system is required by others.
  2. There are cases, where by theory and principle use of a single computer is possible but for the same case if a distributed system is used in practical then it might be more beneficial. For example, using a cluster of low – end computers for attaining the desired level of performance might be more cost efficient. 


Sunday, February 24, 2013

Explain Fabasoft app.test - Web Functional/ Regression Test Tool


About Fabasoft app.Test

- Fabasoft distribution GmbH has developed a web testing tool called the fabasoft app. Test.
- It can be used to create tests based up on the patterns that are effective in reducing the complexity of the java and HTML applications.
- These tests do not contain any CSS and XPath expressions but they do contain statements that are meaningful and can be easily understood. 
- The features of this tool can be extended by connecting with it the eclipse plug–in that is a point–and-click editor. 
- This plug–in can be used for designing effective patterns for web sites. 
Fabasoft app. Test supports web browsers such as Mozilla firefox, internet explorer, and safari and so on. 
- In all these browsers, tests can be recorded using the above point–and–click recorder.
- The recorded test scripts than can be replayed immediately after recording in the other browsers and there is no need for modifying those scripts.
- The tool is even capable of generating various reports in formats such as PDF or html, documentation of the errors consisting of various dumps and screen shots. 
- It supports various platforms such as:
1.   Win
2.   Linux
3.   Mac OS – X

Features of Fabasoft app.Test

 
Some of the characteristic features of this web testing tool are:
1.   Recorder
2.   Multi – browser support
3.   Script and dialog error handler
4.   Documentation of the errors along with screen shots
5.   Various dumps
6.   Several reports in formats such as pdf and html.

- If you have opted for using fabasoft app. Test, you can just sit back and relax and let the tool take on the testing process. 
- The tests that are created with fabasoft app. Test are easy to understand and there is no requirement of the programming skills.
- It can be considered to be the next generation web testing. 
- You can teach fabasoft app. Test about your application in just a few clicks. 
The fabasoft app. Test can test the application further for omissions and errors. 
- The tool is quite easy to install and use.
- Large scale web sites are developed through standards such as content management systems (CMS) including red dot, liferay, joomla and so on. 
- Since these web sites represent the reputation of the companies, it is important that they should remain highly accessible all the time and free of errors. 
- The web developers often end up looking for GUI testing tools for testing their sites. 
- Fabasoft app. Test can be used for the automated testing of the web applications no matter what technology has been used for building these applications such as ASP, PHP, flash, JavaScript and so on. 
- The fabasoft app. Test can be taught about the structure of the application to be tested. 
- Once done with this, you can start with the recording of the test and obtaining reports. 
- It ensures that your application is can run on all the platforms and web browsers. 
- Stay automatically informed about the status of your application testing. 
- You get to know about a problem as soon as it is encountered and solve it well in time.
1.   Fabasoft app. Test studio
2.   Point and click recorder
3.   Multi browser support
4.   Control specification designer
5.   Internationalization of the tests
6.   Test player
7.   Console player
8.   Remote agent
9.   Commander
10. BIRT report support
11. Html reporting



Tuesday, February 5, 2013

How test cases are generated using Testing Anywhere?


Testing anywhere software product helps you create the test cases using any of the 5 methods namely:
- Web recording
- Object recording
- Image recognition
- Smart recording and
- Editor

- While editor can be used for editing the test cases by advanced users, wizard is for those who do not have any programming skills. 
- Another facility is that the creation of the files that are executable. 
- These files are created in such a way that they can be executed on a machine that might be located in a remote location. 
- IT and business processes are created by the work flow designer and is managed by the same.
In this article we explain how the test cases can be generated using the testing anywhere product. 

How test cases are generated using Testing Anywhere?

- The testing anywhere product comes with a SMART recorder that one can use to create new tests. 
- Clicking on the ‘record’ button will drop down a list of options from which you have to select what type you are testing i.e., a web or windows application type. 
- Then you need to perform the activities on the system that you want to be recorded. 
- You can insert a checkpoint wherever you want by clicking on the check point button. 
When you are done with recording the tests click on the stop button. 
- You can then save these activities in a test by clicking on the save button. 
- You can playback these test scripts whenever you want and any number of times by clicking on the run button. 
- In testing anywhere product, it does not matter if any change occurs between the size and location of the window of the application while the recording or replaying is in progress. 
Testing anywhere uses a SMART automation technology that helps in automatically adjusting to those changes.
- Another advantage of using testing anywhere is that you can work up on any number of applications.
- You do not have to finish working up on one application before moving on to the next. 
You can very well switch between the applications. 
- Testing anywhere even works while your computer is locked. 
- It does so because of the auto log-in capability that is unique to this software. 
- With this, you can schedule the tests and they will be executed even when your system is locked. 
- If this capability is enabled and the system is locked, it will be unlocked by the testing anywhere, the test will be executed and the computer will be locked again. 
- Auto log-in capability lets you run the tests in stealth mode when the system is locked. To do this follow:
Properties à security à run this test in stealth mode

- The execution will then be hidden. 
- Further, if you want to lock the keyboard and mouse you can use the ‘disable mouse and keyboard for this test’ option. 
- If you want to stop the execution of a test just keep holding the escape key for some time. 
- Using the pause key on the keyboard you can pause the test while it is executing. 
Further clicking on the resume button you can continue with the execution. 
- Another thing that makes testing anywhere unique is that it can run the tests in background. 
- A number of advanced technologies lets you run the tests in background such as:
1.    Web recorder
2.    Object recorder
3.    And a number of other powerful actions
- However, there are some tests like those that are recorded through standard recorder. 
These tests require mouse and keyboard control and therefore cannot be executed in background. 
- There are few other exceptions also such as commands such as screenshots; image comparison etc. that cannot be run in background.


Sunday, February 3, 2013

What is Testing Anywhere software product? What are its uses?


Testing anywhere software product was developed by the Automation Anywhere Inc. based in San Jose. This is another software in the category of test automation tools. This software has proven to be a boon for the software testers and developers who have to test the web sites, applications, GUI front-ends, objects and controls. The product has got many uses from recording to the execution of the test cases. It is used for the following major purposes:
  1. Recording of the tests
  2. Debugging them
  3. Scheduling their execution
  4. Executing the tests
The above mentioned operations can be carried out for a number of application types such as:
  1. Java
  2. Silverlight
  3. Mainframe
  4. C++
  5. .NET and so on.
Testing anywhere product provides option for automating the test case creation. Testing anywhere offers you 5 different methods for creating the test cases namely:
  1. Web recording
  2. Object recording
  3. Image recognition
  4. Smart recording and
  5. Editor
- The test cases thus created using any of the above methods can be later recorded, edited, saved and can also be enhanced. 
- The editor is used for editing the test cases. 
- People who don’t have programming skills can use the wizard for creating and editing the test cases. 
- Testing anywhere software lets you create files with .exe extension i.e., the executable files which later can be deployed by the software testers on remote machines. 
- The creation of a high level IT and business processes is the responsibility of the workflow manager. 
- Further, workflow manager only takes care of the ability by virtue of which these processes are managed. 
- It supports a number of platforms:
  1. Microsoft windows 7 (both 32 and 64 bit)
  2. Microsoft windows vista (both 32 and 64 bit)
  3. Microsoft windows XP (both 32 and 64 bit and along with service pack 2)
  4. Microsoft windows server 2008 R2
  5. Microsoft windows server 2003
- Testing anywhere supports the following kinds of testing:
  1. Integration testing
  2. Compatibility testing
  3. Performance testing
  4. GUI testing
  5. System testing
  6. Java application testing
  7. Automated flex testing
  8. Silverlight application testing
  9. Mainframe application testing
  10. WPF testing
  11. Third party .NET supported testing
  12. Automated software testing
  13. Automated web testing
  14. Regression testing
  15. Distributed testing
  16. Functional testing
  17. Black box testing
  18. Acceptance testing
  19. Unit testing
  20. Keyword driven testing
  21. Data driven testing
  22. Smoke testing
- The product has been named because of the facility that it provides for running the tests on any remote machine present in the network. 
- Further, it reduces the testing cost by a huge margin since it cut down the money being spend up on the software licenses, resources, and training and time of course.
- Testing anywhere provides you a SMART recorder for creating new tests.


Thursday, January 24, 2013

Explain Oracle Application Testing Suite?


Oracle application testing suite is an effort to provide you with a comprehensive web application testing solution that is quite integrated and has got all the tools that you may require for ensuring the reliability as well as scalability of your applications that are based up on critical business processes. 

Oracle application testing suite has got three main parts namely:
  1. Oracle Functional Testing: This is for performing regression testing and functional testing on web applications.
  2. Job scheduler: This component of the testing suite is responsible for scheduling the testing of the application.
  3. Oracle load testing: This is for carrying out scalability testing, load testing and stress testing on the web applications. This component also consists of some tools that can be very well used for monitoring and reporting on the server side.
- A common set of the visual scripts is what that powers the web applications and therefore they don’t require any programming.
- Also, you don’t need to learn any proprietary language, take training classes or to set up any special proxies. 
- As any changes are made to the application, they are reflected in the visual scripts of the application and the updates are automatically performed. 
- This means that the load tests and the regression tests that you created will be automatically synchronized with the application. 
- This will help you to make the automated regression testing an important part of the development process. 
- The functional testing feature of the oracle application testing suite serves as a tool for functional as well as regression testing and as a script recorder for the whole testing suite. 
- Objects on each and every page are recorded by the functional testing suite and the tests are automatically inserted for the validation of the objects.
- In the visual script you can find the graphical representation of each and every object. 
- The components can be augmented or masked as you require with the help of simple click actions.
- The objects on a page are displayed in the tree hierarchy in the visual script. - Flags are used for indicating the differences between the current version and the baseline.
- With the oracle functional testing the creation, maintenance, and execution of the tests becomes very easy. 
- It comes with the following:
  1. An intuitive yet powerful automated test case generator.
  2. A special text matching component.
  3. Ability of executing the data driven tests via the data bank wizard.

Features of Testing Suite

The features of the testing suite have been highlighted below:
  1. Automatic test generation/ visual script technology: This features lets you record and test the whole application with object orient scripts that are reusable. The following are the elements that are automatically captured:
Ø  Elements
Ø  Forms
Ø  Frames
Ø  HTML
Ø  Images
Ø  Image maps
Ø  Links
Ø  Active X controls
Ø  Java applets
Ø  VBscript
Ø  Java script
  1. Simple script updating: Scripts are updated as per the changes with a simple click.
  2. Graphical test results: Red flags indicate the HTML differences or any failures so that they can be diagnosed.
  3. E- spider: Whole of your site is automatically mapped and visual scripts are created for either whole or partial of your application.
  4. Data bank wizard: It enables you to create data bank wizards without actual programming. Since the visual scripts reusable they can be used again and again with different inputs every time.
  5. Visual test case insertion: This feature lets you add extra test cases to the scripts fore the verification of the server response times, text of the page and form elements and so on.
  6. Programming interface


Monday, December 17, 2012

Give an overview of the process of system performance validation with IBM Rational Performance Tester?


IBM brought the rational performance tester in to picture as an effort to automate the rigorous process of performance testing. Automated performance testing was required to make it possible to deliver high quality software to the end users.

- The Rational Performance Tester is a convenient means for accelerating the software system’s performance without impacting its quality. 
- Software performance bottlenecks can be identified very easily with the help of IBM rational performance tester. 
- Not only the presence of bottlenecks but also their causes can be identified.  
It is important to make predictions regarding the behavior and performance of the software systems and applications under extreme load conditions. 
Making wrong predictions can get the whole organization, its revenue as well as the customer’s at risk. 
This can prove to be hell devastating in today’s software engineering world where the competition is already soaring high. 

- Hence, a proper testing solution is required that would not only help you validate the performance of your product but also optimize and verify it under a number of load conditions. 
- IBM rational performance tester gives you more than just testing. 
- Using it, the scalability factor of many of the applications can be calculated. 
The rational performance tester supports code free programming i.e., the programming knowledge is not much required. 

In this article we provide an overview of the system performance validation using the rational performance tester. 

- Performance tests are contained within performance test projects.
- Instead of creating a new project, a test can be simply recorded which in turn will create a project immediately. 
- After a test has been recorded, it can be edited so as to include data pools, data correlation and verification points. 
- Data pools are required for obtaining variable data. 
- At verification points, it is confirmed whether the test is running as expected or not. 
- Lastly the data correlation ensures that appropriate data is being returned for the request. 
- Furthermore, protocol specific elements can also be added to a test.
- The items to which you make modifications appear in italics whenever a test is edited. 
- After saving the test it changes in to regular type. 
- A workload can be emulated by adding user groups and other elements to a new schedule.
- After being done with all the additions to the schedule, it can be run. 
- You can either run it locally or with a default launch configuration. 
- The playback might be slowed down because of the delays in HTTP requests. - The performance results of the application can be evaluated after being generated dynamically during the execution process. 
- After execution, the results can be regenerated for analyzation and viewing purpose. 
- The coding problems which are known to cause disturbances in the performance can be found and fixed using the problem analysis tools. 
- The data regarding the response time breakdown can be obtained using an application that has been deployed in a production environment. 
- Another means for collecting this data is from a distributed application implemented in a testing environment. 
- Resource monitoring data including available network, disk usage, network throughput, processor usage and so on can also be collected and imported. 
Resource monitoring data is important since one can have a comprehensive view of the system or application and this is helpful in the determination of problems.
- All the collected and imported data can be analyzed and later can be used in the location of the exact cause of the problem that is hampering the system performance.



Friday, August 31, 2012

What is TSL? What 4GL is it similar too?


TSL and 4GL are two major languages that are coming in to the scenario of the present world programming languages. What do you mean by a test script actually? 
Test scripts form a set of instructions that in turn can be performed on some software system or application under test for checking whether or not the functions are giving the desired output i.e., if they are working properly or not. There are two ways via which these test scripts can be executed as mentioned below:
  1. Manual testing and
  2. Automated testing
In this article we shall discuss regarding the test script language or TSL and fourth generation language or 4GL. First let us start our discussion with the test script language. 

About Test Script Language

- The Test script language lies at the heart of the integrated testing environment created by the mercury interactive.
- Test script language is categorized under the category of high level languages. 
- Its usefulness is born out of the combination of the flexibility as well as the power of the conventional programming languages and functions that have been developed as a tool or a feature to be used along with the products of the mercury interactive like winrunner and test director. 
- Also, this feature of the test script language has made it to be used for the modification and programming of the sophisticated test suites. 
- The functions that the test script language provides have been grouped in to the following four categories:
  1. Analog functions
  2. Context sensitive functions
  3. Customization functions and
  4. Standard functions.
- All of the above mentioned functions do not come with all the mercury interactive products. 
- Winrunner is one such mercury interactive product which supports all of these functions. 
- Apart from just the built in functions the test script languages gives its users the provision of creating their own functions.

What are Fourth Generation Languages - 4GL?

- A fourth generation programming language needs not necessarily be a language only it can also be a programming environment. 
- The 4GLs have been developed with a certain set of design patterns in mind and are assigned a specific problem domain. 
- 4GLs were developed as a succession to the 3GLs and are known to define a higher trend of statement power as well as abstraction. 
- It was observed that the 3GL languages were quite slow and much prone to errors. 
- As a result of the efforts to overcome this problem, the 4GL languages were born and these were more focussed towards aspects like:
     1. Systems engineering
     2. Problem solving and so on.
- The fourth generation language was designed as such that they cut down on the following: 
     1. programming efforts,
     2. Time consumed in development and of course
     3. The cost of the software development.

- However, in some of the cases, a try at achieving all this resulted in an ineffective and unmanageable code. 
- A formal definition of the 4GL was given by John Capers in terms of developer productivity (i.e., in terms of function points per staff month). 
- 4GL languages are said to support 12- 20 function points per staff month. 
- The 4GLs are a subset of domain specific programming languages has been stated a number of times by some researchers. 
- 4GLs have been classified in to 4 types as stated below:

1.Table driven programming (codeless): Uses table driven algorithm. Example: power builder.
2. Report generator programming languages: Generates the required report.
3. Fourth generation environments or more ambitious 4GLs: Specialize in generation whole system from output of CASE tools.
4. Data management 4GLs: such as-
             a)   SPSS
             b)   SAS
             c)   Stata


Tuesday, August 14, 2012

What are all the Limitations & Advantages of WinRunner?


Winrunner is one of the most famous load testing tools available today which operate at the level of graphical user interface. Recording and playing back the user actions has become such an easy task with the help of this winrunner software package.


Advantages of WinRunner

The Winrunner was initially a creation of the mercury interactive but later was taken under the supervision of HP (Hewett Packard). 
- With winrunner, the quick creation of the sophisticated automated tests has been made possible. 
- With the aid of winrunner you have the provision of automating the whole software testing process right from the test development to the execution part. - The tests that we develop or create using the winrunner are not only automated but they are also by far adaptable as well as reusable.
- The test scripts that they consist prove to be quite challenging to the software system or application which is under testing. 
- The winrunner also provides you with the convenience of running all the tests you created in an overnight just before the release date of your software product. 
- Such an overnight test run helps you to detect any last moment defects and also ensures that your software product is of superior quality. 
Testing with winrunner reduces the following problems dramatically:
  1. Reduces time consumption and tediousness.
  2. Reduces the amount of investment in human resources.
  3. Roots out most of the serious bugs.
- Winrunner is a functional testing tool that was designed with the aim of solving quite a large number of problems and it does assists the process of software testing in quite a realistic manner.
- With winrunner you get an opportunity for testing your software systems and applications on quite a large scale or we can say company wide scale. 
- The user functions are verified as well as recorded in an automated way which makes sure the proper and cooperative working of the business processes. 
- Another thing is that in winrunner no programming is required to increase the flexibility and power of the tests. 
- The spund functionality in winrunner is assured with the help of multiple verification types. 
- The integrity of the back end data base is also verified. 
- All the attributes if the application objects are stored and verified. 
- Winrunner is a single application that can test multiple environments. 
- With winrunner, the automatic identification of the discrepancies present in the data is possible.


Limitations of WinRunner

- Winrunner because of its limitations has now been superseded by the HP quick test pro. 
- The winrunner makes use of the source of the program to create test cases and moreover the coding of the test cases is done in test script language (TSL) which is a proprietary language.
- One of the disadvantages of the TSL is that very few resources are available for TSL programming.
- The testers need immense training to be able to implement winrunner properly. 
- Another disadvantage is the GUI map, which can be many a time quite difficult to understand as well as implement. 
The winrunner does not extends support for the following applications:
  1. Few web based applications
  2. NET applications as well.
  3. XML
  4. Multimedia applications
  5. Sap apps
  6. Oracle apps
However many of the above discussed limitations are present only in the older versions of the winrunner and can be eliminated by going for the latest version of the winrunner (8.0+) which does supports all the web applications and .NET add- in is also available in  that. 
However, the QTP proves to be more convenient when it comes to writing the scripts and object values.


Facebook activity