Subscribe by Email


Showing posts with label Portable. Show all posts
Showing posts with label Portable. Show all posts

Wednesday, May 15, 2013

Define a system call? List the different types of the system calls?


- A program can request for services from the kernel of the operating system through a system call. 
- These services include all the following:
  1. Hardware related services such as data access from the HDD.
  2. Creation and execution of processes
  3. Communication with integral services of the kernel such as scheduling.
- An essential interface is provided by the system call that lies between the operating system and the process. 
- The modern microprocessor architecture consists of a security model specifying multiple levels of privileges for the execution of the software. 
- For example, a program has limitations of its own address space so even by accident it does not modify or access the programs that are executing or the OS. 
- This way the direct manipulation of the hardware devices (such as the network devices and frame buffer etc.) by the program will also be avoided. 
- However, this is not the only case.
- There are situations where the programs really need access to these devices. - This is why the system calls are made available to the programs. 
- System calls ensure that such operations are safely implemented and are well defined. 
- The level at which the operating system executes is the highest privilege level.
- Therefore, the applications requests for the devices to the operating system through the system calls. 
- The execution of the system calls is carried out through the interrupts that would automatically put the CPU at the required level of the privilege. 
- After this, the control is passed on to the kernel. 
- From here the kernel determines whether or not the requested service should be granted to the calling program. 
- If the program is granted the service it requested, a specific instruction set is executed by the kernel which cannot be directly controlled by the calling program.
- These instructions return the privilege level down to that of the program that invoked the call. 
- Finally, the control is returned to the calling program.
- Generally, an API or a library is provided between the operating system and the normal programs. 
- The purpose of this library is to provide wrapper functions for the calls. 
- The names of these functions are same as that of the system calls. 
- The purpose of these functions is to expose a subroutine through which the system call can be used.
- These functions also provide modularity to the system call. 
- But above all, the primary function of the wrapper is placing the arguments in their proper processor registers that are to be passed on to the system call.
- A unique system call number is set that will be called by the kernel. 
- In this way, the portability is increased by the help of this library.
- Making direct system calls in the code of the application is very difficult and so requires embedded assembly code.
- In systems based up on ex-kernel, library is as important as the intermediary as they provide resource management, abstractions and shields the application from a low level kernel. 
- A control transfer involving features specific to the architecture is required for the implementation of the system call. 
- A way of implementing this is by using a software trap. 
- RISC processors can only use the implementation technique via interrupts. 
- But there are some other additional techniques for processors with CISC architectures. 
- One example is of the following two sets developed independently by Intel and AMD respectively for serving the same purpose:
SYSRET/ SYSEXIT
SYSCALL/ SYSENTER
- These were actually control transfer instructions and very fast indeed. 


Thursday, January 3, 2013

What are Selenium components?


Selenium is a portable testing frame work developed by Jason Huggins for automated testing of the web applications. It is specifically a recording and play back tool which eliminates the user’s task of learning a test scripting language. This tool makes use of its own development language popularly known as selenese.
There are 3 major platforms for selenese namely linux, windows and macintosh.

Components of Selenium

The selenium software testing frame work is composed of certain components about which we shall discuss in this article. Following are the components:
  1. Selenium IDE: This the selenium’s own integrated development environment dedicated to the creation of the selenium’s tests. This component needs to be implemented as an extension to firefox. Using this IDE, the scripts can either be automatically recorded or edited manually with the help of the IDE’s auto-completion support. It also possesses the ability to quickly move the commands around. However the scripts recorded are in selenese language. This language provides commands basically for two purposes:
a)   For retrieving data from commands to know what actions are to be performed on the web browser such as clicking, linking, selecting an option and so on.
b)   For retrieving data from the result of the actions performed by the commands.
       Its features are:
     a)   Recording and playback tool
     b)   Intelligent field selection
     c)   Autocompletion
     d)   Walk through tests
     e)   Debugging and setting break points
     f)    Saving tests in a number of formats
     g)   Selenium user extension
     h)   Automatic assertion of the page title.

  1. Selenium client API: It is not necessary for the tester to develop tests in selenese  only rather he can write tests in any other programming language. The tests thus written will be communicated to selenium through the calling methods provided by selenium client API. Selenium provides this client for the following languages:
   a)   Java
   b)   C#
   c)   Python and
   d)   Ruby

  1. Selenium remote control or selenium RC: This component is actually a server implemented in java which retrieves commands via HTTP for a particular browser. With this selenium component it has been made possible to write automated tests regardless of the the programming language for a web application and integrating it with the unit test frame works which already exist. Selenium project comes with client drivers for the following languages in order to make writing tests and easier task:
     a)   PHP
     b)   Python
     c)   Ruby
     d)   .net
     e)   Java and
     f)    Perl

