Subscribe by Email


Showing posts with label Action. Show all posts
Showing posts with label Action. Show all posts

Sunday, April 14, 2013

What are different components of operating system? – Part 5



10. Networking: 
- Presently, many different types of protocols along with applications and hardware for using them are supported by most of the operating systems. 
The computers running different operating systems can easily become a part of the network and participate in resource sharing activities such as sharing of printers, scanners and of course files. 
- They may connect to network either through wired connection or a wireless one. 
- Through this component, OS of one computer system can access the resources of another computer system at a remote location. 
- Almost anything can be shared including remote computer’s sound and graphics card. 
- There are network services that allow transparent access to a computer’s resources like SSH.
- Client/ server networking allows a system to connect to a server which offers various services to its clients.
- Numbered access points or ports are used for providing these services beyond the network address of the server. 
- Maximum one running program can be associated to each of the port number which will handle all the requests.
- A user program can then access the local hardware resources by making a request to the kernel of its operating system.

11. Security: 
- The security of a computer system depends on the proper working of the technologies involved in it. 
- A modern OS lets you access many resources both for the internal applications and external devices through the kernel. 
- The operating system must have the capability of deciding which requests are to be allowed and which are to be rejected. 
- There are some systems which decide this on the basis of some requester identity which they further classify as privileged or non–privileged. 
- For establishing the identity there has to be some form of authentication. 
Mostly a username or ID is quoted along with a password. 
- Some other methods are bio-metric data or magnetic cards. 
- There are cases where no authentication is required for accessing resources. 
Another concept under security is the authorization. 
- The services which can be accessed by the requester are tied to his/ her account or to group in which he/ she belongs. 
- Some auditing options are also offered by systems having a high security level. 
- With these the requests from various sources can be tracked. 
- Internal security is also essential from the programs that are currently executing. 
- It is maintained by raising interrupts to the kernel of the OS. 
- If direct access is provided to the programs for hardware, then security cannot be maintained.

12. User Interface: 
- For an operating system to be operated by a user, a user interface is required. 
- This interface is termed as the shell and is vital if the operating system is to work according to the user’s instructions. 
- The directory structure is observed by the user interface and then it sends requests for the services wanted by the OS from the input hardware devices. 
- It also sends requests to the operating system demanding for the status messages and prompts to be displayed on output hardware devices. 
- There are two most common forms of the user interface namely the GUI (graphical user interface) and the CLI (command line interface). 
In the former, the environment is visual and in the latter case the commands have to be typed line by line. 
- Almost, all the modern operating systems come with a graphical user interface.
- In some operating systems such as Mac OS, the GUI is already integrated in to its kernel. 
- There are some operating systems that are modular in nature.  


Saturday, April 13, 2013

What are different components of operating system? – Part 4



8. Disk access and file systems: 
- Through this component of the operating system, the users as well as the programs they use are able to sort and organize files on a computer system. 
This is done through the use of folders or directories. 
- This is another central feature of the operating systems. 
- Data is stored by the computers on disks in the form of files which are then structured in some certain predefined ways so as to enable faster access, better use of available memory and higher reliability. 
- These specific ways of the storing the data on disk together constitute the file system. 
- This makes it possible to assign names and attributes to the files. 
- This in turn helps in maintaining the hierarchy of directories and folders in the directory tree. 
- Only one type of file system and one disk drive was supported by the old operating systems. 
- Those file systems had a limited capacity in terms of directory structures and file names that could be used and speed. 
- These limitations were actually the reflection of the operating system’s limitations making it difficult for it to support multiple file systems. 
- There are other simple operating systems that have a limited range of storage accessing options.
- On the other hand Unix and Linux like operating systems support the VFS technology or virtual file system. 
- Unix offers support for a wide range of storage devices irregardless of their file system or design. 
- This enables them to be accessed via a common API (application programming interface). 
- For programs this avoids the need of having knowledge about the devices which they may require to access.
- With virtual file system, the OS can provide access of unlimited devices to the programs having many file systems operating in them.
- This it does through the use of file system drivers and other device drivers. 
- A device driver lets you access a connected storage device such as flash drives. 
- Every drive has a specific language which is only understood by the device driver and it translates it in to a standard one used by the OS for accessing the drives.
- The contents of the drive can be accessed by the kernel only if the device driver is in place. 
- The purpose of the file system driver is to translate the commands used for accessing the file systems in to the standard set recognized by the operating system. 
- These file systems are then dealt by the programs based on their directories or folders and file names organized in hierarchy. 
- These files can be created, deleted or modified by the programs.

