Showing posts with label software-testing-tutorials. Show all posts
Showing posts with label software-testing-tutorials. Show all posts

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

Thursday, 27 June 2013

Different Types Of White Box Testing

Different Types Of White Box Testing

Path Testing :

Taking up each and every individual path through which the flow of code taken place.

Loop Testing :

A Piece of code executing continuously until the condition becomes false and testing whether it is proper or not.

Ex: For (Loop=1; Loop<=10; Loop++)
      {
        ------
        ------
       }

Monday, 24 June 2013

Bug Life Cycle Or Defect Life Cycle In Software Testing

Bug Life Cycle Or Defect Life Cycle In Software Testing

Defect life cycle is a cycle which a defect goes through during its lifetime. It starts when defect is found and ends when a defect is closed, after ensuring it’s not reproduced. Defect life cycle is related to the bug found during testing.
Bug-life-cycle
Click on the image for zoom view

Saturday, 15 June 2013

Integration Testing And Types Of Integration Testing

Define Integration Testing And Types Of Integration Testing

Integration Testing:

Combining the modules and testing the flow of data between them. Integration Testing is divided into 2 types.

  • Incremental Integration Testing:

Adding the modules incrementally and checking the data flow between them. Modules are added in a sequential fashion.

This can be done in two ways 
    • Top-Down Approach
    • Bottom-Up approach.

Define Agile Model and its Advantages

Define Agile Model and its Advantages

Agile Model or Agile Methodology :

Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout the development life cycle. Agile methods break tasks into small increments with minimal planning and do not directly involve long-term planning. Iterations are short time frames that typically last from one to four weeks. Each iteration involves a cross functional team working in all functions: planning, requirements analysis, design, coding, unit testing, and acceptance testing. At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the project to adapt to changes quickly. An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release at the end of each iteration. Multiple iterations might be required to release a product or new features.
agile-model

Software Testing Life Cycle (STLC)

Software Testing Life Cycle (STLC)

Software Testing Life Cycle (STLC) defines the steps/stages/phases in testing of software. 

The different stages in Software Testing Life Cycle:


  1. Requirement Analysis
  2. Test Planning
  3. Test Case Design / Development
  4. Environment setup
  5. Test Execution / Reporting / Defect Tracking
  6. Test Cycle Closure / Retrospective study

Software_Testing_Life_Cycle

Difference Between Severity And Priority

Difference Between Severity And Priority

Severity
Priority
Severity: It is with respect to the Impact on the functionality. It is with respect to the impact on the business.
Example for High Severity:

The Quarterly statement event is not triggering from the website and we are just at the beginning of the new quarter after a new release. In this case the Severity is High but priority could be low because we have time till the quarter end to fix the bug.
Example for High Priority:

The client logo is not appearing on the web site but the site is working fine. in this case the severity is low but the priority is high because from company's reputation it is most important to resolve. After all the reputation wins more clients and projects and hence increases revenue.

Difference Between Verification And Validation

Difference Between Verification And Validation

Verification
Validation
Are we building the product right? Are we building the right product?
Verification is to check whether software conforms to the specifications and is done by development team at various development phases.During development phase the SRS document ,Design Document and the code are reviewed to ensure that product is being developed using the process oriented approach.It is an in-house activity of the development organization. It is an Quality assurance activity which prevents the defects of the product. Validation is to check whether the software meets the customer's expectation.This is done by testing the software for its functionality and other requirements as mentioned in Requirements Specification Documents.Validation is carried out with customer involvement.It is Quality control acitvity which detects the defect during testing of the product

Difference Between Test Scenario And Test Case

Difference Between Test Scenario And Test Case

Test Scenario
Test Case
Test Scenario is ‘What to be tested’ Test Case is ‘How to be tested’
Test scenario is nothing but test procedure. Test case consist of set of input values, execution precondition, expected Results and executed post-condition developed to cover certain test Condition.
The scenarios are derived from use cases. Test cases are derived (or written) from test scenario.
Test Scenario represents a series of actions that are associated together. Test Case represents a single (low level) action by the user.
Scenario is thread of operations Test cases are set of input and output given to the System.

For example:
  • Checking the functionality of Login button is Test scenario
  • Test Cases for this Test Scenario are:
    • Click the button without entering user name and password.
    • Click the button only entering User name.
    • Click the button while entering wrong user name and wrong password and etc...

Saturday, 8 June 2013

Compare Desktop testing, Client-Server testing and Web testing

We have three testing types
  • Desktop application testing,
  • Client server application testing and
  • Web application testing.
Each one differs in the environment in which they are tested and you will lose control over the environment in which application you are testing, while you move from desktop to web applications.

DESKTOP APPLICATION:

It runs on personal computers and work stations, so when you test the desktop application you are focusing on a specific environment. You will test complete application broadly in categories like GUI, functionality, Load, and back-end i.e DB.

CLIENT / SERVER TESTING:

In client server application you have two different components to test. Application is loaded on server machine while the application exe on every client machine. You will test broadly in categories like, GUI on both sides, functionality, Load, client-server interaction, back-end.

Difference between Web testing and Client-Server testing

Difference between Web testing and Client-Server testing :

CLIENT / SERVER TESTING
WEB TESTING
This type of testing usually done for 2 tier applications (usually developed for LAN)
Here we will be having frontend and backend.

The application launched on frontend will be having forms and reports which will be monitoring and manipulating data

This is done for 3 tier applications (developed for Internet / intranet / xtranet)