The java driver provides support for the java script also through the rhino   engine. Nowadays a new selenium remote control server is required for launching the HTML test cases which requires for a different port for each of the parallel run. This is in contrast with the PHP and java test case since these require only one continuously running selenium remote control. The selenium B and driven selenium were re-factored by Paul Hammant to develop selenium RC. This also saw the re – implantation of the wire protocol in each of the language ports. After re-factoring, an intermediate daemon processing was done between the browser and the driving test script. As a result driving remote browsers and reducing the need of porting every code statement became possible. Thus the driven selenium was completely taken over by the selenium remote control. 


Wednesday, January 2, 2013

What is Selenium software testing framework?


Selenium software testing framework is portable frame work that has been developed exclusively for the development of the web applications. It actually works as a record and play back tool for the guiding of the tests without having to learn about a TSL or test scripting language. 
The selenium software testing frame work comes with its own test domain – specific language known by the name of selenese which can be used for developing tests in a no. of prominent programming languages such as the following:
  1. C#
  2. Java
  3. Groovy
  4. PHP
  5. Perl
  6. Python
  7. Ruby etc.
The tests thus developed can be executed against a number of modern web browsers. The selenium frame work can be deployed on the following three platforms:
  1. Windows
  2. Linux
  3. Macintosh
- Selenium is one of the best open–source software that are available to us today. 
- It was released as an OSS under the license – apache 2.0 and so you won’t be charged for downloading and using it.
- The software got its name for a joke cracked by Jason in an email in which he mocked his competitor by saying that he can cure mercury poisoning with the help of supplements from selenium. 
- The other people who received this email began using this name and eventually the software was named so. 
- The selenium grid represents the latest side project which is known to provide a hub enable execution of the multiple selenium tests on a local and remote system and that too concurrently. 
- This is being done as an effort to minimize the time taken for execution. 
- The selenium provides you with a number of robust tools which one use for the rapid development of the automated tests for testing the web based applications. 
- Plus, it also comes with a number of rich features and functions which have been exclusively for designing the web applications. 
- The operations which are carried out by the selenium framework are highly flexible in nature and allow for the location of the UI elements with supported by a number of options. 
- Also, the selenium frame work accounts for comparing the actual and the expected test results. 
- Selenium’s key feature lies in the support it provides for the execution of one test on a number of browser platforms. 
- The selenium frame work is composed of three major tools each of which plays an important and unique role in the development of the tests for web applications:
  1. Selenium IDE
  2. Selenium remote control
  3. Selenium grid
- There are number of ways in which functionality can be added to the selenium’s frame work to further customize the tests in order to suit one’s specific needs.
- This characteristic that makes the selenium frame work outstanding among the rest. 
- The RC support from the selenium assists the test writes in multiple programming by helping them develop any logic they require for automated testing by using their preferred language. 
- On the other hand, the user can add his own defined extensions via the selenium IDE for creation of additional customized commands. 
- The selenium RC code generated by the selenium IDE can be reconfigured easily which lets the testers generate code that would fit their testing frame work. 
- Also, since the selenium is open to all, all are free to submit their contributions for its enhancement and modification. 


Sunday, June 3, 2012

What is meant by CRC cards? How they are used in extreme programming?


In its full form the CRC cards are known as “class responsibility collaboration cards” and have been considered to be a brain storming tool in the field of designing of the object oriented software. 
The concept of the class responsibility collaboration i.e. the CRC cards was introduced by the two people: Kent Beck and Ward Cunningham. 

What is written on index cards used in CRC cards?


