Subscribe by Email

Tuesday, January 31, 2012

What are different aspects of International Organization for Standardization (ISO)?

ISO is the short form of International Organization for Standardization. The international organization for standardization is well known for the development and publication of the standards pertaining to the international standard.

- The organizations itself constitutes many national networks from across the world.
- It is reported to have 163 countries in its network with one representative from each country.
- The office of the central secretariat of the organization is located in the city of Geneva in Switzerland.
- The purpose of the secretariat is to regulate the coordination in the system.
- It is a private organization and works with both public and private sector organizations. It is a non governmental organization.
- Most of its member organizations are either government organizations of their respective countries or are funded by the government.
- Other member organizations are private and are run in cooperation with the industry associates.
- We can say that ISO lays down a consensus that provides solutions which serves needs of both the business and society.
- The short form “ISO” was taken from Greek word “isos” which means “equal”.

Standards make a good impact on our life and they raise standards of our living too.Standards are very much needed to ensure characteristics like:

- environmental compatibility
- safety
- quality
- reliability
- economical cost
- interchangeability and
- efficiency

We never tend to notice the standard till the services and products are up to our expectations. We notice the importance of standards only when the services are not of the expected level. The products and services are said to work well and efficiently when they meet the standards set for them.

The international organization of standards is responsible for maintaining such standards all over the world.

International organization of the standards serves the following purposes:
1.It makes the manufacturing and development of services and products efficient, better than the previous and safe.
2.It aims at continually improving the marketing standards.
3.It takes are of the supply of services and products to the consumers.
4.It aims at developing a fair trading strategy between different nations of the world.
5.It lays down a basis for products and services for safety and health and environmental legislation.
6.It is responsible for carrying out the conformity assessment.
7.It shares new technological methodologies and management practices with its member organizations to lead innovation ahead.
8.It acts as a safeguard for the consumers of the services and products.
9.It provides solutions for many problems of standardization.

- ISO till now has developed and maintained around 18,500 standards on an international level.
- Apart from these 18,500 standards, every year some 1000 new standards are being developed and published.
- The information about all these standards is available on the official website international organization of standards.
- The information center of ISO is operated by ISO itself in coordination with the international electro- technical commission (IEC).
- The ISO/ IEC information center has been developed to provide information regarding matters of standardization to its members and other stake holders.
- All the policies and strategies of the international organization of standards are jointly endorsed by the major governing bodies of ISO itself.
- The policies and strategies that have been serve as a guideline for all the members of the international organization of standards and its secretariat.

The 163 members of the ISO network are divided in to 3 categories which are:

- Member bodies
- Subscriber members
- Correspondent members

Monday, January 30, 2012

What are different aspects of iterative relaxation method?

This article explains relaxation in terms of iterative methods. This piece of writing is all about iterative methods or techniques for solving system of equations. Relaxation methods are iterative methods defined for numerical mathematics.

They are extensively used for solving system of equations which include the following types:

- Large sparse linear systems
Relaxation methods are used to solve large sparse linear systems which were like discretizations of finite difference of differential equations.

- Linear equations
Relaxation methods are used for solving linear equations for problems like that of linear least squares problems.

- System of linear inequalities
Iterative or relaxation methods effectively solve the system of linear inequalities similar to the problems that arise during linear programming.

- Non linear system of equations
These days, iterative methods or relaxation methods have been developed for solving non linear system of equations.


1.) Relaxation methods or iterative methods prove to be very effective and important methodology in providing solutions for linear system of equations and especially for the ones that are used to model elliptical partial differential equations such as Poisson’s equation and Laplace’s equation along with its generalization.

2.) These linear systems of equations are basically used to generally use to describe problems related to boundary values in which the value of the function in the solution is indicated or specified on the boundary of a specified domain.

The basic problem is to compute a solution within the boundaries. People often confuse between iterative methods for relaxation and relaxation methods for mathematical optimizations.

The iterative methods for relaxation techniques are not to be confused with relaxations for mathematical optimizations that are used to approximate a difficult problem by a comparative problem which is more simpler than the former one and whose relaxed or iterated solution provides information about the solution which can be taken in to account for the original problem.

The relaxation method for two dimensional problems is used to readily generalize the other numbers of the dimensions.

- The relaxation iterative methods converge under general conditions.
- But, these methods make slow progress as compared to the other competing methods.
- The study of the iterative relaxation methods constitute an essential part of linear algebra since the transformations of the relaxation methods provide pre conditioners for newer methods that are in a way quite excellent.
- In some cases multi grid methods can be used in order to accelerate the methods.
- It is a common problem in path oriented testing to generate the test data that is required to make the program follow a given path.
- This problem is over come using iterative relaxation method.

Sunday, January 29, 2012

What are the different quality attributes in software architecture?

Software is of no use without good quality. Incorporating high quality in software is very difficult. The term “quality” is itself very hard to be defined. We can only measure quality using certain attributes. These attributes are called software quality attributes.

1. Quality attributes of a software system or application define its behavior.
2. The quality attributes give a certain idea of how much suitable is the software for a purpose or environment.
3. It is an essential component of software architecture.
4. Identification of quality attributes is necessary as it helps the system to be built according to the intended behavior.

Certain scenarios are used to measure the quality attributes.
1. The scenarios are very helpful in helping the program developer to make decisions that are qualitative in nature and related to the program behavior.
2. Writing good scenario statements is very important in identification of quality attributes.
3. Although the scenarios help in the identification of attributes, they don’t provide an effective way to achieve those attributes that has to be figured out separately.

Architectural methodologies come to help at this point.
1. There are several architectural methods possible to achieve a particular quality attribute.
2. The software architect should select the right method and use it according to the needs of the software.
3. He should justify the selection of a method and provide documentation on it.

Over the years, some basic quality attributes have been identified and recorded in a list. The quality attributes have been classified in to 4 categories:

1.Run-time system qualities
These attributes are measured when the software is in execution mode.
- Functionality is the ability via which the system completes the assigned task.
- Performance is the collective measure of resource utilization, the response time, and the through put of the system.
- Security is the ability of the system to protect itself from unauthorized access and modifications.
- Availability is the time period for which the system is available to use.
- Inter-operability is the ability of a system to run in cooperation with another system.
- Usability includes other attributes like affect, control, help, and efficiency.

2.Non runtime system quality attributes
These attributes cannot be measured when the software is in execution mode.
- Portability is the ability of a system to perform well in varying environments.
- Modifiability is the adaptive ability of a system by virtue of which it is able to adapt to the changes.
- Integratibility is the ability of the components of the system to work in coordination with each other.
- Reusability is the measure of extent to which the existing features can be used in new software.
- Testability is the measure of the extent to which the software can be tested.

3.Business quality attributes
These attributes affect the other quality attributes.
- Marketability is the value of the system in the market.
- Cost is the money value of the software.
- Schedule is the expected utilization of the system.
- Appropriateness

4.Architecture quality attributes
These are specific attributes concerning the software architecture.
- Correctness is said to account for over all satisfaction of the system requirements.
- Conceptual integrity is the ability of the components of a system to integrate with each other.