9. Device Drivers: 
- This specifically developed computer software enables the interaction with the hardware devices. 
- It creates an interface through which communication can be done with the device via communications sub system or bus i.e., the means through which the hardware is connected to the system. 
- This computer program depends up on the hardware but is also specific to the operating system.
- It enables an applications software package running under kernel in order to interact with the hardware device transparently.
- Further, it raises the requisite interrupt required for handling asynchronous time dependent interfacing needs of the hardware. 
- Abstraction is the key goal of the device drivers.
- Every hardware model is different and so the operating system cannot know about how each device will be controlled. 
- The way the devices should be controlled is now dictated by the operating systems as a solution to this problem. 
- Therefore, translating the function calls from the OS into calls specific to the device becomes the purpose of the device drivers. 
- Any device would function properly if a device driver suitable to it is available which will ensure the normal operation of the device from the viewpoint of the OS. 

Read the next post "What are different components of operating system? – Part 5"


Thursday, April 11, 2013

What are different components of operating system? – Part 3



6.   Virtual memory: 
- This is that component of the operating system that lets it trick programs to use the memory that scattered all around the RAM and hard disk as one continuous memory location. 
- This chunk of memory is called the virtual memory.
- Using various means of virtual memory addressing such as segmentation and paging implies that it is up to the kernel for choosing the type of memory that might be used by the program at a given time. 
- This enables the use of same memory locations by the operating system for executing multiple tasks. 
- If a program makes an attempt for accessing memory that does not lie in the present range of memory that is accessible but has not been allocated, an interrupt is raised for the kernel in the same way as it would be done for the program if it would exceed its memory. 
- Such an interrupt is called as a page fault.
- When a page fault is detected by the kernel, the virtual memory range of the application is adjusted through which the access to memory is granted to it. 
- In this way, discretionary power is given to the kernel over the memory storage of a particular application. 
- The frequently accessed memory is stored temporarily on the hard disk or other types of media in today’s operating systems. 
- This is done to make some space for the other programs.
- This process is termed as swapping because a memory area is used by a number of programs and its contents can be exchanged or swapped with that of the other memory locations up on demand. 
- Virtual memory is a way of gaining a perception such that amount of RAM is larger than usual in the system.  

7. Multi – tasking: 
- Execution of multiple programs that are also independent on the same system is termed as multi–tasking. 
- It gives appearance that the tasks are being performed at the same time. 
There are computers that are capable of running at the most two programs simultaneously through the principle of time sharing. 
- A share of computer time is used by each of the programs for their execution. 
A piece of software known as the scheduler is contained in the operating system whose purpose is to determine how much time will be spent for the execution of every program, and in which order it would take place.
- It also determines how the control will be passed to the programs. 
- The kernel then passes the control to the process allowing the program to access the memory and the CPU. 
- Later on, through some mechanism the control is returned to the kernel so that CPU might be used by some other program. 
- This process of passing control between the application and the kernel is referred to as the context switch. 
- The concepts concerning the application preemption have been extended and used by the modern operating systems in order to maintain preemptive control over the internal run times. 
- The philosophy that governs the preemptive multi–tasking is to make sure that regular time of CPU is given to all the programs.

Read the next post "What are different components of operating system? – Part 4"


Wednesday, April 10, 2013

What are different components of operating system? – Part 2


All the components of an OS must exist in order so as to make the different parts of a system work together in cooperation. All the hardware needs of a software application are satisfied only through the operating system, be it as simple as mouse movement or as complex at Ethernet.