- These cards find their typical use in the determination of the classes that are needed and also regarding their interaction among themselves. 
- The creation of a typical CRC card is regulated by the use of index cards on which the following 5 basic things are written:
  1. The name of the class.
  2. If applicable its super classes and sub classes.
  3. The responsibilities of the class.
  4. The name of the other classes involved in the collaboration for the fulfilment of the responsibilities.
  5. The name of the author.

What kind of CRC card should be used?


- To keep the complexity levels of the program design at minimum it is recommended that a small card is used. 
- Such a card helps the designer to focus up on the essential requirements of the class and thus preventing the designer from falling unnecessarily in to the details of it. 
- Also, the designer is prevented from getting in to the inner workings at one time when so much of detail holds the chances of becoming probable counter- productive thing. 
- The class responsibility collaborative cards are a means for forcing the designer to keep the class refrained from too many responsibilities.
- Since the cards have the property of portability, hence it becomes easy to lay them out on a table and re arrange them according to the designs discussed by the team members with the other people. 

Method for determining type of card


- A method for determining the types of the cards required is recently becoming very common. 
- The method consists of determining what all cards should be created by reading all the specifications regarding the program that is being designed.
- It also takes in to consideration of each noun as a class and on the other hand each verb as a responsibility of the class or the noun to which it rightly belongs. 
- To be more precise, you will find that the existence of the nouns or the verbs does not calls for a class or responsibility in the program, though it is still considered to be a good point to start with. 

Below we have given an example of the class- responsibility collaboration card’s format so that it becomes easy for you to understand how actually it displays the information:

- Name of the class: super class
- Sub classes: (lists the name of the classes that are derived from this class)
- Responsibilities: list all the responsibilities of the classes and description of the methods being used.
- Collaborations: this lists the relationship of the class to the other classes.

Use of CRC cards in Extreme Programming


- The CRC cards have played a great role in helping the developers design the software system or application as a team. 
- The best thing with the use of the CRC cards is that they allow the developers to break away from the usual monotonous procedure and follow new routines.
- With the help of the CRC cards the entire project team is able to give the individual contribution in the development of the software project.
- This further leads to the incorporation of more individual and creative ideas in to the design of the system.
- For every object there is an individual CRC card. 


Thursday, April 12, 2012

What are different features of smart phones?

Smart phones are now becoming a much in demand essential commodity for this third generation world. The demand for the smart phones has been increasing rapidly since the advent of much advanced and sophisticated technology.

One should be well versed with the current technologies in this tech savvy world and so we have this dedicated entirely to the discussion regarding smart phones.

Features of Smart Phones


- A smart phone is also like a mobile phone, but then what makes it different? Of course it’s so called smart features!

- A smart phone like any other phone is built up on a mobile computing platform but having more capabilities, abilities and connectivity when compared with their ordinary mobile counterparts.

- Today’s smart phones much like the earlier smart phones are incorporated with all the functions of a PDA (personal digital assistant), a camera as well as mobile phones or feature phones.

- But today’s technology has advanced so much so as to build smart phones that have functions of portable media players, pocket video cameras, compact digital cameras, GPS navigation units and so on incorporated in to them.

- The modern i.e., to say the recent smart phones come with more typical features like web browsers and super amoled touch screens which make the accessing of the web much easier than the ordinary feature phones on which only those web sites or pages can be viewed that have been optimized for the mobile phones.

- These smart phones are very much capable of displaying and accessing the standard web pages developed even with a very high resolution.

- Mobile broadband and wi- fi have also been incorporated in to these smart devices to provide them the ability of accessing data at high speeds.

- Many of the smart phones make use of the following operating systems:
1. iOS from Apple
2. Android from Google
3. Microsoft windows phones
4. Symbian from nokia
5. RIMS’s blackberry OS
6. Embedded Linux like MeeGo and Maemo etc

- The smart phones are designed in such a way that any OS can be installed on different models as well as one device is capable of receiving updates of more than one OS software all during its life time.

Difference between Feature phones and Smart phones


- Till now no official definition has been given regarding the difference between the feature phones and the smart phones.

- But, one point of significance is that the advance APIs or application programming interfaces for smart phones can run the third party applications with better integration with the operating system of the phone and its hardware.

- This much integration is not seen in ordinary feature phones.