5.Domain specific quality attributes
These are specific attributes concerning the business domain.
- Calibrability is the ability of a software system by virtue of which it recalibrates itself according to a specific range of work.
- Sensitivity is the measure of response of the software system to the measuring of a quality attribute.

The software architecture is greatly influenced by the quality attributes of a system. A measure taken in favor of one quality attribute often goes against another.

Saturday, January 28, 2012

What are different aspects of Game Testing?

Today’s world is fantasized with games. Children and youth both are addicted to games. With the cutting edge technology, gaming technology has reached new heights. Now games have become so exciting with their real world technologies. With the growing demand for games, there always a tough competition between the games developing companies. They struggle with technology to deliver the best quality games. So like software programs and applications, games also have to be tested for quality and performance.

Therefore, game testing is considered to be an important part of game development.

1. Game testing can thought of as a kind of software testing which aims at testing the quality of the games.
2. The main objective of game testing is to find all the errors and bugs in the gaming software and preparing their documentation.
3. Games require very high technology and thus call for the need of analytic competence.
4. It is developed using computer expertise and endurance.
5. There are some critical evaluation skills on which it is based.


1. In the era of early video games, all the development and testing process was carried out by the developer of the game only since the games were small and primitive technology was used.
2. But, today the games are becoming very lengthy and complex due to the advent of high technologies.
3. So, there is a need for qualitative and quantitative assessment of the games which can be achieved by game testing.
4. Today’s game companies have separate expert game testers.
5. The main aim of game testers is to find note any problems that they discover in the documentations and reports.
6. They should have the skills to finish the games at the most difficult level. Game testing is carried out on the program before releasing its alpha version.

A critical component of a game is quality even though there are no standard methodologies to judge the video quality.

1. Different testers and developers have their own methodologies.
2. There is a separate quality assurance staff in game companies to judge the quality of the game.
3. Starting is commenced as soon as the first code of the game is written and it continues till the whole program is completed.
4. The progress of the game is monitored by the QA staff.
5. When the whole program is completed, a test plan is written and test cases are prepared and the testing is carried out accordingly.
6. This is done before alpha stage.
7. As the beta stage approaches, one of the aspects of the game is daily testing according to the plan.
8. List of the features is prepared which are to be included and which are to be excluded.
9. Beta stage testing includes contribution from volunteer testers.
10.The game is played and tested.
11.The discovered glitches are noted down.
12.The game play should be creative since then only most of the bugs will be discovered.
13.There is a time period before the deadline which is termed as crunch time.
14.In this period the features that were added later are tested.
15.The bugs discovered are ranked according to the severity they can cause:

- Critical bugs/ A bugs: that can cause the game to crash.
- Essential problems/ B bugs: bugs that require attention even though the game runs well.
- Obscure problems/ C bugs: these bugs are small but require to be corrected.

The following people are involved in testing of a game:
- Game producer
The person sets the deadlines for testing based upon quality assurance and marketing.
- Lead tester
The person manages list of bugs and most responsible for the quality of game.
- Testers
The person checks the working of the game.
- Software development engineer in test
The person builds automated frame works and test cases.

What are different characteristics of Certified Manager of Software Testing (CMST)?

CMST or certified manager of software testing as it is known in expanded form, sets up a standard for the certified professionals and individuals which are working or will be working in the field of software testing.

- These standards are worldwide and are meant to be followed everywhere irrespective of the place where the certified individuals and professionals are working.

- This certification is aimed at testing the competencies and capabilities of the skilled individuals and professionals.

- Like other certifications such as CMSQ, CASQ etc acquiring the certification of CMST also shows the professional competency of the certified individual or professional.

- This professional competency is concerned with the certified individual’s skill to demonstrate the capabilities required for managing the process of software testing and also practices and principles he follows while carrying out the software testing.

- This certification is used by the upper management of information technology as a way for predicting the likelihood of a candidate getting success with regard to qualification.

- It can be thought of as a way to determine the capabilities and skills of the candidates applying for the positions of management level.

- Apart from this CMST certification provides the candidates and professionals with an assessment of their skills and capabilities concerning management.

- The provided assessment is highly objective in nature.

- The examination for this certification is available in many countries worldwide.

Like for other certifications, this certification also demands some prerequisites. They have been mentioned below:

1. The applicant must have an active certification of CSTE. This prerequisite is not compulsory but a recommendation. The applicants having CSTE certification will be first preference.

2.The applicant must be working in the field of software testing and must have good experience.

3.The applicant must have experience in demonstrating the skills required for software testing and identified by CBOK or common body of knowledge.

4.The applicant must submit the documents regarding his real world experience in the field of software testing.

5.The applicant must be prepared for the exam of management level.

6.He/ she must fulfil any one of three prerequisites mentioned below:

(a) he/ she must have a bachelor’s degree from an accredited and reputed institution along with an experience of 4 years in the field of software testing.

(b) He/ she must have an associate degree along with an experience of 6 years in the field of software testing.

(c) If he/ she don’t have any degree, must have an experience of 8 years in the field of software testing.

7.He/she should follow the guidelines laid down by the code of ethics.

- Every skilled individual and professional is expected to follow the code of ethics behavior guideline.

- It is a must that he/ she adhere to the code of ethics.

- Depending on the bio data and resume submitted by the applicant, he /she can be asked for additional documents providing details of his/ her education and employment history.

- If the applicant fails to provide the demanded documents, he/ she may get disqualified.

- The exam aims at assessing the practical knowledge of the applicant regarding the following aspects:

1.Management of test
2.Analysis of test
3.Test planning
4.Test execution
6.Communication skills

- If the applicant is having an active certification of CSTE at the timing of applying for CMST certification, then his/ her CSTE certification will remain active along with CMST certification.

This certification program has the following benefits:
- It evaluates skill mastery on the basis of the skills associated with the management of software testing.

- It inculcates a will in one to improve one’s professional ability.

- It acknowledges the competency of the individual in the field of management.

- It helps the organizations to select individuals with good professional and competency rates.

- It helps improve software testing programs.

Friday, January 27, 2012

What are different concepts of Certified Software Quality Analyst (CSQA)?

Certified software quality analyst or CSQA as it is known in short form, is the certification that checks the software quality analysing capabilities and skills of an individual who applies for it.

Certified software quality analyst certification is gaining fast popularity in the field of software testing these days. Number of CSQA aspirants is growing day by day. More and more skilled individuals are now seeking to get this certification.

The certified software quality analysts use the principles of quality analysing in assessing the quality of the software. CSQA plays a great role in building up the reputation of an organization since it helps in improving the quality of the software products that it manufactures.

CSQA certification provides three main benefits.They have been mentioned below:

- It gives an acknowledgement about the skills and competency of the certified individual or professional.
- It proves to be a great factor in helping the deserving individual in getting job, promotion and good hike in salary.
- He/ she can continue his/ her education after fulfilling the re-certification requirements.

The duration of exam is 4 hours but it if you get qualified you will have great benefits. There are certain things that you need to fulfil before appearing for the examination.

These include:

