Sunday 10 June 2012

ISTQB questions


These are the question for certification exam of istqb for foundation level i want the answer
i remember few of the option i had in exam so i am posting them to with the ques.
do post your answer

Q.1 if cond1 or cond 2 then do C endif  how test cases are necessary for 100% decision coverage?

Q.2 Difference b/w use cases and other specification based techniques?

Q.3 How many cycles of regression testing can we do ?
     
     1 , 2 , depends on time and budget , until the software is bug free

Q.4 Group I - 0 -12 Group II- 13-18 Group III- over 18  what will be the boundary values ?

Q.5 what is integration testing?
     
     looking for faults in subsystem or project  , specifying which module to integrate

Q.6  Most appropriate reason for incident management?

      test failed , difference in expected behaviour ,  small difference in expected behavior

Q.7 Is white box testing useful for low level and high level testing or Black box is equivalent as equivalence partitioning? which 1 is true?

Q.8 Test tools used for finding  user requirements  ?

Q.9 What is the best definition for use cases?

Q.10 A small organization . Has reviewed their product they want only one review method for product because it is critical.?
 
    correct due to criticallity of product , incorrect they can use different review methods for different product
     correct they should have only one review method for all product





Sunday 20 May 2012

How to calculate Statement, Branch/Decision and Path Coverage



Statement Coverage:
In this the test case is executed in such a way that every statement of the code is executed at least once.
Branch/Decision Coverage:
Test coverage criteria requires enough test cases such that each condition in a decision takes on all possible outcomes at least once, and each point of entry to a program or subroutine is invoked at least once. That is, every branch (decision) taken each way, true and false. It helps in validating all the branches in the code making sure that no branch leads to abnormal behavior of the application.
Path Coverage:
In this the test case is executed in such a way that every path is executed at least once. All possible control paths taken, including all loop paths taken zero, once, and multiple (ideally, maximum) items in path coverage technique, the test cases are prepared based on the logical complexity measure of a procedural design. In this type of testing every statement in the program is guaranteed to be executed at least one time. Flow Graph, Cyclomatic Complexity and Graph Metrics are used to arrive at basis path.
How to calculate Statement Coverage, Branch Coverage and Path Coverage?
Draw the flow in the following way-
·        Nodes represent entries, exits, decisions and each statement of code.
·        Edges represent non-branching and branching links between nodes.
Example:
Read P
Read Q
IF P+Q > 100 THEN
Print “Large”
ENDIF
If P > 50 THEN
Print “P Large”
ENDIF
Calculate statement coverage, branch coverage and path coverage.

Solution:
The flow chart is-
                         

Statement Coverage (SC):
To calculate Statement Coverage, find out the shortest number of paths following which all the nodes will be covered. Here by traversing through path 1A-2C-3D-E-4G-5H all the nodes are covered. So by traveling through only one path all the nodes 12345 are covered, so the Statement coverage in this case is 1.
Branch Coverage (BC):
To calculate Branch Coverage, find out the minimum number of paths which will ensure covering of all the edges. In this case there is no single path which will ensure coverage of all the edges at one go. By following paths 1A-2C-3D-E-4G-5H, maximum numbers of edges (A, C, D, E, G and H) are covered but edges B and F are left. To covers these edges we can follow 1A-2B-E-4F. By the combining the above two paths we can ensure of traveling through all the paths. Hence Branch Coverage is 2. The aim is to cover all possible true/false decisions.
Path Coverage (PC):
Path Coverage ensures covering of all the paths from start to end.
All possible paths are-
1A-2B-E-4F
1A-2B-E-4G-5H
1A-2C-3D-E-4G-5H
1A-2C-3D-E-4F
So path coverage is 4.
Thus for the above example SC=1, BC=2 and PC=4.

Saturday 5 May 2012

Interview Question for S/W testing

Thursday 3 May 2012

TEST CASES

Here are the few Test case for LOGIN PAGE

1. Enter the URL check Login page open or not
2.Default focus should be on username
3.Password should be in encrypted form.
4.Password should not get copy or cut
5.Functionality checks on buttons
6.Properties checks on button

Now Test cases for Standard Calculator

1.Does calculator turn on when the on button is pressed and it display 0
2.Does it display every number on screen when it is pressed
3.when we press the clear button then screen display reduced to 0 or not
4.Divide by 0.
5.Multiplication of two negative number result should be positive
6. = button must be tested

Thursday 26 April 2012

After finishing Testing fundamental lets focuses on the Approaches of Testing


There are two Approaches of testing
1.Static Approach
2.Dynamic Approach


