Monday, 15 July 2013

Compatibility Testing - Definition, Types, Tools Used

What is Compatibility Testing

  • Compatibility testing is to check whether your software is capable of running on different hardware, operating systems, applications , network environments or mobile devices.
  • Compatibility Testing is a type of the Non-functional testing
  • Initial phase of compatibility testing is to define the set of environments or platforms the application is expected to work on.
  • Tester should have enough knowledge on the platforms / software / hardware to understand the expected application behavior under different configurations.
  • Environment needs to be set-up for testing with different platforms, devices, networks to check whether your application runs well under different configurations.
  • Report the bugs .Fix the defects. Re-test to confirm defect fixing.

compatibility-testing

Types of Compatibility testing :

  • Hardware
  • Operating Systems
  • Software
  • Network
  • Browser
  • Devices
  • Mobile
  • Versions of the software
Let’s look into compatibility testing types briefly.

Hardware : It checks software to be compatible with different hardware configurations .

Operating Systems: It checks your software to be compatible with different Operating Systems like Windows , Unix , Mac OS etc.

Software: It checks your developed software to be compatible with other software’s.For example: MS Word application should be compatible with other softwares like MS Outlook,MS Excel , VBA etc.

Network: Evaluation of performance of system In network with varying parameters such as Bandwidth, Operating speed, Capacity. It also checks application in different networks with all parameters mentioned earlier.

Browser: It checks compatibility of your website with different browsers like Firefox , Google Chrome , Internet Explorer etc.

Devices : It checks compatibility of your software with different devices like USB port Devices, Printers and Scanners, Other media devices and Blue tooth.

Mobile: Checking you software is compatible with mobile platforms like Android , iOS etc.

Versions of the software: It is verifying you software application to be compatible with different versions of software.For instance checking your Microsoft Word to be compatible with Windows 7, Windows 7 SP1 , Windows 7 SP 2 , Windows 7 SP 3.

There are two types of version checking.

  • Types of Version Checking

    • Backward compatibility Testing
    • Forward compatibility Testing
Backward compatibility Testing : is to verify the behavior of the developed hardware/software with the older versions of the hardware/software.

Forward compatibility Testing : is to verify the behavior of the developed hardware/software with the newer versions of the hardware/software.

Tools for compatibility testing

  • Adobe Browser Lab – Browser Compatibility Testing - This tool helps check your application in different browsers.
  • Secure Platform – Hardware Compatibility tool - This tools includes necessary drivers for a specific hardware platform and it provides information on tool to check for CD burning process with CD burning tools.
  • Virtual Desktops - Operating System Compatibility - This is used to run the applications in multiple operating systems as virtual machines. N Number of systems can be connected and compare the results.

Monday, 8 July 2013

Adhoc Testing - Definition, Types, Advantages, Disadvantages

Adhoc Testing

Definition :

  • Adhoc testing is an informal testing type with an aim to break the system.
  • This testing is usually an unplanned activity.
  • It does not follow any test design techniques to create test cases. In fact is does not create test cases altogether!
  • It is primarily performed if the knowledge of testers in the system under test is very high.
  • Testers randomly test the application without any test cases or any business requirement document.
  • Adhoc testing can be achieved with the testing technique called Error Guessing.
  • Error guessing can be done by the people having enough experience on the system to “geuss” the most likely source of errors.

Adhoc-testing-defintion



Types of adhoc testing

  1. Buddy Testing
  2. Pair testing
  3. Monkey Testing

Buddy Testing

Two buddies mutually work on identifying defects in the same module. Mostly one buddy will be from development team and another person will be from testing team. Buddy testing helps the testers develop better test cases and development team can also make design changes early. This testing usually happens after unit testing completion.

Pair testing

Two testers are assigned modules, share ideas and work on the same machines to find defects. One person can execute the tests and another person can take notes on the findings. Roles of the persons can be a tester and scriber during testing.

Buddy testing is combination of unit and system testing together with developers and testers but Pair testing is done only with the testers with different knowledge levels.(Experienced and non-experienced to share their ideas and views)

Monkey Testing

Randomly test the product or application without test cases with a goal to break the system

Advantages of Adhoc Testing :

  • Adhoc Testing saves lot of time as it doesn’t require elaborate test planning , documentation and test case design.
  • It checks for the completeness of testing and find more defects then  planned testing.

Disadvantages of Adhoc Testing : 

  • This testing requires no documentation/ planning /process to be followed. Since this testing aims at finding defects through random approach, without any documentation, defects will not be mapped to test cases. Hence, sometimes, it is very difficult to reproduce the defects as there are no test-steps or requirements mapped to it.

Monday, 1 July 2013

Define Equivalence Partitioning with Examples

Define Equivalence Partitioning with Examples

What is Equivalence Partitioning ?

