Monday, June 30, 2014

Software Manual testing Techniques

Software Manual testing Techniques
MANUAL TESTING means testing 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

SDLC - SOFTWARE DEVELOPMENT LIFE CYCLE

  1. Requirement analysis
  2. Problem analysis
  3. Software requirements
  4. Requirements validation
  5. Design
  6. Coding
  7. Deployment
  8. Maintenance
  9. Testing

SDLC Models

There are 7 SDLC Models
  1. Built & Fix Model
  2. Waterfall Model- Most of the people were use
  3. Iterative Model
  4. Prototyping Model
  5. Spiral Model
  6. RAD Model
  7. V-Model
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- Most of the people were use
  1. Requirement
  2. Design
  3. Implementation
  4. Testing
  5. Maintenance

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 the entire project requirements are known in detail ahead of time .It is an iterative, trial and error process that takes place b/w the developers and the users

  1. Step-1 requirement gathering
  2. Step -2 Quick designs
  3. Step-3 Building prototype
  4. Step-4 Customer Evolution
  5. Step-5 Refining Prototype
  6. Step-6 Engineer product (stop work
5. Spiral Model
Risk analysis is the main feature for Spiral Model. It is also known as spiral lifecycle model
  1. Review
  2. Risk Analysis
  3. Testing
  4. Unit Test
  5. Integration test
  6. Acceptance test
  7. Validation and verification test
  8. Requirement validation
  9.  
6. RAD Model
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: 
  1. Business modeling
  2. Data modeling
  3. Process modeling
  4. Application generation
  5. Testing and turnover
  6. Flow Diagram
  7. Planning
  8. analysis
  9. Design
  10. Implementation
  11. system
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 varieties of test activities need to be carried out before end of the coding phase. This activity 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 Validation
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 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

Testing Fundamentals:

There are two type of testing fundamentals
I. 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
I.  Non Functional Testing: t basically means Testing is done on the requirement, specification and test scenarios defined by the client

now let’s talk about the different type of Functional Testing:
  1. Unit Testing
  2. Integeration testing
  3.  Approaches of integration are
    •   Top down approach
    •   Bottom up approach
    •   Bing bang approach
    •   Hyprid approach
  4. System testing
  5. Smoke testing
  6. Sanity testing
  7. adhoc testing
  8. Regression testing
  9. User acceptance testing
    • Alpha testing
    • Beta testing
  10. Localization testing
  11. Globilaztion testing
II. Non Functional Testing:
  1.  recovery testing
  2.  combatable testing
  3.  Usability Testing
  4.  Documentation Testing
  5.  Installation Testing
  6.  Operational Readiness Testing
  7.  Security Testing
  8.  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
  • 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
  1. Stress testing-To determine or validate an application's behavior when it is pushed beyond normal or peak load conditions.
2.2 spike testing- 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      

 Approaches of Testing

There are 2 types of approaches 
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
·        Black box testing
·        White box testing
·        Gray box testing

Testing Techniques

Black box testing Techniques are following

  1. Equivalence Partitioning
  2. Boundary Value Analysis
  3. Decision Tables
  4. State Transition Diagrams
White box testing 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

Defect

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 2 types 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 classifications 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"

 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 bugs 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.
 
******************************************

No comments:

Post a Comment