Static Approach -In this approach the software work products are examined manually ,or with a set of tools but not executed. Some types of defects are easier to find in static approach.All software work products can be tested using review techniques.Review is part of static testing.




Dynamic Approach -Software is executed using a set of input values and its output is then examined and compared to what is expected. Dynamic approach/testing can only be applied to the software code.

Different types of Dynamic approach/ testing

1.BlackBox Testing – It is also known as Behavioral testing ,it is a software testing method in which the internal structure/design/implementation of the item being tested is not known to the tester.

2.WhiteBox Testing – It is also known as clear box testing, Glass box testing or Structural testing ,it is a software testing method in which the internal structure/design/implementation of the item being tested is known to the tester.

3.GrayBox Testing – Gray box testing is a software testing method which is a combination of black box and white box testing. In Gray box testing ,the internal structure is partially known to the tester.This involves having access to internal data structures and algorithms for purposes of desgining the test cases but testing will be at black box level


Now we will discuss about the testing techniques


1.Blackbox testing technique – It is divided into 4 types


  a. Equivalence Partitioning

  b. Boundary Value Analysis

  c. Decision Tables

  d. State Transition Diagrams



Equivalence Partitioning – It is black box testing method that divides the input domain of a program into classes of data from which test cases can be derived. Test cases derived from equivalence partitioning is based on an evaluation of equivalence classes for an input condition.


Boundary Value Analysis – BVA extends equivalence partitioning by focusing on the data at the “edges” of an equivalence class.

Decision Tables –“Cause Effect” tables are covered in Decision making of black box testing technique.

State Transition Diagrams –“Finite state machine” is part of black box testing technique. In which a process from beginning till the defect is closed and till the process is closed covered up.

2.White-Box Technique – White-box technique includes :- control flow testing ,data flow testing, branch testing, path testing

Code coverage – In this each line of code is being executed

Design coverage – In this each Boolean expression like if-else, do-while, while are being executed at least once

After finishing the basic concept of testing 
lets talk about the Defects

Q. what do you mean by a defect ?
Ans- defect is non-accordance to user behavior or a defect is a condition in a software product which does not meet a software requirement or end user's expectations 


  • A program that contains a large number of bugs is said to be buggy.
  • Reports detailing bugs in software are known as bug reports.
  • Applications for tracking bugs are known as bug tracking tools.
  • The process of finding the cause of bugs is known as debugging

There are two type of defects 
1.Defect Severity
2.Defect Priority

Defect Severity  - It basically tells how bad the bug is?

Defect Priority  - It indicates " How much the business is getting affected by the defect".

there are 4 classification of defect severity and defect priority

1. High severity and High priority - example "when we are not able to login in our account" it can highly impact our business and it is a serious bug/defect.

2.Low severity and High priority - example " Spelling mistake in the name of company on company's website like airtl instead of airtel "

3.Low severity and Low Priority- example "there is drop down on second page of the website and spelling of haryana is wrong" or we can just a typo error.

4. High severity and Low priority - example " not able to take the printout from the website"

Lets now come to Defect Life-cycle

 Defect Life-cycle 



1.New - when the bug is posted for the first time , its state will be "NEW".This means that bug is not yet approved

2.Open - After a tester has posted a bug ,the lead of the tester approves that bug is genuine and he changes the state as "OPEN"

3.Assign - Once the lead changes the state as "OPEN",he assign the bug to corresponding developer or developer team. The state of the bug now is changed to "ASSIGN".

4.Deferred - The bug ,changed to deferred state means the bug is expected to be fixed in next releases.

5.Rejected - If the developer feels that the bug is not genuine, he rejects the bug.Then the state of bug is changed to "REJECTED".

6.Test - Once the developer fixes the bug,he has to assign the bug to the testing team for next round of testing.Before he releases the software with bug fixed,he changes the state of bug to "TEST".It specifies that the bug has been fixed and is released to testing team.

7.Reopened - If the bug still exists even after the bug is fixed by the developer,the tester changed the state to"REOPENED".The bug traverse the life-cycle once again.

8.Verified -Once the bug is fixed and the status is changed to "TEST",the tester tests the bug. If the bug is fixed and not present in software the state is changed to"VERIFIED"

9. Closed - Once the bug is fixed ,it is tested by the tester.If the tester feels that the bug no longer exists in the software,he changed the state of the bug to "CLOSED".



Defect Management Process


The typical defect management process includes the following high-level process steps. When implemented inside of a specific organization, each of these high-level steps would have more detailed standard operating procedures along with policies to carry out the details of the process.

1.  Identification - This step involves the discovery of a defect. Hopefully, the person discovering the defect is someone on the testing team. In the real world, it can be anyone including the other individuals on the project team, or on rare occasions even the end-customer.