- The candidate needs to fulfil all the prerequisites as laid down by the CSQA certification norms.
- The applicant needs to abide by the guidelines stated by the code of ethics and stick to them while discharging their duties.
- The applicant needs to submit a document for character reference along with the exam form.

An individual or professional can hold CSQA certification only for 3 years at a time and after that he/ she need to get re-certification for the same. This can be done by the following procedure:

- The applicant needs to submit a recertification journal which gives an account on the qualified educational activities by the professionals.
- The applicant may appear for a recertification exam.

What does this certification do?
- This certification tests the principles and practices that an individual or a professional follows regarding the management of good quality.

- CBOK only helps with understanding of concepts but does not provide any practical knowledge and experience.

- CSQA aims to test the ability of an individual to face the real world challenges.

- Most of the aspirants don’t know how to approach CSQA exam. It is just like a regular exam but with a more need of practical knowledge and awareness.

Try to understand the concepts listed in CBOK properly. You can also prepare questions for testing your preparation. While studying a concept, you need to relate those concepts to the real world challenge as to how you will use them in solving real world problems.

The candidate needs to meet any one of the following condition:

- A bachelor’s degree from a reputed and accredited institution along with an experience of 2 years.
- An associate degree along an experience of 4 years.
- If the applicant is not having any degree, he/ she must have an experience of 6 years minimum.

The aspirants must learn to adhere to the code of ethics. It is very important not abide by the code of ethics as it defines the behaviour that is expected from a professional. Depending up on your compliance, you may require submitting your education and employment documents. If you fail to submit, then you may be disqualified. To abide by the code of ethics is extremely important as one can even be subjected to decertification if his/her conduct is not good.

Thursday, January 26, 2012

What are different characteristics of Certified Manager of Software Quality (CMSQ)?

The Certified Manager of Software Quality or CMSQ as it is abbreviated to, has worked out a great deal in establishing a standard for the assessment or determination of the capabilities of the individuals who are concerned with the development of software quality.


1. The certified manager of software quality certification provides a worldwide standard.

2. These standards are used to assess the competencies of the professionals as well as the concerned individuals in the area of software quality assurance.

3. In other words, this certification certifies the professionals or individuals who are to work at the level of software quality management.

4. If one acquires the certification of certified manager of software quality, it indicates his/ her professional competence.

5. It shows that he/ she has good conduct in terms of principles and practices of the software quality assurance and development.

6. For getting certified for certified manager of software quality one has to have exceptional capabilities and skills which are required to manage the quality of the software program or application.

7. The upper management level of information technology has been provided a tool which predicts the chances of the individuals to get selected for the applied management positions.

8. The prediction is based up on their performance and conduct.

9. Each individual is provided with an objective level assessment or evaluation of their skills regarding software quality management.

This certified manager of software quality exam is available worldwide. Like for other certification exams, this one also has some prerequisites. They have been mentioned below:

- The candidate may have an active certification of CSQA. This is actually not required but recommended.

- Candidates having CSQA certification are given more preference.

- He/ she must be working in the field of software quality assurance and development.

- He /she must have adequate experience so as to demonstrate the skills that need to mastered in the current quality of the software programs and applications.

- He/She should have common body of knowledge.

- The candidate needs to submit the documentation based up on his/ her real world experience in the field of software testing.

- He/ she should be well prepared for the examination.

- Above all other prerequisites the candidate needs to meet any one of the following three prerequisites:

(a) He/ She must have a bachelor’s degree from a reputed and accredited institution and should have a work experience of 4 years in the field of software field.

(b) He/ she must have an associate degree from an accredited and reputed institution and a work experience of 6 years in the field of software testing.

(c) He /she if does not possess a degree must have an experience of at least 8 years in the field of software testing.

(d) Apart from these prerequisites, the candidate should adhere to the guidelines issued by the code of ethics.

Code of Ethics and Examination Details

- It is necessary to abide by the code of ethics as it makes an individual a complete professional.
- All professionals and certified individuals are expected to behave as defined by the professional ethics.
- Certain documents are also required which might be asked for depending up on the candidate’s profile.
- The documents may include a detailed spilt up of education and employment history.
- Those who fail to submit the required documents may be disqualified.
- This exam aims at testing basically the candidate’s knowledge regarding the following 11 aspects:

1. Quality assurance function
2. Quality leadership
3. Quality planning
4. Quality execution of the plan
5. Communications
6. Relationships
7. Outsourcing
8. Quality baselines
9. Metrics and measurements
10.Internal control

Apart from the above skills mentioned, the candidate should be aware of current happenings in the same field.

Wednesday, January 25, 2012

What are different characteristics of Certified Association in Software Quality (CASQ)?

CASQ is the abbreviated form of Certified Association in Software Quality. Day by day the competition is increasing in the market. Therefore it becomes necessary to incorporate ability in the management by virtue of which it can easily distinguish the skilled individuals and professionals. CASQ certification lays down a basic foundation for understanding of principles of quality assurance as well as the practices.

- Whenever software attains the certification of CASQ it attains a level of professionalism with regard to the principles and practices of software quality assurance in the field of information technology.

- The software becomes a member of an acclaimed group of professionalism and receives the recognition for its competency by professional and business associates.

- It is guaranteed with fast career advancement.

This certified association of software quality is aimed at establishing the standards of the qualification. Its objective is to continue the advancement in the professional competence.


- It defines the tasks and skills associated with the quality of the software in an appropriate order to determine the level of skill mastery.

-It brings out the will of an individual to make a professional improvement.

- It acknowledges the attainment of an standard of professional competency which is duly acceptable.

- It aids the other organizations in the process of selection and promotion of the individuals who qualify successfully.

- It motivates the skilled individuals and professionals to maintain their professional competency and also take up their software quality responsibilities effectively.

- It assists the skilled individuals and professionals in enhancing and improving the software quality assurance programs that are carried out by their organizations.

- To accept the responsibility is a distinguishing mark of professional competency.

- The certified individuals must maintain their standards with regard to their conduct.

- This helps them in discharging their responsibilities effectively.

- If an individual wants to apply for certified association of software quality certification than he/ she has to strictly abide by the policy of the code of ethics that guide the principles and practices of software quality assurance.

- This software certification program comprises of procedures for monitoring the individuals’ behaviour and whether they are sticking to the certification policies and ethics or not.

- If a certified individual or a professional later fails to adhere to these policies, than he is subjected to de-certification.

There are some common principles that one needs to adhere to and these have been mentioned below:

1. Principles
2. Quality concepts
3. Quality assessments
4. Quality models
5. Quality baselines
6. Quality practices
7. Quality planning
8. Quality assurance
9. Define
12.Quality work
13.Quality metrics and measurements
15.Internal control
16.COTS and contracting quality
17.Out sourcing

There are certain prerequisites that each candidate needs to qualify such as complete a course for a stipulated period of time from an accredited institution, and some experience in information science. The candidate needs to strictly follow the guidelines and commit to the code of ethics.

- The examination for obtaining this kind of certification is available in many countries.

- The QAI global institute is famous for its professionalism in software quality assurance.

- It was established in 1980 and basically was a software quality assurance industry.

