Subscribe by Email


Showing posts with label Attributes. Show all posts
Showing posts with label Attributes. Show all posts

Saturday, April 20, 2013

Explain the concepts of threads and processes in operating system?


Threads and processes are an important part of the operating systems that have features of multi–tasking and parallel programming. These come under the sole concept of ‘scheduling’. Let us try to understand these concepts with the help of an analogy.

- Consider the process to be a house and threads are its occupants. 
- Then, process is like a container having many attributes. 
- These attributes can be compared to that of a house such as number of rooms, floor space and so on. 
- Despite having so many attributes, this house is a passive thing which means it can’t perform anything on its own. 
- The active elements in this situation are the occupants of the home i.e., the threads. 
- The various attributes of the house are actually used by them. 
- Since you too live in a house you must have got an idea how it actually works and behaves. 
- You do whatever you like in the house if only you are there. 
- What if another person starts living with you? You just can’t do anything you want to do. 
- You cannot use the washroom without making sure that the other person is not there. 
- This can be related to multi – threading. 
- Just as a part of estate is occupied by the house, an amount of memory is occupied by the process. 
- Just as the occupants are allowed to freely access anything in the house, similarly the occupied memory is utilized by the threads that are a part of that process i.e., the access to memory is common. 
- If one process allocates some memory, it can be accessed by all other threads also. 
- If such a thing is happening, it has to be made sure that from all the threads, the access to the memory is synchronized. 
- If it cannot be synchronized, then it becomes clear that the memory has been allocated specifically to a thread. 
- But in actual, things are a lot more complicated because at some point of time everything has to be shared. 
- If one thread wants to use some resource that is already under use by some other thread, than that thread has to follow the concept of mutual exclusion. 
An object known as the mutex is used by the thread for achieving exclusive access to that resource. 
- Mutex can be compared to a door lock. 
- Once a thread locks this, no other thread can use that resource until the mutex is again unlocked by that thread. 
- Mutex is one resource that a thread uses. 
- Now, suppose there are many threads waiting to use the resource when mutex is unlocked, the question that arises now is that who will be next one to use the resource. 
- This problem can be solved by either deciding on the basis of length of wait or on basis of priority. 
- Suppose there is a location that can be accessed by more than one threads simultaneously.
- You want to have only a limited number of threads using that memory location at any given point of time. 
- This problem cannot be solved by mutex but with another resource called semaphore. 
- Semaphore with a count of 1 is the resource that can only be used by one thread at a time. 
- In semaphore of greater count more threads can access it simultaneously.  
- It just depends up on how you characterize or set the lock.


Tuesday, February 26, 2013

Explain Tellurium - Web Functional/Regression Test Tool


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



Friday, October 19, 2012

What are the default test plans attributes? How to define new test plan attributes?


Test plan is one of the important aspects of the silk test and is often characterized by some default attributes called the default test plan attributes. Well, the default test plan attributes are what we are going to talk about in this article. We shall also discuss how new test plan attributes can be defined. 

What is a Test Plan?

- A test plan forms the basis of the primary document that lays down the foundation for the testing that is to be carried out in a manner that is well organized. 
- Test plan is very important for the project managers as it is the document using which the testing projects can be managed well. 
- A badly drawn test plan is just same as not having any test plan.
- On the other hand, an intelligently drawn plan helps in smooth execution of the test cases and analysis of the other testing activities. 
- It would not be wrong to say that the test plan is actually a kind of dynamic document. 
- It acts especially in the spiral environments which have a tendency to change constantly. 
- The test plan is said to be a dynamic document since it changes according to the changes that occur in the software system or application. 
- Basically, a frame work is provided by the test plan which consists of a majority of the considerations that are made while planning. 

Attributes of Test Plan

Below mentioned are some of the attributes of a good test plan:
  1. It stands a greater probability of catching majority of the defects of an application under test or AUT.
  2. It provides greater test coverage for covering most of the test code.
  3. It stays quite flexible throughout the testing process.
  4. It is easy to be executed over and again automatically.
  5. It properly defines the tests that are to be performed.
  6. It lists out the expected results as clearly as possible.
  7. It helps in reconciliation of the defects whenever a defect is found.
  8. It helps in defining the objectives of testing.
  9. It helps in defining the testing strategy in definite terms.
  10. It helps in defining the criteria of test exit.
  11. It always stays meaningful.
  12. It never becomes become redundant.
  13. It helps in identification of the risks
  14. It helps in defining the test requirements as clearly as possible.
  15. It helps in describing the test deliverable as clearly as possible.