2.  Categorization - When a defect is reported, it is typically assigned to a designated team member to confirm that the defect is actually a defect as opposed to an enhancement, or other appropriate category as defined by the organization. Once categorized, the defect moves on in the process to the next step which is prioritization.

3.  Prioritization – Prioritization is typically based on a combination of the severity of impact on the user, relative effort to fix, along with a comparison against other open defects. Depending on the size and structure of the organization, the prioritization is often handled by a formal change control board. The priority should be determined with representation from management, the customer, and the project team.

4.  Assignment - Once a defect has been prioritized, it is then assigned to a developer or other technician to fix.

5.  Resolution - The developer fixes (resolves) the defect and follows the organization's process to move the fix to the environment where the defect was originally identified.

6.  Verification - Depending on the environment where the defect was found and the fix was applied, the software testing team or customer typically verifies that the fix actually resolved the defect.

7.  Closure - Once a defect has been resolved and verified, the defect is marked as closed.

8.  Management Reporting - Management reports are provided to appropriate individuals at regular intervals as defined reporting requirements. In addition, on-demand reports are provided on an as-needed basis.
















HOME    PREVIOUS


after discussing the verification and validation now comes the important part of testing
TESTING FUNDAMENTALS

lets get started with Testing Fundamentals

Testing Fundamentals

First of i want to tell you that there is two type of testing we all do

1.Functional Testing
2.Non-Functional Testing


Before discuss deeply about different types of Functional and Non Functional Testing lets try to know what actually the Functional & Non-Functional Testing are

Functional Testing


It basically means Testing of all the features and function of a system to ensure requirement and specification of the client are met

Non-Functional Testing


It basically means Testing is done on the requirement ,specification and test scenarios defined by the client

Now lets talk about the different type of Functional testing

  • Unit Testing - In this level of testing each individual unit/components of a software/system are tested.     The purpose is to validate that each unit of the software performs as designed
  • Integration Testing -In this level of testing individual units are combined and tested as a group or we can say testing done by combining two or more modules/unit together.  
             Approaches of Integration Testing
  1. Big bang approach - In this approach all or most of the units are combined together and tested at one go
  2. Top-Down approach - In this approach of integration testing , top levels units are tested first and lower level units are tested step by step after that.
  3. Bottom-Up approach - In this approach of integration testing , Lower level units are tested first and upper level units are tested step by step after that.
  4. Sandwich/Hybrid- It is an approach to Integration testing which is combination of Top down and Bottom up approaches.
  • System Testing - System Testing is the level of software testing process where a complete,integrated system/software is tested . System testing is performed after Integration testing and before Acceptance testing      
  • Smoke Testing - It also known as "Build Verification Testing". Smoke testing cover most of the major functionality of the software but it doesn't goes in depth of the functions .The result of this testing is used to decide if a build is stable enough to proceed with further testing.
  • Regression Testing - Regression Testing is a type of software testing that intends to ensure that changes like enhancement or  defect fixing to software have not adversely affected it . Regression Testing can be performed during any level of testing  but it is mostly relevant during the System Testing
  • Sanity Testing - Sanity testing is the sub set of Regression Testing . It only focuses on one or few areas of functionality of the software.Sanity testing usually narrow and deep.It is usually unscripted
  • Adhoc Testing - we can call this testing as Spontaneous Testing  .Adhoc testing  is done by without any formal test plan or test case creation.It is the least formal method of testing
  • User Acceptance Testing -It is the software testing process where a system is tested for acceptability.Acceptability Testing is performed after System Testing and before making the system available for actual use. It is of two types 
            1.Alpha Testing - Also know as Internal Acceptance Testing. It is performed by the members of organization that developed the software but who are not directly involved   in the project.Usually,it is the members of Product Management ,Sales or customer support.Client also comes and verify that all the requirements are met,according  to the customer needs and all projects are working fine.

            2.Beta Testing - Also known as External Acceptance Testing .It is perfromed by the end user of the software.They can be customer themselves or the customer's customer.Development and testing team can go at Client site and look & fill how all the functionality is working                                    

  • Localization Testing - It is part of the software testing process that focused on the local aspects of software.It is a process of adapting a globalized application to a particular culture/location.Localizing an application requires a basic understanding of the character sets typically used in modern software development and understanding the issues associated with them.
  • Globalization Testing - The objective of the globalization testing is to detect potential problems in application design that could inhibit globally.It make sure that code can handle international support without breaking functionality that would cause either loss or display problems.
That's all in my knowledge about the functional testing 