- The first certified association of software quality certification was carried out in the year of 1985. The company launched its first formal process in the year of 1990.

- These days, the QAI global institute has attained the multinational reach. The company has certified over 36,000 professionals in the IT sector in over 44 countries of the world.

Tuesday, January 24, 2012

What are different characteristics of Capability Maturity Model (CMM)?

Capability maturity model or CMM as it is often abbreviated. It is a development model developed after a prolonged study of the data collected from various organizations from all over the world.

Characteristics of Capability Maturity Model
1.The development of this model was funded by the USDD (United States department of defence).

2.The capability maturity model became the foundation for the development of software engineering institute or SEI as it is popularly known as.

3.The term “maturity” emphasises process optimization and level of formality.

4.Processes are optimized from ad-hoc practices to steps that have been formally defined.

5.Nowadays this model is being used effectively for management of result metrics.

6.Capability maturity model has proved to be great help in active optimization of the processes.

7.This model allows improvement in the development processes of an organization.

8.It is an effective and good approach towards improvement of any organization’s development processes.

9.This model is securely based upon the frame work of process maturity which was developed in 1989.

10.Initially it was used for objective assessment of the processes carried out by the contractors of the government to keep a track on the project.

11.CMM is not only used in the field of software engineering but, it is also applied to organizational processes of a business.

12.It is used in other fields like:
- Software development
- System engineering
- Software maintenance
- Project management
- System acquisition
- Risk management
- Information technology
- Human capital management and
- Services

Where is Capability Maturity Model used?

Capability maturity model is being extensively used in various organizations like in commerce, government offices, software development organizations and industry.

What was the need for Capability Maturity Model?
- In the 20th century the use of computers was wide spread.

- Computerized processes were thought to be less costly, effective and flexible way to carry out tasks.

- As more and more organizations started adopting computerized processing systems, the demand for software development eventually rose.

- As a result CMM was developed, of course with lots of failures.

- The computers were a new technology at that time and so there was a lot of pressure on developers to deliver quality products within a stipulated period of time.

- The US military was in havoc that because all their projects were running out of budget and time.

- So in order to know the reason behind all this, they funded the study at SEI. Active study started at SEI.

- It was watts Humphrey who actually came up with the actual idea of CMM.

- He based his approach on the evolution of software development practices.

- He concentrated on all the processes as one instead of concentrating on just one software development process.

- Since then the CMM has become popular among various organizations and is used as a powerful tool for improving overall performance of the business.

Though CMM proved to be a very effective tool for business but many times it caused problems in software development.

- CMM didn’t allow use of multiple software development practices. It was superseded by CMMI.

- These days still the capability maturity model is being used as the model with the capability of handling general processes when it comes to public domain.

Some Important Facts About CMM
1.CMM is still maintaining its position as a model of maturity of process.

2.CMM provides a place to start the development.

3.It uses a common language and the development is based upon a shared vision.

4.It effectively develops a frame work for actions according to their priority.

5.For an organization it defines the ways for improvement.

6.It is used an aid for better and effective understanding.

CMM has 5 aspects:
- Maturity level
- Key process area
- Goal
- Features
- Practices.

Monday, January 23, 2012

What are different test cases for testing web application cookies?

To carry out any testing, you need to create effective test cases. Then only you will be able to fetch more appropriate outcomes from the testing. To develop effective test cases for web site cookie testing, you need to understand how the cookies are stored and managed.

Whenever you use a web site a cookie will get written on to your hard disk. Normally cookies are stored in the following format:

Site: RMID (name of the cookie)
Name: RMID
Content: 1d14c8ec45bf79e0… (Written in Encrypted format)
Path: / (the path after the name of the domain)
Send For: the type of the connection
Expires: Tuesday, December 31, 2015 10:25:25 PM date of expiry as set by the developer)

The cookies are used for the following applications:

1.Implementation of the shopping cart:
Cookies are used to implement online product or service ordering system. Cookies are a way to remember what the user wants to purchase. Suppose, if at the instant of time the customer adds some products to his carts and closes the browser window, then the cookie remembers what he/ she wants to buy and the customer can see ll those products.

2. Personalized web sites:
When we are browsing and visit certain pages. We are asked whether or not to display this page. The user instruction is stored in the cookie and those pages are displayed or not displayed as per the wish of the user.

3. Marketing:
Cookies are extensively used to advertise on the web sites. These advertisements are controlled by the cookie itself.

4. User tracking:
Cookies are used to track the number of visitors of a web site.

5. User sessions:
User sessions can be tracked using the cookie using the contained user ID and the password.

Apart from the benefits, the cookies have some drawbacks also. These are:
- Some times disabling the cookies can lead to disabling of the site itself.

- If too many cookies are being written on each and every page navigation, and if the cookies are enabled, this can lead to user frustration can result in the loss of traffic.

- Cookies are concerned with security also.

- Some cookies contain user’s personal information and if they are hacked, then the hacker gets access to the user’s personal information.

- Some sites store your sensitive information cookies. This is not advisable since it can lead to serious privacy concerns.

Test Cases for testing Web Application Cookies

- First test case should test whether the application is writing the cookies on the disk properly or not?

- The privacy policy of the cookie makes sure that your personal information is not written in to the cookie. It also makes sure that no sensitive data is leaked.

- Even if some sensitive data is stored in the cookies, it is made sure that the data is stored in the encrypted format.

- Overuse of cookies can annoy the users if the browser prompts for cookies frequently. This can cause loss of traffic of the web site.

- Disabling of cookies can cause some functionalities of the web site to become disabled or the site may not function properly. But always ensure that there is no page crash during the testing. Delete all the previous cookies.

- Acceptation and rejection of some cookies: this is probably the best way to check the functionality of site. All you have to do is accept only some of cookies and reject the others. For executing this case, you can set your browser settings so as to prompt you whenever a cookie is being written so that you can accept or reject that cookie. Observe the behavior of site.

- Corruption of cookies by editing their content.

- Testing of cookie on multiple browsers.

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.

Sunday, January 22, 2012

What is the difference between scripted testing and exploratory testing?

Though exploratory testing and scripted are considered being a part of each other, there is a lot of difference between the two.

The scripted testing is performed by a set of test scripts which can be defined as a set of instructions that are to be performed on the software system or application under the test to test a particular functionality as required.

There are following ways of executing test scripts:

1. Automated testing:
- It can be easily repeated and is faster than manual testing.
- It is very useful when it is required to run the same tests over and over again.
- It is performed as a part of regression testing.
- Automated tests are poorly written and they may break during the execution.
- They only test what has been programmed into them.
- They only ensure that old bugs do not reappear.
- Manual testing and automated testing should be mixed together and used for exploratory testing.

2. Manual testing:
- This is the oldest and the most rigorous forms of testing.
- The test cases are reviewed by the whole testing team before using them.
- The test cases are either created at the basic functionality level or at the scenario level.