Every test plan created is concluded with the following 3 steps:
  1. Defining metrics
  2. Conducting periodic audits as well as scheduling them
  3. Approving the test plan
In the test plan view window, there is a tab titled “attributes” clicking on which will enable you to see all the project attributes that have been assigned to that particular test. Attributes can be thought of as an administrator created characteristics that are quite applicable to the tests. 
An attribute is defined as follows:
- item
Description
- Attribute
Name of the attribute
- value
Value that has been assigned to the attribute
- Type
Attribute type
- Inheritance
Whether or not the attribute is inherited

- The concept of inheritance in attributes is somewhat similar to what we have regarding the inheritance of success conditions and properties. 
- Attributes that are inherited throughout all the child test definitions and sub folders are assigned to a parent node. 
- To define an attribute follow the steps:
  1. Open the test project.
  2. Click define attributes menu
  3. Click new button.
  4. Enter the name for the new attribute.
  5. Select the attribute type.
  6. Click ok.


Monday, September 10, 2012

How to perform Cross platform testing and Cross browser testing using QTP?


Two types of particular testings can be performed easily using the quick test professional and they are mentioned below:
  1. Cross platform testing and
  2. Cross browser testing

What is meant by cross platform?

Cross platform can be defined as an attribute that can be given to a software system or application that can be operated across multiple computer platforms. Today there are two types of cross platform softwares available as mentioned below:
  1. Softwares that require individual compilation for each platform that is supported by them and
  2. Softwares that require no individual compilation and can be run directly on any platform that they support.
For a software system or application to be entitled as cross platform software it is required that it operates successfully on both the following:
   1. More than one operating system and
   2. Computer architecture.

- Checking a software whether or not it is cross platform compatible is a time consuming activity since all the different operating systems come with a different API or application programming interface. 
- Whenever a software system or application is designed as such that it can support multiple platforms, the demand for its quality assurance increases dramatically. 
- For ensuring this quality the cross platform testing is carried out.

What is meant by cross browser?

- Cross browser is an attribute for web sites, web applications, client side scripts and HTML constructs which are able to perform well in the environments or browsers which have the required features and also in the browsers and environments which lack those features. 
- Today, there are many browsers available and all of them are used by the end users for accessing the same web site or web application. 
- Therefore, it has become equally important that the web site or web application must be able to function properly on all web browsers. 
- This is ensured only by carrying out the cross browser testing.
- Also, the same request made on a web site or web application is handled differently by different browsers.
- Cross browser testing not just tests the client side of the web application but it also tests the server side behavior of the web site or application. 
- Therefore, there are two types of cross browser testing:
  1. Server side cross browser testing
  2. Client side cross browser testing
Now coming to how the cross platform testing and cross browser testing is performed using quick test professional. For performing these two types of testing in quick test professional you need to create separate actions for operating systems as well as browsers. 

How Cross Platform Testing is performed in QTP

- The cross platform testing can be facilitated with the help of built-in environment variable in quick test professional since using it one can dig up the information of the operating system. 
- Later, the actions recorded on this particular platform can be called. 
- On the other hand, using the actions created for the browsers you can extract the browser information. 
- The actions that are relevant to that particular browser should only be called. 

How Cross Browser Testing is performed in QTP?

Before beginning with the cross browser testing you need to get the type of browser that you are using by following an example mentioned below:
Browser( “core values”)
For getting a particular version of a browser,
getROproperty( “version” )
- Any dynamic browser changes are not allowed in quick test professional while the scripts are in running mode. 
- These scripts need to be configured for the current browser. 
- Also, you should set up the driver scripts in the beginning itself so that you can easily change your configuration settings whenever required. 


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.


Sunday, July 22, 2012

What is the difference between authentication and authorization?


In this article, we have taken two very important topics of the cyber world namely authentication and authorization. We shall also discuss the difference between the two terms which have a direct link to our security on the World Wide Web and other networks. 

Concept of Authentication


"Authentication involves the act of the confirmation of the truth regarding all the attributes of some entity or datum under the question". 

The authentication process is also linked up with the confirmation of the identity regarding the following aspects:
  1. Confirmation of a person’s or software system’s or program’s identity.
  2. Tracing of the origins of some artifacts.
  3. Ensuring that what the labelling and packaging claims to be is what is that is actually in the product. 
There are three types of authentication methods which we have discussed below:
  1. The first type: It involves accepting of identity proof given by some credible person who can provide evidence of the identity or the originator and the object under assessment in question.
  2. The second type: It involves a comparison between the attributes of the object itself and what is known about the objects of same origin. But authentication of this type is quite vulnerable to forgery and calls for expert knowledge
  3. The third type: It involves authentication on the basis of the external affirmations like documentation. 