Now lets talk about different type of Non-Functional Testing

  • Recovery Testing - In this testing we check how well an application is able to recover from crashes,hardware failure and other similar problems.
         For Example :- while an application is receiving data from a network, unplug the connecting cable.After sometime ,plug the cable back in and analyze the application's ability to continue receiving data from the point at which the network connection disappeared
  • Compatibility Testing - In this testing conducted on the application to evaluate the application's compatibility  with other computing environment.Browser compatibility testing can be more appropriately referred to as user experience testing
  • Documentation Testing - Documentation testing can start at the very beginning of the software process and hence save a large amount of money ,since the earlier a defect is found the less it will cost to fixed. Example -User Manual along with television
  • Usability Testing - Usability testing is a technique used in user centered interaction design to evaluate a product by testing it on users.This can be seen as an irreplaceable usability practice ,sine it gives direct input on how real users use the system.
  • Installation Testing - Installation testing is kind of quality assurance work in the software industry that focuses in what customers will need to do install and set up the new software successfully.The testing process may involve full,partial or upgrades sometimes called package software.
  • Operational Readiness Testing - ORT is also known as "Pre GO Live" Test.Objective of ORT is to ensure application is configured and functioning correctly in production environment before end users start using the application. 
  • Security Testing -It is a process to determine that ab information system protects data and maintains functionality as intended.The six basic security concept that need to be covered by security testing are:- confidentiality,integrity,authentication,availability,authorization and non-repudiation.Security testing as a term has number of different meanings and can be completed in a number of different ways.
  • Performance Testing - A performance testing is a technical investigation done to determine or validate the responsiveness,speed, scalability and  stability.There are different types of performance testing.
          1.Load Testing - to verify application behavior under normal and peak load conditions
              1.1 Endurance Testing - It is a subset of load testing.An endurance test is a type of performance test focused on determining or validating the performance characteristics of the product under test when subjected to workload .It is basically to evaluate time
lets take an example to explain what basically is load  and endurance testing is
there is a website of a bank abc and transaction of money online only happens when 15 users are doing the transaction and it take 10 sec to complete the transaction.In load testing what we do we increase the number of user from 15 to 16 then 17,18 and so on  then we check till how many user does the function of online transaction of money take place and till when  the functionality breaks but we have to do transaction in 10seconds only no increase in time. In endurance testing we do the same by increasing the time (we can say by 5 sec) and users also

       2. Stress Testing - To determine or validate an application's behavior when it is pushed beyond normal or peak load conditions.
           2.1 Spike Testing -It is the subset of stress testing.A spike test is a type of performance test focused on determining or validating the performance characteristics of the product under test when subjected to workload and load volumes that repeatedly increase beyond anticipated production operations for short periods of time.
   the example of stress and spike testing are same as above example but in this testing we decrease the time and check when the functionality will break.
    
      3. Capacity Testing - To determine how many user or transactions a given system will support and still meet performance goals.
      4. Volume Testing - It is performed while doing the database testing       


HOME       NEXT
         

           


Wednesday 25 April 2012

Testing for Freshers

In this blog i will help you in gaining some knowledge about Manual testing.
First of all i wanna tell you this my first blog. So Lets get started with Manual Testing.

First question that comes to mind is 
Q.what do you mean by Testing?
Ans.Testing - It basically means Quality Control and Quality Control measure the quality of product or software 
now questions comes

Q. What do you mean by Manual Testing?
Ans:-Manual Testing means testing a software manually to find the defects .The role of end user is played by the tester and use most of the features or functionality to ensure the correct behavior of the application

now we discuss about the SDLC
SDLC stands for SOFTWARE DEVELOPMENT LIFE CYCLE

Q. What is SDLC?
Ans:- SDLC is a process of building an application through different phases.
          Here The phases are 5 types, 
          they are: - Requirement Analysis, Design, Coding, Testing and Maintenance.
          
Lets Discuss about the phases of SDLC
1.Requirement Analysis -It basically deals with the concept what the customer wants?.This is the entry point of the software product.                                    This phase ends with an SRS(SYSTEM REQUIREMENT SPECIFICATION)

The Requirement Phase has three stages:
     1.1Problem Analysis
The goal of problem analysis is to obtain a clear understanding of the
requirements of the client and the users. This involves interviewing the client
and the end users. 
    2.1Requirement Specification(SRS)This is a result of a successful problem analysis. The SRS makes an Agreement between the user(client) of the system and the developer on what the software product will do.
    3.1Requirement Validation
Validation of requirement is necessary to fill out some small gaps in the SRS. It validates whether the requirement specification document does not have any error in it. The common errors that may occur are incorrect fact , inconsistency and ambiguity(where their is no meaning for the requirement).