4. Modes: 
- A number of modes of operations are supported by today’s CPUs. 
- CPUs having the capability to support multiple modes at the least use the following two basic modes:
Ø  The supervisor mode: The kernel of the operating system uses this mode for accomplishing low level tasks i.e., the tasks that have no restricted access to the computer hardware. Few examples of such tasks are: communicating with devices such as the graphic cards and maintaining a control over the read, write and erase operations of the memory.
Ø  The protected mode: This mode is just the opposite of the previous one and so is use for everything else. Application software which runs under the protected mode can access the computer hardware only by going through the kernel which in turn controls the tasks only in supervisor mode.
- There are other types of modes similar to the above two, such as virtual modes that might be used by the CPUs for emulating old types of processors such as the following: 32 bit processor on a 64 bit processor or a 16 – bit one on a 32 bit one etc.
- The former one is the mode in which a computer runs automatically after start up. 
- The first programs that run include EFI or BIOS, OS and the boot loader. 
These programs require unlimited access to the computer hardware because a protected environment can only be initialized outside of one. 
- The CPU is transferred to protected mode only when the control is passed to some other program by the operating system. 
- When a program is running under the protected mode, the number of CPU instructions to which it is granted access might be very limited. 
- If a user wishes to leave the protected mode, he / she can raise a interrupt that will pass the control again to the operating system. 
- This is how an operating system maintains an exclusive control over the issues concerning access to the memory and the hardware. 
- One or more CPU registers that consist of information that is prohibited to be accessed by the currently executing program are collectively termed as the ‘protected mode resources’. 
- If at all an attempt is made for altering this resource, the system switches to supervisor mode.
- Now it is the OS who deals with such illegal operations. It may kill the program.

5. Memory management: 
- Kernel of a multi–programming OS is held responsible for the management of the system memory that is currently under use by the programs. 
- Kernel ensures that the programs under execution do not interfere with the memory being used by the each other.
- Since time sharing principle is followed; each of the programs is given an independent access to the system memory. 
- Early operating systems used to have a cooperative memory management system. 
- It was assumed that all the programs used the memory manager of kernel voluntarily without exceeding the memory limit assigned to them. 
- However,this system of memory management is extinct now because there are bugs in programs that cause them to exceed the limits.
Failure of a program might cause the memory to be overwritten by the other programs using it. 
- Memory being used by the other programs might be altered by some viruses or malicious code for some purpose which in turn may affect the working of the OS. 
- In such management, the misbehaving programs can crash the whole system. 
- Kernel limits the access to memory for various programs through various methods of memory protection such as paging and segmentation. 

Read the next post (What are different components of operating system? – Part 3)


Tuesday, April 9, 2013

What are different components of operating system? – Part 1


All the components of an OS must exist in order so as to make the different parts of a system work together in cooperation. All the hardware needs of a software application are satisfied only through the operating system, be it as simple as mouse movement or as complex at Ethernet.

1. Kernel: 
- This component of the OS is the medium through which application software can connect to the computer’s hardware system. 
- This component is aided by many device drivers and firmware. 
- With the help of these, it provides a very basic control level for all the hardware devices of a system.
- For programs, the memory access in RAM and ROM is managed by kernel only. 
- It is the authority of the kernel to decide which program should get what access and at what level. 
- The operating state of the CPU is set up the kernel itself all the time. 
- It prepares the data to be stored in long term non–volatile storage like in flash memory, tapes, and disks and so on.

2. Program execution or process: 
- The OS is actually an interface between the hardware and the application software.
- An interaction between the two can be established only if the application abides by the rules and procedures of the operating system as programmed in to it. 
- It is another purpose of the operating system to provide a set of services for simplifying the execution as well as development of the programs. 
- Whenever a program is to be executed, a process is created by the kernel of the operating system and then other required resources such as memory are assigned to it. 
- A priority is assigned to this process if it is a multi–tasking environment. 
- The binary code for the program is loaded in to the memory and the execution is initiated.

3. Interrupts: 
- This component is the central requirement of the operating systems. 
- This is so because the interrupts provide a way of interaction between the OS and its environment which is not only reliable but also effective. 
- The older operating systems worked with very small stacks and therefore watched for the various input sources requiring action for initiating some event (called polling).
- This strategy is not useful in today’s OS that use very large stacks. 
- Here, interrupt - based programming is fruitful. 
- The modern CPU have in – built direct support for these interrupts. 
- With the use of interrupts, a computer knows when to automatically save the contexts of the local registers or run some specific code in response to the occurring events. 
- Hardware interrupts are supported by very basic of the computers. 
Interrupts let the programmer to specify what code is to be run when a certain even occurs. 
- When hardware receives an interrupt, it automatically suspends the current program being executed by it. 
- The status of the program is saved and the code associated with the interrupt is executed. 
- In modern operating systems, the kernel is responsible for handling the interrupts. 
- Either of the running program or the computer’s hardware might raise an interrupt. 
- When an interrupt is triggered by a hardware device, it is left to the OS’s kernel to decide what to do now through execution of some code. 
- The code that has to be run is decided based up on the interrupt’s priority. 
The device driver is the software to which all the task of the processing hardware interrupts is assigned. 
- A device driver might be a part of the kernel, or some other program or both.