Three factors need to be verified in authentication are:
  1. Owner ship factors
  2. Knowledge factors
  3. Inherence factors

Concept of Authorization

- The process of authorization involves the act of the specification of the access rights to the resources.
- These are the resources that are involved with the computer security or information security in general.
- In particular these resources are used to access control to the security system and other desired information.
- To say it simply, authorization is the process of providing a definition for the access policy. 
- While the system is in operation, it makes use of the access control rules for making decisions regarding the rejection or approval of the access requests from the authenticated users or consumers. 
- Resources can be anything like:
  1. Individual files
  2. Items data
  3. Computer devices
  4. Computer programs
  5. Functionality of the computer applications and so on.
- Consumers may be either computer users or computer programs or other devices on the system. 
- The access control process that is performed during the authorization involves two main phases as mentioned below:
  1. Phase 1: This phase is known as the policy definition phase and involves authorization of the access.
  2. Phase 2: This phase is known as the policy enforcement phase and involves acceptation or rejection of the access requests.

Differences between Authentication and Authorization

  1. Verification of your identity: It means verifying who you are is called authentication whereas the verification of what you are authorized to do is called authorization. This is the simplest difference between the two similar sounding processes. Both of these processes are carried whenever some connection attempt is made and whether the attempt has to be allowed or rejected is decided based up on these two factors only.
  2. The basic goal of the authentication process is to verify whether you are who you claim to be or not? On the other hand the goal of the authorization is to set the access scope of the user who has been authenticated in the previous process. 


Monday, July 16, 2012

What are the metrics that can be used during performance testing?


One of the most important parts that together make up the complete and effective software testing is the performance testing. Perhaps no software system or application can do without performance testing and testing of any software system or application is incomplete without this one. 
"The determination of the performance of a software system or application in terms of how and when and responsiveness and stability under different particular work loads is nothing but performance testing".

Apart from this there are several other attributes that can be taken care of by the performance testing like for example:
  1. Scalability
  2. Reliability
  3. Resource usage and so on.
The concept of performance testing falls under the concept of performance engineering. The practice of performance testing is aimed at building the performance in to the architecture as well as design of the software system or applications before the actual coding of the software system or application begins. 

We have so many other types of testing that together make up the complete performance testing and have been mentioned below:
  1. Load testing
  2. Stress testing
  3. Soak testing or Endurance testing
  4. Spike testing
  5. Isolation testing and
  6. Configuration testing

Metrics used during Performance Testing


The performance testing cannot be carried out all alone by itself! Rather it is supported by some specific metrics called performance metrics. In this article we shall discuss about the metrics that are to be used during the performance testing.  We shall discuss them one by one:

 1. Average response time: 
This is the time that takes in to consideration all the response cycle ups or round trip requests until a particular point is reached and is the mean of all the response times. Response times can be measured in any of the following way:
      a) Time to last byte or 
      b) Time to first byte
   
      2. Peak response time: 
    This is similar to the previously mentioned metric and represents the longest cycle at a particular point in a particular test. Peak response time is an indication of some potential problem in our software system or application.
   
     3. Error rate: 
   The occurrence of errors under load during the processing of the requests is perhaps the most expected thing during the testing. it has been noted that the most of the errors are reported when the load on the application reaches a peak point and further from there the software system or application is not able to process any requests. Thus error rate provides a percentage of the HTTP status code responses as errors on the servers.
    
     4. Throughput: 
   This performance metric gives you a percentage of the flow of data back and forth from the servers and is measured in units of KB per second.
   
    5. Requests per second (RPS): 
    It gives a measure of the requests that are sent to the target server including requests for CSS style sheets, HTML pages, JavaScript libraries, flash files, XML documents and so on.

    6. Concurrent users: 
    This performance metric is perhaps that best way for expressing the load that is being levied on the software system or application during the performance testing. This metric is not to be equated to the RPS since there are possibilities of one user only generating a high number of requests and on the other hand a user not constantly generating requests.

     7. Cross result graphs: 
     It shows difference between post tuning and pre-tuning tests. 


Saturday, July 7, 2012

How is Configuration management (CM) process applied in software testing?


Configuration management or CM finds its use in a wide number of fields including software engineering. The configuration management in the field of software engineering is called “software configuration management” or SCM. 

What is Software Configuration Management?


- SCM over the years has proven itself to be one of the best practices for monitoring the changes in a software system or application. 
- This process has been very effective when it comes to the identification of the physical as well as functional attributes of a software system or application at various intervals of time.
- This process also takes the responsibility for taking over the systematic control of the changes to be made to the identified attributes from the user and maintains the software traceability as well as integrity through out all the stages of the software development life cycle. 