2.Design - System analysis leads to design decision, which exactly determines how the system operates in terms of process, data, hardware, network infrastructures, user interface, and other important factors in the system environment


3.Coding- It is used to develop the product or software what customer asks for

4.  Maintenance - There are two goals of Maintenance in SDLC:
                1. Increase the ability of the software 
                 2.avoidance of failures.


Better Adaptability of the Software – SDLC’s idea of maintenance is very beneficial not only to the developers but also for the software itself.   With the use of available data, developers will learn something new.   In this account, they will be able to apply this knowledge to the software.


Although any developer would not wish for a problem, it poses a great opportunity to learn more about the industry and release updates to combat problems once and for all.  The end result of constant updates will be a better software that can adapt to the changing environment.   When a business spends thousands of dollars on project development, they expect more from the software.  Maintenance will ensure that the software will last for a very long time.


Avoidance of Failures – Maintenance does not only ensure that the problem will be fixed but maintenance should prevent the same event from happening again. Software will always have that “learning” property as long as they are handled well by the developers.   Developers will often work on the problem and at the same time give updates on the system to prevent failures.   It is essential for developers to release updates especially if the software is an important part of the business.

5.Testing - Testing used to ensure the correct behaviour of the application we are working on.

NOW,We will talk about the SDLC Models

There are 7 SDLC Models
1.Built & Fix Model
2.Waterfall Model
3.Iterative Model
4.Prototyping Model
5.Spiral Model
6.RAD Model
7.V-Model

Lets discuss each Model one by one

1.Built & Fix Model 

 This model is the worst model developing a project. In    this the product or software is built without proper specifications and design steps .In essence, the product is built and modified as many times as possible until it satisfies the client or customer.
the cost of using this model is really high 





2.Waterfall Model


   Waterfall approach was first Process Model to be introduced and followed widely in Software Engineering to ensure success of the project. In "The Waterfall" approach, the whole process of Software development is divided into separate phases.
 The phases in Waterfall model are: Requirement Specifications phase, Software Design, Implementation and Testing & Maintenance. All these phases are cascaded to each other so that second phase is started as and when defined set of goals are achieved for first phase and it is signed off, so the name "Waterfall Model". All the methods and processes undertaken in Waterfall Model are more visible. of software development is divided into separate process phases.

3.Iterative Model

In this model the project is divided into the release or increments and a end product is obtained.
In this until and unless we deliver the 1st release or increment we cannot start with the 2nd release or increment of product




4.Prototyping Model

 The prototyping model is a system development method(SDM) in which a prototype (an early approximation of a final system or product) is built ,tested and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed.
This model works best in scenarios where not all of the project requirements are known in detail ahead of time .It is an iterative ,trail and error process that take place b/w the developers and the users 



5.Spiral Model

Risk analysis is the main feature for Spiral Model.It is also known as spiral lifecycle model

The steps in the spiral model can be generalized as follows:
  1. The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system.
  1. A preliminary design is created for the new system.
  1. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.
  1. A second prototype is evolved by a fourfold procedure: (1) evaluating the first prototype in terms of its strengths, weaknesses, and risks; (2) defining the requirements of the second prototype; (3) planning and designing the second prototype; (4) constructing and testing the second prototype.
  1. At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer's judgment, result in a less-than-satisfactory final product.
  1. The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.
  1. The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired.
  1. The final system is constructed, based on the refined prototype.
  1. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime

6.RAD

RAD stands for Rapid Application Development Model
RAD is incremental software development process model that allows usable systems to be built in as little as 60-90 days, often with some compromises. The RAD model used for information systems development. The RAD model contains the following phases:











  • Business modelling
  • Data modelling
  • Proccess modeling
  • Application generation
  • Testing and turnover


  • 7.V-Model

    In V-model the testing begins as soon as possible in the project life cycle.It is always good practice to involve tester at earlier phases of product life cycle. There are variety of test activities need to be carried out before end of the coding phase.This activities should be carried out in parallel to the development activities so that testers can produce a set of test deliverable.

    The V-model illustrates that testing activities (Verification and Validation) can be integrated into each phase of the product life cycle



    As the word comes verification and validation lets talk about them

    Verification

    It is the process of evaluating work products (not the actual final product) of a development phase to determine whether they meet the specified requirements for that phase or not.And to check every phase individually is called Verification of that project

    Validation

    It is process of evaluating the software during or at the end of the development process to determine whether it satisfies specified business requirements .It majorly focused on User's Request and User's Needs

    Functional testing                     Testing Techniques

    NON-Functional testing              Defects

    Testing approach                      Test cases example