Tuesday, October 16, 2012

How Silk Test records user actions?


Software systems or applications as we all know are composed of a GUI or graphical user interface objects such as those mentioned below:
  1. Windows
  2. Menus
  3. Buttons and so on.
These GUI objects can be manipulated by the user via a mouse or a key board for initiating the operations on an application.
These GUI objects are interpreted by the silk test and are recognized in to different categories based up on the following aspects that uniquely identify them:
  1. Class
  2. Properties and
  3. Methods
While the testing is in progress, an interaction takes place among the silk test and the GUI objects so that the operations can be submitted to the application under testing or AUT automatically without much efforts and also because the actions of a user can be simulated. 
This is also done to verify the results of each and every operation. The silk test is said to be the simulated user which is then said to drive the application under test or AUT. 

The silk test comes with two distinct components namely:
  1. The silk test host software
  2. The silk test agent software
- The first component of the silk test i.e., the silk test host software is used for developing, editing, compiling, running and debugging of the test plans as well as the test scripts. 
- The machine on which this component is installed is called the host machine. - The latter component of the silk test i.e., the silk test agent is the one that interacts with the graphical user interface of the application under test. 
- The commands present in the 4test scripts of the application are translated in to GUI specific commands which help in driving and monitoring the application under test.
- It is possible to run the agent locally on the same machine on which the host is already running or else it can be run in a networked environment. 
- But in this case, the machine will be known as the remote machine. 

How the user actions are recorded by the silk test?

 
- A repository is created for storing the information regarding the application under test or AUT before the test scripts are created and executed. 
- This repository consists of the descriptions of the GUI objects that are responsible for compromising with your application under test. 
- The silk test associates with these objects by means of two things namely:
  1. Object properties and
  2. Object methods
- Using these two aspects the actions performed on the objects can be easily recognized by the silk test and can be intelligently recorded in to the test script using the 4test language. 

Below we are giving some examples of what is recorded by the silk test for some user actions:
-User action
  As recorded by the silk test
-Selection of a radio button from a group
  select
-Setting the main window as active
  Set Active
-Closing a dialog box
  close
-Selecting an item from a list box
  Select
-Scrolling the scroll bar to the maximum position possible
  Scroll to max
-Writing text in a text field
  Set text
-Checking a check box
  Check
-Picking a menu item
  pick
-Unchecking a check box
  uncheck

- A property is that characteristic of an object that can be accessed directly and may be common among some classes. 
- On the other hand, the methods constitute of the user actions and are particular to an object. 
- Methods that are particular to an object are inherited from the parent class of the object. 
- Methods are unique to the objects of a class. 


Wednesday, September 12, 2012

How will you call from one action to another action in QTP?


In the test scripts produced with the help of quick test professional, one action can be called from another action. In this article we are going to discuss the same i.e., how this can be done? 

How to call from one action to another action?

- A call to a reusable action can be inserted easily that might be stored in some local test (current test) or in some external test (external test). 
- Calling one action from some other action is just like inserting an action call in an existing action or just linking it to it.
- The steps involved in this whole process can be viewed using the action view tool but they cannot be modified. 
- The local object repository of the action that has been called is read only. 
- It is not necessary that each and every calling and called action must have a local object repository. 
- It may or may not have a repository.
- If the external action that has been called has some data in the data table, you get two options:
  1. Either you take the data from the data sheet of the action and import it as a editable or local copy,
  2. Or you take the data from the original action but here the data is read only type.
- The data obtained from the global data sheet of the action that has been called is imported to the test as an editable and local copy of data.
- In order to modify an existing external action you need to open the particular test where you have the action stored and make modifications there itself. 
These modifications will be visible in all the tests that will call that particular function. 
- If you choose to go for the second option as mentioned above then the changes that you will make will apply to original data as well. 