- The feature phones in contrast to the smart phones make use of the proprietary firmware.

- A third party support is provided to these phones through platforms like BREW or Java ME and so on.

Features of first Smart Phone


- The first smart phone that was introduced was the IBM simon which was introduced in the year 1992. It had the following features:

1. Address book
2. Calendar
3. World clock
4. Note pad
5. Calculator
6. E- mail client
7. Fax and email features
8. Games

- It made use of a touch screen and stylus like modern smart phones.

- It lacked the ability to download third party applications as well as camera.

- However, that phone was highly sophisticated when compared to the other devices of that time.

Features of Nokia Communicator


- After that the nokia introduced its first smart phone range called “Nokia Communicator” releasing Nokia 9000 first in the range.

- The phone in this series had a clam shell like design with a QWERTY keyboard and a display with high resolution of 640 x 200 mega pixels.

- The screen sizes for the smart phones lie between 2 to 4 inches when measured diagonally.

- Some even come with a screen size of 5 inches but, this some what reduces the usability of the phone.


Monday, January 23, 2012

How to test a User Interface based application page?

A user interface can be described as an interface that allows the users to interact with the system. GUI is an interface that allows the users to interact with the help of images rather than textual commands.

- User interfaces are used in computer systems, other hand held electronic devices such as portable media players, I pads, I pods, cell phones, gaming devices or mp3 players etc.

- An user interface makes the information and actions available to the user through some graphical images or icons and other visual indicators.

- These can be thought of as a kind of secondary notation as contrary to the text based interfaces, text navigation or typed commands.

- Using a graphical user interface, tasks are performed by the direct manipulation of the graphical icons or elements.

- The scope of a GUI is restricted to the two-dimensional display screens that have high display resolutions which are able to describe generic information.

It is a very common problem of how to effectively carry out UI based testing on an application page?

It is always said that user interface testing is very difficult or hard and less possible.But it is not so! What we actually need is the right kind of design.

- With a right and appropriate design, user interface testing becomes as easy as any other kind of testing.

This will become clear with the following example:
- Let’s say a common user interface component like a login page is to be tested.

- The most important thing here is to separate the user interface from the data and the logic.

- This task can be accomplished using can be done with the help of model that follows the view controller design pattern.

- The model is used as the data.

- There is one more thing about which you should be careful.The dependence order of the source code must be expressed in the following order:

View -> controller -> model

- The point of view of testing, this order should not be broken.

- We can say that there is no direct relationship that exists between the model and the controller.

- Neither transitive dependency is allowed nor is direct dependency allowed.

- Here we can merge the controller and model together if we are not going to use the model again.

- Here the controller is aware of model but the model knows nothing of the controller.

- In the case of this login page, we started with a model or controller package and it was observed that the controller mimics the user interface quite well.

- Each entry field was assigned a field and finally each action was assigned a method.

- We know that the view can directly access the controller and all the textual inputs corresponding to their respective fields as per the controller.

- The values are bound to the destination at the run time.

- The login button is then bound to the login method as described in the controller.

- Due to this binding, the controller is effectively separated from the view. So, now testing of the controller can be focused upon.

- Errors are usually discovered in the logic but not in the code.

- This method is 90 percent beneficial.

- Impedance mismatch is not at all desirable since it can cause marshalling of code which can result in the complication of the whole controller.

Drawbacks of the above method
- Though this method is very useful, it can lead to bugs that can be time consuming to rectify.

- The other drawback is that the approach also gets complicated with the complex user interfaces.

- To test complex UI based application pages you need to create additional required components on the go.


Monday, March 28, 2011

What are different activities that comprise Software Quality Assurance?

To build a quality software, software quality assurance comprise of different activities. People involved are development team and software quality assurance team. The team of software quality assurance is responsible for quality assurance planning, overseeing, analyzing, record keeping, defects analysis and rework.