3. Short programs or test scripts written in a programming language (C#, C++, expect, TCL, java, Perl, PHP, python, power shell) or a special automated functional GUI test tool (like Borland silk test, HP quick professional test, rational robot etc) can be used to test functionality of a software system or application.

4. Short programs that have been extensively parameterized or data driven testing.

5. Table driven testing or keyword driven testing i.e., using reusable tests created in a table.

- Scripted testing is considered to be as a waste of resources by most of the testers.

- According to them the scripted manual testing inhibits the mind of the tester to use their creativity.

- Also, this testing requires heavy documentation as well as considerable amount of resources to create them.

- They often get out dated since the changes in the system are inevitable.

- Though being so criticized manual scripted testing is used by many organizations.

- The test cases are made repeatable and easy enough for a tester to perform testing with minimum supervision.

- Manual scripted testing is used in contracts where contractual agreement states that written requirements and specifications of the software must be met.

- Scripted test cases are useful where the tests are used as benchmark and have to be executed in the same way, every time.

- In contrast to scripted testing, exploratory testing is a usual approach to software testing and can be defined as a test designing, test execution and simultaneously learning process.

- Exploratory testing is a kind of software testing that is emphasized and focused up on the responsibility and the personal freedom of the software tester.

- Exploratory testing is a kind of software testing that is emphasized and focused up to optimize the quality and effectiveness of his /her work continually by taking in to consideration mutually supportive activities like test designing, test related learning, test result interpretation and test execution.

- The activities run in parallel to each other.

- Exploratory testing basically heeds to exploiting the creativity of the tester or the programmer.

- During the testing of the software, the tester comes across various new things to learn together with experiencing them.

- Exploratory testing can be thought of as a black box testing methodology or technique instead of thinking of it as an approach to testing that can be used for any type of testing methodology and also at any phase of development of the software system or application.

Saturday, January 21, 2012

What is the difference between automated testing and manual testing?

Automated scripted testing and manual scripted are two most common and popular ways of carrying out the scripted testing. Scripted testing is performed by a set of test scripts which can be defined as a set of instructions that are to be performed on the software system or application under the test to test a particular functionality as required.

Automated testing is mostly used.
- In automated testing the test cases are executed automatically and there is no need of human intervention.

- Non- requirement of human intervention is the best advantage of automated testing.

- It can be easily repeated and is faster than manual testing.

- It is very useful when it is required to run the same tests over and over again.

- It is performed as a part of regression testing.

- The main drawback of automated testing is that the automated tests are poorly written and they may break down or crash during the execution.

- They only test what has been programmed into them.

- They only ensure that old bugs do not reappear and don’t prove to be a good methodology to find out new bugs and errors.

In contrast to automated testing the manual scripted testing is the oldest and most rigorous form of software and application testing.
- In manual testing the test cases are reviewed by the whole testing team before putting them in to execution.

- These test cases are created at two levels.

- The first level is basic functionality level and the second one is the scenario level.

- Apart from reviewing of test cases, the designing is also done by the whole software development team.

- Manual scripted testing is considered to be a waste of resources by most of the testers.

- According to some testers the scripted manual testing inhibits the mind of the tester to use their creativity and also this testing requires heavy documentation as well as considerable amount of resources to create them.

- They often get out dated since the changes in the system are inevitable.

- Though being so criticized manual scripted testing is used by many organizations.

- The test cases are made repeatable and easy enough for a tester to perform testing with minimum supervision.

- Manual scripted testing is used in contracts where contractual agreement states that written requirements and specifications of the software must be met.

- Scripted test cases are useful where the tests are used for the benchmarking purpose and have to be executed in the same way, every time.

- The testers should have a strong knowledge of the software system or application since in manual scripted testing; the test cases are created beforehand.

- The primary sources of information to the testers are functional design specifications, requirements documents etc and so on.

- To make the testing more effective, the testers are free to use supplementary sources of information to increase their knowledge of the software system or application by rigorous discussions with the development team.

- Manual scripted testing is used in situations or programs where a waterfall methodology along with the V-Model has been implemented.

- Apart from waterfall and v model methodology, this approach can also be used for projects where requirements and specifications are frozen and likelihood of modifications in those requirements and specifications is very less and this is also suitable for the situations where safety and regulatory situations demand proof of testing.

- Generally, this manual testing approach is considered old but, it is quite relevant in this current era of market driven applications.

The best methodology is mixing manual testing and automated testing together and using it for exploratory testing.

Friday, January 20, 2012

What do we mean by automated test data generation?

First let us clear up what is meant by Test automation? Test automation can be defined as the use of software system, program or application to carry out the following tasks:

- control the process of execution of tests
- to compare the actual outcomes with the predicted outcomes
- to set up the preconditions for test cases
- to keep test control and
- to implement the function of reporting tests.

Test automation as the term itself suggests involves automation of a manual testing process which is already in progress.

- It is used for automating manual testing processes which use a formal approach for testing.

- Although manual testing also holds good for finding defects in a software program or application, it is a very laborious and time consuming testing process and also it is not so effective in finding certain kinds of defects.

- To overcome these drawbacks of manual testing, automated Testing is employed.

- It involves a process of writing a computer program or software to carry out testing that would otherwise requires to be done manually.

- Once the tests have been automated, they can be run, easily, quickly and repeatedly.

- All these plus points make the automated testing a very cost effective method for software applications.

- Even minor bugs or discrepancies can cause the program to break or crash over the lifetime of the application.

Two general approaches to test automation have been discovered so far:

- Code driven testing
Elements like classes, public interfaces, libraries and modules are tested under code driven testing with a assorted data arguments in order to validate the results for their correctness.

- Graphical user interface testing
As the name suggests this testing approach creates user interface events such as mouse clicks, key strokes etc. the changes that occur in the user interface are observed and that observable behavior is validated for its correctness.

Unlike tools required for manual testing, test automation tools are quite expensive, and are usually employed or used in combination with the tools of manual testing.

- Nevertheless, the tools can be cost-effective in the longer term if used repeatedly in regression testing.

Now coming to the automated test data generation, there are several ways for generating data and test cases.

- One of the ways to generate test cases automatically is model- based testing and it generates test cases through use of a model of the system.

- Data is the most important thing needed to execute any test.

- Generating data again and again for repeating tests becomes a time consuming task.

- You need to design the test data again and again to execute your test cases.

- You need to design the test data at the current instant if you are running tests in an exploratory manner.

- Generating test data on your own takes a lot of your valuable time.

- Automated tests need a large amount of distinct test data.

- Another alternative can be copying and pasting data for running tests if the production data is available.

- However, this does not prove to be a very good approach.

- But, nowadays several tools have been developed which can be used for automated test data generation.

So the good thing is that you need not waste your precious time generating test data by hand. These tools help you by creating large quantities of test data based on the conditions and constraints specified by you.

Automated test data generation has got the below mentioned benefits:
- Fast data generation
- Accurate data
- Uses built in algorithms
- Creates both valid and invalid test data
- Data is exportable

Thursday, January 19, 2012

What are different tools available for web testing?

Web testing as we all know is defined as the software testing which focuses primarily on web applications and web sites. A complete testing of web server and applications is needed before they are presented live to the customers or clients.

Web testing mainly addresses the issues like web security, functionality of a particular site, feasibility and accessibility to the users, ability to handle traffic.

Nowadays there are several tools available for web testing. The most common and popular today being the “WAPT” abbreviated form for the web application performance tool.

What is WAPT?
- WAPT tool has been specially designed for testing the web related interfaces and web applications.

- Furthermore this tool can be effectively used for load testing, stress testing and performance testing of web sites, web applications, and web related interfaces.

- This tool tends to simulate a situation of virtual users.

- There are many challenges faced by WAPT and it is used for determining the compatibility of the browser, operating system and windows applications during the backend testing.

- This tool carries out tests via three kinds of loads namely:

1. Increasing user load
2. Constant user load
3. Periodic user load

These days some frameworks are available that give a tool box for testing the web applications.
Open source web testing tools are also available for web testing. The 2 very most common open source web testing tools are:

- HTTP test tool
It’s a tool based on scripting of the protocols. It is used for testing HTTP protocol based products.

- Apache j meter
It’s a tool programmed in java language. It is basically used for performance measurement and load testing of the web severs and web applications.

Next in the queue of web testing tools are web testing tools based on windows operating system. Few of them have been listed below:

- TOSCA test suite
It’s a software tool and has been designed for automated execution of regression testing and functional testing of the web applications.

- Testing anywhere
It is also an automated testing tool and it has been designed in such a way that it can perform any kind of testing from anywhere via automation feature.

- Test complete
This is another one in the line of automated testing tools. It was developed by the Smart Bear Software firm.

- Silk test
This is also an automation tool and has been designed specially for testing the functionalities of the web enterprise applications.

- Ranorex

- IBM Rational Functional Tester

- HP quick test Professional
It is an automated testing tool specially designed for functional testing and regression testing of the web applications and interfaces by HP.

- HP load runner
It can be called as a software tool from HP designed to carry out automated load testing and performance testing for web servers, web applications and other related interfaces.

Many web testing tools are available for Load testing and Performance Testing of web applications and web sites. Some have been listed below:

- Tsung:
Open source web testing tool. Tests load for multiple protocols.
- Performance Xpert
Performance testing and load testing.
- Load UI
Open source cross platform load testing tool.
- App view web
Cloud computing based performance testing tool.
- Sand storm
Load testing tool which supports testing of mobile, email and web protocols.
- Multi mechanize
- Load 2 test
- Xceptance load test
- Site Blaster
- Load intelligence
- Load storm

Some java based web testing tools have also been designed:
- Arquillian
- Your kit java profiler
- Visual VM
- Check marx
- Windows licker
- Cobertura

This is not the end of the list. Still there are many more. A new and improved tool is being developed every now and then.

What are merits and demerits of sequential test approach?

Each and every development process in this world follows a sequential approach for its development. Similarly software development is carried out with a sequential approach.
A software development plan is called system development methodology or software development methodology.

- It can be defined as a frame work that is used to plan, structure and control the whole process of development of information software or system.

- The sequential approach is followed in every aspect of software engineering whether it be development or testing to keep the development systematic and on track.

Sequential approach to testing has got both merits and demerits.
As sequential approach to testing is followed in which testing is seen as flowing steadily downwards through the phases or levels of different and various kinds of testing like performance testing, unit testing, integration testing, alpha testing, beta testing etc. the sequential approach to testing is based on certain principles which have been stated below:

- Testing plan is divided in to sequential phases. Some splash back and over lapping is accepted between any two phases of testing to a certain extent.

- More emphasis is on testing, deadlines or target dates, time schedules, implementation and budget of an entire software or system at one time.

- A very control is kept over the testing of a software system or application via extensive formal reviews and documentation, approval by the client or the customer and users.

- Control is also maintained over information technology management which is done mostly at the end of most of the phases before the beginning of a phase of testing.

Though, Sequential approach is a traditional approach to development in software engineering, it has been badly blamed for several large scale software projects over time, over budget and some times for failures in timed delivery.

- This basically happens due to big design up front approach.

- At other times this approach has been superseded by more versatile and flexible methodologies developed especially for development of software system or applications.

- This sequential testing approach is frequently used in software processes of software development.

The whole software development progress is seen flowing steadily downwards through the following phases:
- Phase of requirements specifications
- Phase of conception
- Phase of initiation
- Phase of analysis
- Phase of designing
- Phase of construction
- Phase of coding
- Phase of integration
- Phase of testing
- Phase of debugging
- Phase of validation
- Phase of production
- Phase of implementation
- Phase of installation and
- Phase of maintenance

This sequential approach basically originated in construction and manufacturing industries. This hardware oriented model or sequential approach to development was simply adopted for the development of software systems or applications also.

- While following a sequential approach it should be made sure that before moving on to the next phase, the preceding phase is perfectly completed.

- However some cases may include some slight variations.

- It’s been a observed fact that time spent in early phases of the software development process has great benefits.

- A bug or an error found in early levels of testing cost less as compared to those found in later stages of development.

- It also requires less efforts and time to repair or fix.

- If a program design or structure after development turns out to be impossible to implement than it will be a complete waste of efforts and time.

- It is easier to fix the errors and bugs in the early stages than to realize later that all the work done is of no use.

Thus following a sequential approach makes sure each and every step is 100 percent perfect and the testing process can be carried on further.

Wednesday, January 18, 2012

What are different aspects of iterative approach?

Iterative approach along with incremental development forms the heart of software development process or cycle which has been developed in response to the weaknesses of the sequential approach of water fall model.

Iterative approach begins with the execution of an initial plan and is ended with deployment with the interactions between the implementation and testing components of the cycle.

Iterative approach forms an important part of the extreme programming, rational unified process and agile software development frame works apart from the cyclic software development process.

It is similar to following the plan- do- check- act cycle of business development process.


- The basic idea behind this iterative approach is to develop a system or application through repeated cycles or iterations and in smaller units at one time (called incremental development).

- Such an approach allows the software testers and developers to take the advantage of earlier learnt lessons during the development of the software system or application.

- Learning comes simultaneously from development as well use of the software system or application.

- The basic idea of this whole iteration approach is to implement a task and its redesigning as stated in the project control list.

- It involves analysis of the current version of the software system or application.

- The key steps involve implementation of the sub sets of the software system or application requirements and this in turn leads to the enhancement of the evolving versions until the implementation of the full software system or application.

- At each step of iteration approach slight modifications in the design are made and new functional features are added.

- The first step in the procedure for iterative approach involves the process of initialization.

- The objective of the initialization step is to create a basic version of the software system or application to which the users of the software can react and give useful feedback.

- The created basic version offers a sample of all the key features and aspects of the problem concerned and also provides a solution to that problem which can be easily implemented.

- The second step is the iteration step.

- The third step involves the controlling of the project development cycle.

- The third step involves creation of a list records of all the tasks and processes that are needed to be performed and the steps which guide the whole process of iteration process.

- The project control list also includes the new features and aspects that have to be added to the software system or application.

- Apart from all this the list also mentions the areas of the software system or application that have to be redesigned from the existing solution of the problem.

- During the analysis phase the list is regularly revised and new points are continuously added.

According to the principles of the iteration testing:

- The design as well as its implementation of any iteration should be simple, modular and straight forward.

- However the level of designing is not mentioned in the project control list.

- The analysis of an iterative project is solely based up on the user feedback and the program analysis methodologies available.

- The analysis includes testing of the structure, usability, modularity, reliability, efficiency and goal achievement rate.

- If the project is found lagging in any of these aspects, the project control list is modified accordingly.

- The iterative approach involves slicing up of functionality of the software system in to small portions or increments as they are commonly called.

- In each and every increment functionality is added via cross discipline method and from the requirements to the deployment.

Tuesday, January 17, 2012

What are different aspects of web site cookie testing?

In the last post, we already discussed what a cookie is and how and when they are used. So let us explore a little more about these cookies. Here we are going to discuss how the websites that use cookies are tested.

Disabling the cookie

Disabling the cookie feature is perhaps the easiest concept under website cookie testing. Disabling the cookies is the first step in web site cookie testing.

- How the turning off or disabling of the cookies does affects a web site? You can check out by yourself.

- Clean up all the cookies and close all the open browser windows of the site that is to be tested.

- When you close the browser windows, the session cookies are automatically deleted.

- Keep the cookie folder open while you are browsing the site.

- You have to close the browser in order to delete all the cookies.

- You will notice that as you close the browser, the session cookies are automatically deleted.

- Now you disable the cookies and try using the features of the website.

- You will observe that most of the features do not work since the cookies have been disabled.

- So we can conclude that the disabling the cookies, disables the functionality of the web site.

To use the website, the cookies must be enabled.
- The question here worth asking is that whether or not the server of that website is able to recognize its failure while attempting to set the cookies?

- And if it is recognizing also, does it send a notification or a message to user stating that the cookies must be enable in order for that web site to work?

- If this is not the case then the user will keep on trying to use the web site and will get frustrated without knowing that why the web site is not responding. is one of the websites that work well even without the cookies. In such kind of web sites, the maintenance of the state if taken care of by the server side on the basis of the session ID stated at the end of the URL of the home page.

The URL of the home page of the web site was:…/home.html/104-0233809-0567844

- The rightmost digit was changed from 4 to 5 and reposted in the URL.

- Amazon discards the edited URL and effectively recovers from the URL corruption by creating a URL with the help of a new session ID:…/home.html/107-0357660-1139507

- From the above observation we conclude that the above hypothesis is correct.

To understand the test cases you need to understand how the cookies work and how they are stored and how the cookie settings can be edited? Here we are going to list some test cases for web site cookie testing:

- In concern to your privacy, the cookie privacy policy takes care that your personal data is not stored or used by the cookie.

- If no, then the cookie will save your sensitive data in an encrypted format.

- Always make sure that there is no over usage of cookies on the web site under test.This can annoy the users since the browser will prompt for cookies more often and this can cause a decline in the site traffic.

- If the site under test makes use of cookies, then it will not function properly on the disabling of cookies. Try to navigate through the website and use the features. But, make sure that the web site does not crash.

- Corruption of cookies
Change the values of the cookies to some vague values by editing them in note pad. You may later the contents of the cookie or change the parameters and observer the behavior of the website.

Monday, January 16, 2012

What are cookies and its types? Where are cookies used?

A cookie or an HTTP cookie can be defined as a message used by an origin website to send the information about the state to the browser of the user and by the browser to send the information about its state to the origin site.

An HTTP cookie is known by many names such as web cookie, browser cookie etc.

The information of the state that is sent across the origin site and the user’s browser is used for the purpose of:

- Authentication
- Identification of the session of an user
- Preferences of the user and
- Contents of the shopping cart

In other word HTTP cookies are used for any purpose that can be accomplished using the process storing text data on the computer of the user.

Characteristics and Uses of Cookie
- The main characteristic of Cookies is that they cannot be programmed and thus, cannot carry any kind of viruses or worms.

- Any malware cannot be installed on the host system with the use of a cookie. So they are safe to this extent.

- However, cookies can be effectively used by a spyware to track the browsing activities of the users.

- This is a major privacy concern and has prompted European and US law makers to take action in the past few years.

- Cookies are very easy to steal and are thus often misused by the hackers.

- Hackers steal the cookies and use them to gain access to the web account of the victim.

- Cookies were first used to solve the problem of implementation of the shopping cart.

- Initially the cookies were developed for the Netscape browser.

- They were used to check if the earlier visitors visited the site again.

- Later cookies were developed for internet explorer and other browsers.

- The concept of the cookies was not widely known to the public at that time.

The term “HTTP cookie” came into existence in the year of 1994. It has been derived from “magic cookie”.

What are Magic Cookies?
- Magic cookie was actually a data packet that a program receives and sends again to the program on the other side without altering the contents of the packet.

- Magic cookies were used in computing systems long back and were introduced in web communications by Lou Montulli in June 1994.

The development of a cookie for formal specifications is always in progress. Till date many types of cookies have developed. They have been discussed below:

Session cookie:
- This cookie has a lifetime equal to the time period of the user using the website.
- These cookies are automatically deleted after the end of a session.

Persistent cookie:
- These cookies last even after the session has expired.
- If a persistent cookie has its maximum age set to one year, then till the one year is over, the cookie will be sending information to the server every time the website is visited.
- These are also called tracking cookies.

Secure cookie:
- These cookies are used by the browser if it accessing server through an HTTPS connection.
- This ensures that the cookie is always encrypted during the transmission of the information.
- This prevents cookie theft.

HTTP only cookie:
- This type of cookie is mostly supported by all the modern browsers.
- On a browser which supports HTTP, an HTTP only cookie is used during transmission of HTTP requests.
- It restricts the access from other non HTTP scripts.

Third party cookie:
- The first party cookies are set with the same domain or sub domain in the address bar of the browser.
- But, third party cookies are set with various domains other than the one mentioned in the address bar.

Super cookie:
- A cookie with a public suffix domain like, .com etc.

Zombie cookie:
- This cookie is automatically recreated after its deletion.

What are different concepts of Pair wise testing?

We all know that we can't test everything. This is particularly appropriate for testing multiple combinations of input parameters. To test all the possible combinations for these parameters would require millions of tests.

- Pair wise testing or all pairs testing is an effective and systematic way to reduce the number of tests.

- The process of integrating this testing technique into test practices can prove to be a boon in saving time and efforts.

- Pair wise testing is also known as all pairs testing.

- Pair wise testing is nothing but a combined form of software testing methodologies or techniques.

- In a typical pair wise testing, all the pairs of input parameters, which are basically software algorithms, are tested in various possible unique combinations.

If the test vectors are chosen carefully, this process can be carried out much faster instead of performing an exhaustive search of all combinations of all the involved parameters and by parallelizing the tests of input parameter pairs.

The number of tests is typically given by the following formula:

Where n is the number of possibilities of first input parameter with most choices and m is the number of possibilities for the second input parameter with the most choices.

Reason of pair wise testing
- The pair wise testing is based on a certain reason.
- Even a simplest or primitive bug or error can cause havocs to the program.
- The petty errors are caused unknowingly by an input parameter.
- Other bugs and errors are a result of interaction between the various pairs of parameters.
- All these kind of bugs and errors can be arrested with the help of pair wise testing.
- Bugs and errors involving the interactions between three or more parameters are progressively less common in occurrence, but at the same time they are progressively more expensive to be found out by carrying out the exhaustive testing, which has its limit as the exhaustive testing of all possible inputs.

Many testers and software developers consider the pairs wise testing of a software system or subsystem or an application as a reasonable and efficient cost-benefit compromise between higher-order testing methods or techniques that can be combined and used, and less exhaustive methods or techniques which fail to exercise all the possible pairs of input parameters.

Since it is not possible for any testing technique or methodology to find out all the bugs and errors, pairs wise testing is typically used together with other testing methods and software quality assurance techniques and methodologies such as:

- Unit testing
- Symbolic execution
- Code review and
- Fuzz testing

Advantages of Pair Wise testing
- The best advantage of pair wise testing is that pair wise test cases give over 90 percent of coverage.

- In a research the pair wise testing was compared with the random input testing and it was found that pair wise testing provided better coverage.

- The block coverage obtained by pair wise testing has always been found to be comparable with the block coverage achieved by the exhaustive testing by testing all the possible factor combinations.

- Pair wise testing is actually based up on the fact that most faults are caused by interactions mostly between two factors.

- Pair wise generated test suites are quite effective in covering all the possible combinations of two parameters and therefore are much smaller than exhaustive test suites and still very effective in discovering defects.

Necessary condition for pair wise testing: - For each pair of input parameters, all the combinations of valid values of these two parameters should be covered.

- To test a small number of input parameters can result in a combinatorial explosion of a large number of possible permutations.

- Pair wise testing is to reduce the combinations to a more small and manageable size and provide effective fault detection.

Sunday, January 15, 2012

What are merits and demerits of ad hoc test approach?

Ad hoc testing as the name suggests is the testing that is carried out without any formal planning and formal documentation though it can be used for scientific experimental studies.

- The ad hoc testing is meant to be carried out only once until and unless a defect is found.
- It would not be wrong if we call the least formal methodology of testing a software application or system.
- It has always been under criticism because of its uneven structure and also because the defects discovered through this kind of testing are difficult to reproduce due to a lack of written test cases.

However, there is still a plus point of ad hoc testing as important defects or bugs can be found quickly and easily without much efforts and pre planning.

Principle of Ad-hoc testing
The ad hoc testing is based on the principle of improvisation i.e., the software testers seek to find the errors and bugs by any means that seems appropriate to him/ her or we can say tests are performed according to the convenience of the tester.

Ad hoc testing can be appropriately called a primitive version of error guessing which itself is an un- sophisticated version of exploratory testing.

- Formal testing is carried out without any test cases and it proves to be a great help in deciding the duration and scopes for the other types of testing that have to be carried out upon the software system or application.

- This also helps the tester to learn more and more about the software system or application prior carrying out the other kinds of testing.

- It can be called as the least formal method of testing.

- The quick discovery of defects is the best use of ad hoc testing.

- Only reading the specifications and requirements doesn’t give a good sense of how the program or the software system or the application actually works and behaves.

- Even the documentation of the testings does not provide the feel of the software system or application.

- Ad hoc testing can be effectively used to find discrepancies in the testing strategies of the tester and the relations between the sub- systems of the software can be explored that would have been left un- exposed.

- In a way we can say that it serves a tool for checking the quality of our testing methodology.

- It helps in finding the missing cases and so these can be added to the list of test cases.

- Discovering new test cases with ad hoc testing is an indication that root cause analysis should also be performed.

While carrying out the ad hoc testing you should ask yourself and your team members “what other tests should we need to carry out in order to supplement this and make testing more effective?”

- Defects or errors found during ad hoc testing provide examples of forgotten test cases.

- Determining the priority for carrying out other testing can also be thought as another use of ad hoc testing.

- For example, if a program allows the user to carry out some task and the ad hoc testing shows that this function works well, then the formal testing of this functionality might be postponed until the areas having problems are completed.

- On the other hand, if the ad hoc testing discovers any problem, then the formal testing for this functionality can be given highest priority.

- It is concerned with application testing without taking into considerations any rules and regulations.

- For carrying out ad hoc testing effectively the tester should have strong knowledge of the software system or application. Ad hoc testing is performed mainly to save time.

Saturday, January 14, 2012

What are different principles of communication?

Effective communication forms the most important part of the human interaction. Its importance can be hardly over looked. Each and every individual who forms a part of a team ought to know the principles of effetive communication in order to work and talk with the rest of the members of the organization and be listened to.

Here communication principles have been explained from different view poiints including litening and speaking.

Communication as we all know is a 2- way process of giving and receiving information through any channel.

The following basic principles apply everywhere irrespective of who the speaker or the listener are:

- Know your topic
- Know your purpose
- Know your audience
- Anticipate objections
- Present a clear picture
- Follow through on what you say in regard to your topic.
- Achieve credibility with your audience.
- Present what you want to say in different catchy ways
- Communicate a little at a time
- Develop a practical way to get feedback from your audience
- Use multiple and effective communication techniques

Communication is a complex process and sometimes even our own thoughts and opinions prove to be a major barrier in the way of effective communication.

Communication between different team members can be influenced by various environmental factors that actually don’t have anything to do with the content of the message.

Some of those factors have been listed below:

- Nature of the place or the room i.e., how cold or warm it is etc.
- Distractions like what is going on at that place.
- Reputation of the speaker.
- Appearance or the personality of the speaker.
- Knowledge of the listener about the topic.
- Language used.

According to a research, people remember most of what they hear and see rather reading or only seeing. To deal effectively with the decision makers, it is important to know and understand their opinions and interests.

Asking following questions will prove to be a great help:
- Whom to persuade?
- Who will make decisions about the change?
- What are the past experiences of the decision makers?
- What is current attitude of the decision maker?
- What is the most effective way to approach decision maker?
- What are the work styles of other team members?
- What programs will the new decision improve?
- How will the decision benefit the decision maker?

While making a formal presentation to the rest of the organization, the following principles hold good:

- Do not over state your case.
- Make appropriate use of understatement.
- Persuasion should be clear and simple.
- Be ready to back up facts or claims.
- Incorporate most anticipated objections.
- Use visuals aids appropriately.
- Try to find out what the other members think about your opinion.

Importance of Idea
- A good idea must always be recognized.
- The idea should be sold to those who can use it effectively.
- Organization must be convinced that the idea has enough merit to be acted upon. - Getting and giving feedback is also another important part of the communication process.
- Be patient and listen to the complete message.
- Don’t ever prejudge the incoming message.
- It’s well said that if you listen then you will be the most listened to!
- Good listeners demonstrate alertness.
- Always keep your attention directed towards the message and judge the content of the message.
- Distractions seriously impair listening.
- Always think critically and efficiently.
- Message should be conveyed in such a way that it discourages rejection and encourages retention.

Facebook activity