Step by step procedure of how a call to an action can be inserted?

  1. Go to insert menu, the select the “call to existing action” option and you will be provided with a list of actions. From that select “insert call to existing action” or you can also right click on any of the steps. The go for the action button and then click on “insert call to existing” option. Now a action properties dialog box pops up.
  2. There is a browse button called “from test” and can be used to find the test that holds the action to be called. All the reusable actions in the test that you select are displayed in this action box.
  3. From the action that is displayed select the action that is to be called and its type as well as description both are displayed if available. This type and description help you further in proper identification of the action that you wish to be called.  You can even set other properties of the actions by going to the “setting general action properties”.
  4. Now you are done with setting the properties, decide on where the function has to be inserted. For inserting the function you are provided with two options namely:
a)   After the current step or
b)   At the end of the test
There is one thing to be noted which is that if the step that is in current selection is a reusable action from some another test, then the action call is added at the end of the test automatically.
  1. Now the last step is to just clock on the OK button and you have your action inserted. This action can be moved to any other desired location by just dragging it to that position.


Thursday, September 6, 2012

What is split action and the purpose of using this in QTP?


Well, here is another article that talks about what is meant by split action and what purpose does it has to serve in test automation using quick test professional. 
In quick test professional, after recording of an action it has to be split in to various parts. This is known as split action. 

In quick test professional two types of split actions have been provided as mentioned below:
  1. Splits independent to each other and
  2. Nested splits
- After the recording is complete, it is run and designed the option “keyboard view” is selected and the part to be highlighted is clicked. 
- After this the “split action” option is selected from the step menu for splitting the action. 
- Before you decide to split, you should always remember that once you split the action, it cannot be undone. 
- Your original recorded action will be lost and you won’t be able to recover it. - Therefore, to avoid such kind of situations it is important that the recorded action must be saved the very before splitting it. 
- Saving before splitting is always recommended.
- In some cases multiple split actions that are independent of each other can be obtained. 
- There are several advantages of split action:
  1. With the actions tests can be divided in to business processes and logical units.
  2. With actions quite a modular and efficient scripts can be created.
  3. Multiple actions can be contained within a test script.
- The action that is stored in the test scripts that you recorded can be split either in to parent child nested actions or in to sibling actions. 
- Whenever you split an action the beginning of the other part of the action takes place from the step that was selected during the process of splitting the action. 
- You cannot split an action under following situations:
  1. If you already have an external action in selection.
  2. You have selected the first step of an action.
  3. Some read only test is active.
  4. Running a test
  5. Recording of a test is in progress.
- Some tests make use of a local repository and so while splitting actions contained in such tests following things happen:
  1. A copy of local repository is created by the quick test professional.
  2. The two action splits are assigned the identical local object repositories. Such local repositories consist of all the objects that were present in the original local object repository.
  3. If the objects are added to only one of the split actions, those objects are added to the local object repository of that action only.
- To split an action you need to select the particular step before which according to you lies the starting of the second action. 
- Now, go to the edit menu, the action, and then to split action. 
- Up on clicking on this option you get a split action dialog box. 
- Select the type of actions you want to have i.e., independent or nested. 
- Here, you can also modify the names and description of the two actions in their respective names and description boxes. 
- One important point that you should always take care of is that if you call a reusable action through another test, splitting such an action will cause the test to fail.

Basic purpose of Split Action

- The basic purpose the split action serves is that it makes the application reusable. 
- The reusability is increased since the actions are divided based up on their functionality. 
- Another point is that calling an action is same as asking to execute it and only reusable functions can be called. 


Monday, August 27, 2012

Is load testing possible using WinRunner? Does WinRunner help you in web testing?


Winrunner, apart from just serving as a test automation tool has also proved itself to be quite an effective tool for load testing. However, the winrunner can function as a load testing tool only at the level of the graphical user interface layer.  
Why it is so?
- This is so because at this level only the record and play back options are possible as if they are being carried out by a real world human user. 

How is load testing possible using WinRunner?

- The loadrunner counterpart of the winrunner is the proper load testing tool but sometimes winrunner is also used as one in addition to it. 
- Firstly, a user session such as a web browsing session is simulated. 
- The user actions taking place are recorded by the winrunner and are used for load testing. 
- No action is taken at the protocol layer by the wirnunner except recording and playing back of the events and all this seems as if some invisible real world human user is performing all these actions. 
- For the winrunner to perform load testing, it is required to give the control of the pc to it so that it can execute the previously recorded test scripts. 
- But at the same time a load test cannot be run in winrunner as a means of load generation. 
- The number of PCs required is directly proportional to the load that has to be given to the software system or application. 
- In spite of this disadvantage the winrunner will always be valued as a good load testing technology which provides the only means for the determination of the actual user response time. 
- The actual user response it calculates is inclusive of the processing that takes place on the side of the client hardware.