In this article we have focused up on the application of the configuration management in the process of software testing. So let us see how to apply the configuration management process in software testing. 

What is Configuration Management?


- Configuration management is all about doing a detailed updating and recording of the information that gives a description of the computer system or network. 
- As the software systems and applications being developed today continue to rise in the measure of the complexity, the need for software configuration management drives in. 
Software building organizations require developing and maintaining variants of their software system or application in order to reach out to a diversified market. 
- Today almost every one is aware of the need for a better management and control of the software products.
- Customers, managers and developers all want to modify the requirements, technical approach and the project approach. 
- Though the modification is quite necessary as the time passes, it is very important that the changes that are to be made are properly controlled.
- It is important for the project leader to known about the state of the software product that is under development and whether or not it is satisfying the needs of the customers.
- Software configuration management can be considered to be a support or assistant that can help a manager to manage and control the software production in a much better way.

Under the concept of software testing, the software configuration management is often considered to be same as the change control which is wrong. 
- Both these processes are only related in the way that the change control forms a critical part of the software configuration management. 
- One thing that needs to be addressed in the configuration management is the modification of the test objects should be installed only in the test environment first and that too with the permission of the test team lead. 
- This approach of configuration management prevents a software system or application from failing in such situations where another version of the same object is being tested. 
- After this the change management documentation has also to be updated since it bears a very critical relation with the testing of the software system or application. 
- Plus the way in which the changes have been dealt with should also be mentioned. 

In simple words, we can say that the evolution of the software systems or application is controlled by the software configuration management and so it makes un- neglect-able contributes to the quality of the software system or application and also to its delay constraints. 
The software configuration management was introduced in the field of software testing as a result of the “software crisis” i.e., when it was realized that the programming was not everything in software engineering. 


Tuesday, July 3, 2012

What are the main attributes of test automation?


Test automation is nowadays counted among the best software development aids that we have today. It is a great testing aid that seeks to resolve the drudgery of the testers. Test automation has become so common nowadays that every one of us knows quite a lot about it.

What does Test Automation do?


- Test automation actually controls the execution of the test cases by using an automated process. 
- Also, the comparison of the actual and the predicted outcome takes place in the same and "take it easy" manner.  
- One thing that should be noted is that only those manual processes can be automated which have deployed a formalized testing process. 
- In the test automation process, the user actions are recorded and the checkpoints are introduced in to the testing script so that playing it back from a particular point is made easy when you have to perform regression tests. 
- The manual tests that passed can be automated and is mostly used in the testing methodologies like:
  1. Data driven testing
  2. Regression testing
  3. Performance testing and so on.

Attributes of Test Automation


By attributes, we mean the characteristics of the test automation process. It has got quite a lot of positive attributes. So let us what all attributes we can state for test automation:

1. Repeatability:
Automation supports repeated execution of a test case several times again and again. When you need to execute the same test case again and again the test automation comes as a big win for you.

2. Programmability: 
The test cases can be programmed to be executed on a number of different machines whereas the manual tests have to be executed in a sequential way one after the other.

3. Reliability: 
You can rely on test automation for repeat-ability and accuracy.
4. Impact
5. Criticality

6. Maintainability: 
The maintenance is just that you have to update the test automation suites for every new release of the software system or application.

7. Flexibility: 
With test automation it becomes quite easy for you to run automated tests that frequently change according to the regressions at particular time intervals and also the tests can be run in mainstream scenarios.

8. Efficiency: 
The ratio of total cost to the required effort need is reasonable.

9. Portability: 
The automated tests can be executed in different environments unlike manual test cases.

10.Robustness: 
The automated tests are quite effective for the software systems or applications that are quite unstable or change rapidly.

11. Usability: 
The automated tests can be used to a large extent by different types of users.

12. Speed
13. Accuracy

14. Relentlessness: 
The automated test generator as well as the process never gets tired generating and running test cases.

There are some tests like exploratory testing and usability which cannot be automated because of their free style. Testers involved in a testing team support diverse software systems and applications that are quite unrelated to each other. 
If the projects that demands implementation of a unique testing strategy, then the testers involved in the whole will appear more to be a hindrance rather than being a help. 
- The testers will require tie to get adjusted to the new environment which unfortunately they cannot get and thus lowering the level of their productivity. 
- We cannot waste time on re- engineering the development frame works but we can surely harness test automation power for every new application that we need to develop. 
- The application can be continuously improved since the test automation has got so many positive attributes that can surely benefit the whole testing process. 


Facebook activity