The technique is to divide (i.e. to partition) a set of test conditions into groups or sets that can be considered the same (i.e. the system should handle them equivalently), hence ‘equivalence partitioning’. Equivalence partitions are also known as equivalence classes – the two terms mean exactly the same thing.

Example 1 for Equivalence partitioning :

Test cases for input box accepting numbers between 1 and 1000 using Equivalence Partitioning:
1) One input data class with all valid inputs. Pick a single value from range 1 to 1000 as a valid test case. If you select other values between 1 and 1000 then result is going to be same. So one test case for valid input data should be sufficient.

2) Input data class with all values below lower limit. I.e. any value below 1, as a invalid input data test case.

3) Input data with any value greater than 1000 to represent third invalid input class.

Example 2 for Equivalence partitioning :

For example in a savings Bank account,
3% rate of interest is given if the balance in the account is in the range of $0 to $100,
5% rate of interest is given if the balance in the account is in the range of $100 to $1000,
And 7% rate of interest is given if the balance in the account is $1000 and above.

We would initially identify three valid equivalence partitions and one invalid partition as shown below. [Click on the image for Zoom view]

Equivalence-partitioning


Example 3 for Equivalence partitioning :

A store in city offers different discounts depending on the purchases made by the individual. In order to test the software that calculates the discounts, we can identify the ranges of purchase values that earn the different discounts. For example, if a purchase is in the range of $1 up to $50 has no discounts, a purchase over $50 and up to $200 has a 5% discount, and purchases of $201 and up to $500 have a 10% discounts, and purchases of $501 and above have a 15% discounts.

Now we can identify 4 valid equivalence partitions and 1 invalid partition as shown below:

Invalid Partition Valid Partition(No Discounts) Valid Partition(5%) Valid Partition(10%) Valid Partition(15%)
$0.01 $1-$50 $51-$200 $201-$500 $501-Above

Happy Sharing! :)

Define Boundary Value Analysis with Examples

Define Boundary Value Analysis with Examples :

What is Boundary Value Analysis ?

A test data selection technique in which values are chosen to lie along data extremes. Boundary values include maximum, minimum, just inside/outside boundaries, typical values, and error values. The hope is that, if a systems works correctly for these special values then it will work correctly for all values in between.

Example 1 for Boundary Value Analysis : 

Password field accepts minimum 6 characters and maximum 12 characters. [Range is 6-12]

Write Test Cases considering values from  Valid region and each Invalid Region and Values which define exact boundary.

We need to execute 5 Test Cases for our Example 1.
1. Consider password length less than 6
2. Consider password of length exactly 6
3. Consider password of length between 7 and 11
4. Consider password of length exactly 12
5. Consider password of length more than 12 

Note : 1st and 5th Test Cases are considered for Negative Testing

Boundary-Value-Analysis-Examples


Example 2 for Boundary Value Analysis :

Test cases for input box accepting numbers between 1 and 1000 using Boundary value analysis:
1) Test cases with test data exactly as the input boundaries of input domain i.e. values 1 and 1000 in our case.
2) Test data with values just below the extreme edges of input domains i.e. values 0 and 999.
3) Test data with values just above the extreme edges of input domain i.e. values 2 and 1001.


Example 3 for Boundary Value Analysis :

Name text box which allows 1-30 characters. So in this case writing test cases by entering each character once will be very difficult so then will choose boundary value analysis.

So in this case at max 5 test cases will come:

Test case1: minimum -1 character: Validating not entering anything in text box
Test case2: minimum +1 character: Validating with only one char
Test case3: maximum -1 character: Validating with 29 chars
Test case4: minimum +1 character: Validating with 31 characters
Test case1: any one middle number: validating with 15 chars

Happy Sharing!

Sunday, 30 June 2013

What Is System Testing

What Is System Testing

Testing the behavior of the whole software/system as defined in software requirements specification (SRS) is known as system testing, its main focus is to verify that the customer requirements are fulfilled.

System testing is done after integration testing is complete. 

In system testing, there are two type of testing

System Testing
Click on the image for zoom view

Functionality testing is to test whether application functioning as per requirement or not.

Non-functionality testing are several types :
  • Load,
  • Stress,
  • Performance,
  • Reliability,
  • Security,
  • Usability
  • Configuration,
  • Compatibility (forward & Backward),
  • Scalability, Etc...

Click on the links to read more about Functionality testing and Non-functionality testing

Software Testing Tutorials Topics


Welcome to "SOFTWARE TESTING TUTORIALS - MANUAL AND AUTOMATION QUESTIONS ANSWERS". This website is to Share knowledge and make it a place for both novice and experts in Testing to exchange information. I hope this will be a good platform to gain (or refresh) basic knowledge in the field of Software Testing. Everybody is welcome to read articles on this site and express their view point or ask questions by adding comment(s) at the end each post. Stay in Touch.

Software Testing Tutorials topics are listed below based on the categories.