How WinRunner helps you in web testing?

- The context sensitive operations on the web (HTML) objects present in the web site can be recorded and run by the winrunner when it is loaded among with the web test add- in support. 
- This works if the web site in the browsers such as the internet explorer and Netscape. 
- With the help of the web test add- in, the properties of the web objects can be viewed and the information regarding the web objects present in the web site can be retrieved. 
- The check points can be created on the web objects present in the web site for the testing of the functionality of the web site. 
- Apart from internet explorer and netscape, the web browser AOL can be used for running tests and recording the objects in the web site but cannot be run or recorded on the following web browser elements:
  1. Back button
  2. Forward buttons
  3. Navigate buttons and so on.
- When the tests are created using the web test add- in the below mentioned objects are recognized by the winrunner:
  1. Text links
  2. Frames
  3. Images
  4. Web form objects
  5. Tables and so on.
- Different properties are possessed by every object. 
- These properties form a key aspect in the following tasks:
  1. identification of the objects
  2. Retrieval and checking of the property values.
  3. Performing web functions.
- All the above three tasks ensure that your web site is working perfectly or not. 
- You should take care that you start the winrunner with the web test add- in loaded in before you open your web browser to start the web testing. 
- The recorded tab of the GUI spy can be used for viewing the properties and values of the properties that were recorded by the winrunner for the selected GUI objects.
- This is how the winrunner makes it possible to do the web testing. 


Sunday, August 12, 2012

When do you go for Context Sensitive and Analog recordings? What's the difference between them?


Winrunner was developed as an automated load testing tool by the firm of HP (Hewett Packard) and it operated at the level of graphical user interface layer. You must be wondering why it was operated only at the GUI level? This is so because it was possible only at this level to record as well as play back the user actions from a large number of software systems and applications just as a real world user would do.
The winrunner provides us with two types of recordings namely context sensitive recording and analog recording. 

Context Sensitive Recording


- With the help of this mode all your actions on the software system or application in terms of the user interactions can  be recorded  while physically ignoring the location of the objects (windows, lists, buttons and so on) on the graphical user interface.
- Whenever some action is performed on the software system or application which is under question, the generation of a statement in TSL takes place. 
- As the recording goes on, a unique description for each and every selected object is written to a map called GUI map by the winrunner tool. 
- This GUI map keeps within itself all the files from the test scripts created by you and maintains all of them separately. 
- Suppose you fall in a condition where you got to change the graphical user interface of your software system or application.
- In such a case you only need to update all the test scripts present in the GUI map and you do not need to perform any 1000 number of tests. 
- With such a facility you not only save time but you are also able to reuse all of your context sensitive test scripts for the future versions of your software system or application that you plan to develop further. 
- In context sensitive recording, playing or running a test is quite easy and you just need to play back the associated test script. 
- A real world user is emulated by the winrunner software by carrying out user like options such as pointing the mouse to some object, selecting or deselecting the objects, entering words from keyboard and so on. 
- The object descriptions that we earlier had fed to the GUI map are read by the winrunner and then those objects are searched in the software application under test to match.  
- The objects can be tracked even if their placements have been changed. 

Analog Recording


- In this type of winrunner recording, mostly the events like those mentioned below are recorded by the winrunner:
a)    Mouse clicks
b)    Input entered via the key board
c)   The exact x and y coordinates travelled by the mouse pointer and so on.
- While the test is executed or the test scripts are played the mouse tracks are re- traced by the winruner.
- However, one thing should always be kept in mind that winrunner is used only when the exact mouse coordinates are of utmost important to your test case and also when you have to test some drawing software application. 
- It is almost impossible to capture the GUI elements like objects and windows with the analog recording. 
- To say it simply, the analog recording holds good for the software systems and applications containing bitmap areas.

If you starting afresh with the winrunner it is recommended that you go for context sensitive recording since here you don’t have to go for exact mouse tracks. 


Facebook activity