Here we will be having Browser, web server and DB server.

The applications accessable in browser would be developed in HTML, DHTML, XML, JavaScript etc.,
(we can monitor thru these applications)
Applications developed in VB,VC++,Core Java,C,C++,D2K,PowerBuilder etc.,

Applications for the webserver would be developed in Adv Java, ASP, JSP, VBScript, JavaScript, Perl, ColdFusion, PHP etc.,
(all the manipulations are done on the web server with the help of these programs developed)

The backend for these applications would be MS Access, SQL Server, oracle, sybase, mysql, quadbase

The DBserver would be having oracle, sql server, sybase, mysql etc.,
(all data is stored in the database available on the DB server)
The tests performed on these type of applications would be
- user interface testing
- manual support testing
- Functionality testing
- compatability testing & configuration testing
- intersystems testing

The tests performed on these type of applications would be
- user interface testing
- Functionality testing
- security testing
- browser compatability testing
- load / stress testing
- interoperability testing/intersystems testing
- storage and data volume testing

Friday, 24 May 2013

Advantages and Dis-advantages of V-model

Advantages of V-model (SDLC)

These are the advantages V-Model offers in front of other systems development models:

  • The users of the V-Model participate in the development and maintenance of The V-Model. A change control board publicly maintains the V-Model. The change control board meets anywhere from every day to weekly and processes all change requests received during system development and test.
  • The V-Model provides concrete assistance on how to implement an activity and its work steps, defining explicitly the events needed to complete a work step: each activity schema contains instructions, recommendations and detailed explanations of the activity.

All (100) Types of Software Testing

All (100) Types of Software Testing

Below is an exhaustive list of “types of software testing” and a brief description about each type of software testing, like load testing, stress testing, unit testing, system testing, acceptance testing, certification testing, performance testing, user acceptance testing, penetration testing, automated testing, beta testing, compatibility testing, security testing, benchmark testing, functional testing, negative testing, destructive testing, integration testing, regression testing, alpha testing, end-to-end testing, path testing, smoke testing, black box testing, stability testing, usability testing etc., and many more, about 100 software testing types with descriptions are listed below.

Why there are so many types of software testing ?

Quality of software is assessed in terms of 6 Quality factors (Functionality, Reliability, Efficiency, Usability, Maintainability and Portability). Each of below listed type of software testing is designed to validate software for one or more of the mentioned quality factors. More types of software testing have evolved to keep up with the pace with rapid increase in complexity of the software design, frameworks & Programming languages, increased number of users with popularity of internet, advent of new platforms and technologies. With increase in number of software testing types to be performed, need for software testing tools has increased as well.

1. Ad-hoc testing :

This is a informal type of software testing that is performed by software testers, business analyst, developers or any stake holder without referring to test cases or documentation. Person performing ad-hoc testing usually has a good understanding of software requirements and tries to break the software and find defects with the experience and knowledge they have about the domain, requirements and functionality of the software. Ad hoc testing is intended to find defects that were not found by existing test cases.

2. Acceptance testing:

This is a formal type of software testing that is performed by end customer to check if the software confirms to their business needs and to the requirements provided earlier. Acceptance tests are usually documented; however end customers may not document test cases for smaller version or releases.

3. Accessibility testing:

This is a formal type of software testing that helps to determine whether the software can be used by people with disability. Disability can be blind, deaf, color blindness, learning disability etc. There are also companies and consultants that provide website accessibility audits.

4. Aging testing:

This is a type of performance testing that is carried out by running software for longer duration like weeks or months and check performance of software to see if the software performance degrades or shows any signs of degradation after running for a longer period of time. Aging Test is also known as Soak testing and also known as longevity testing.

5. Alpha Testing:

This is a formal type of testing that is performed by end customers at development site. Alpha testing is conducted before taking the software to Beta testing.

Thursday, 23 May 2013

Software Test Documents - Test Plan, Test Scenario, Test Case, Traceability Matrix

Explain about Software Test Documents (artifacts)

Testing documentation involves the documentation of artifacts which should be developed before or during the testing of Software.

Documentation for Software testing helps in estimating the testing effort required, test coverage, requirement tracking/tracing etc. This section includes the description of some commonly used documented artifacts related to Software testing such as:

  • Test Plan
  • Test Scenario
  • Test Case
  • Traceability Matrix

Tuesday, 21 May 2013

What is Acceptance Testing ?

What is Acceptance Testing :

This is arguably the most importance type of testing as it is conducted by the Quality Assurance Team who will gauge whether the application meets the intended specifications and satisfies the client.s requirements. The QA team will have a set of pre written scenarios and Test Cases that will be used to test the application.

More ideas will be shared about the application and more tests can be performed on it to gauge its accuracy and the reasons why the project was initiated. Acceptance tests are not only intended to point out simple spelling mistakes, cosmetic errors or Interface gaps, but also to point out any bugs in the application that will result in system crashers or major errors in the application.

By performing acceptance tests on an application the testing team will deduce how the application will perform in production. There are also legal and contractual requirements for acceptance of the system.

Non-Functional Testing - Performance, Usability, Security, Portability

Non-Functional Testing

  • Performance Testing

    • Load Testing
    • Stress Testing

  • Usability Testing

    • UI VS Usability Testing

  • Security Testing

  • Portability Testing

Non-Functional Testing definition :

This section is based upon the testing of the application from its non-functional attributes. Non-functional testing of Software involves testing the Software from the requirements which are non functional in nature related but important a well such as performance, security, user interface etc.