The activities encompassing software quality assurance are:
- Software Quality Assurance Plan is prepared by SQA team. They identify the evaluation to be performed, audits and reviews to be performed, standards that are applicable, procedures for error reporting and tracking, documents to be produced and amount of feedback required.
- SQA team checks if the selected software development process conform to the organizational policy and quality standards.
- SQA team monitor and track deviations from the software development process. It reviews software engineering activities.
- SQA team reviews, monitor and track defects found with each work products. Documentations are done to ensure that corrections have been made.
- The SQA team ensures that deviations in the software activities and work products are handled based on defined standard operating procedures.
- The SQA team reports deviations and non-compliance to standards to the senior management or stakeholders.

Software quality assurance plans saves time, money, increases productivity, enhances training, provides extra support.


What is Software Quality Assurance (SQA)? What are characteristics of a well-engineered software?

Software Quality Assurance(SQA) is a function of software quality that assures that the standards, processes, and procedures are appropriate for the project and are correctly implemented.
- It is a subset of software engineering that ensures that all deliverables and work products are meet, and they comply with user requirements and standards.
- Its goal is to detect defects before the software isdelivered as a final product to the end-users.
- It includes quality management approach.
- It includes effective methods and tools.
- It includes formal technical reviews.
- It includes a multi-tiered testing strategy.
- It includes control of software documentation.
- It includes a procedure to assure compliance with software development standards, and measuring and reporting mechanism.

How do we say that the software is well-engineered?

- A software should be easy to use by the user.
- A software should have the capability to be able to execute on different platforms.
- A software should be able to transfer from one system to another.
- A software should be able to evolve and adapt to changes over time.
- A software should be reliable, secure and safe.
- A software should be capable of using resources efficiently.

A software has quality if it is fit for use, i.e., it is working properly. It should conform to explicitly stated user's external characteristics, explicitly documented quality standards and implicit characteristics.


Wednesday, January 12, 2011

Model Driven Architecture (MDA) - Advantages and MDA Process

The MDA is a new way of writing specifications, based on a platform-independent
model.

Why should we use Model Driven Architecture


- Portability
- Interoperability
- Domain facilities provide much wider interoperability.
- MDA allows to model the functionality and behavior only once, therefore saves a lot of time.
- Requirements are always changing.
- New technology is arising.
- Require to integrate old system with new system, and any other system in future.
- MDA makes it easier to integrate applications and facilities across middle-ware boundaries.

Model Driven Architecture Process


THE BASIC PROCESS
- To construct a MDA application, the first step is to create a computation independent model(CIM) by a business analyst.
- The CIM is transformed into platform independent model(PIM) by enterprise architect.
- The resulting PIM has to be targeted to a platform to complete the build process.
- The transformation of a PIM to a PSM will be done by a platform specialist.

THE COMPLEX PROCESS
The process from computation independent model to platform specific model can be a bit more complex.
- Between the models, there can be some gaps present which makes transformation difficult.
- As a result, you can have interrelated models having different layers of abstraction.
- One consequence is that a single layer of abstraction can have horizontal transformations. Consider the example where a PIM is converted multiple times into more detailed PIMs. And there are vertical transformations in addition to vertical transformation of models.


Model Driven Architecture (MDA) - Characteristics and Viewpoints

OMG was formed as a standards organization to help reduce complexity, lower costs, and hasten the introduction of new software applications.
- The Object Management Group (OMG) adopted the Model Driven Architecture as an approach for using models in software development.
- Its three primary goals are portability, interoperability and reusability through architectural separation of concerns.

Characteristics of Model Driven Architecture(MDA)


- MDA enables development of new specifications.
- MDA provides a comprehensive, structured solution for application interoperability and portability into the future.
- MDA consists of services specified by OMG. It also includes directory services, event handling, persistence, transactions, and security.
- MDA enables the creation of standardized domain models for some vertical industries.
- MDA separates the operation of the system from the way it uses its capabilities of its platform.
- MDA enables converting platform-independent models to produce platform-specific models using mappings.

What are different viewpoints of Model Driven Architecture


- The first viewpoint is called Computation Independent Viewpoint which focuses on environment and requirements of the system rather than the details of system's structure and processing.
- The second viewpoint is called Platform Independent Viewpoint which focuses on how the system operates. It hides the details necessary for a particular platform. The part of complete specification does not change when the platform changes.
- The third viewpoint is called Platform Specific Viewpoint which focus on the detail of the use of a specific platform in addition to platform independent viewpoint.


Facebook activity