Saturday, 2 July 2011

When does the Testing end?

Leave a Comment
When do we stop testing?

• To be frank, testing could be never ended up, it’s a continuous process. Even after the application delivery, the testing could still continue.

• But, there are few parameters / criteria by means of which we say, we could stop testing.
·  
  •  When all the customer requirements are covered in the application and are tested and are working as well.

  • ·  When all the testing (Functional , Integration, System, Regression, UAT, Compatibility,Install/Uninstall,   Load, Performance, stress and so on) are done.
  • ·  When the QA Metrics show 100% quality of the application
  • ·  When all the test cases (Functional, Integration, System and so on) are executed.
  • ·  When Application is delivered to the end user and maintenance is done.
  • ·  When Application is bug free (Quality enough).
Read More...

When does the Testing begin?

Leave a Comment


When do we begin Testing?

• Testing begins right from the requirements analysis.

• To check:
• If the requirements are clear
• If the requirements are understandable
• If the requirements are testable
• If the requirements are transformable into software/program
Read More...

Why do we need Testing?

Leave a Comment


We need testing for so many reasons. And the most common reasons are listed below.

• To find defects.
• To ensure that application meets customer expectations / requirements.
• To reduce cost of quality by delivering defect free product on time, within the budget.
• To achieve customer satisfaction.
• To continuously improve testing process in the SDLC.
• To reduce risk of software failure.
• To determine the state of software.
• To deliver a quality and bug free application to customer.
• To retain the company name and fame.
• If there is no testing, then there is no quality products/projects/applications.

Few other reasons:

• Developer thinks in the point of code, structures, loops, statements, code integrations and so on.
• There should be someone else who could think in the point of functional behavior.
• There should be someone who could think in the view of customers / end users.
• And thus, tester comes into picture and testing is needed for sure.
Read More...

What is TESTING?

Leave a Comment

• Testing is the process of executing a program with the intention of finding “Errors”.

• Testing is the process of verifying an application to check if the application is behaving as per the “Requirements”.

• Testing is the process of executing test cases on the application to differentiate between the “Expected” and “Actual” results.

• Testing is the process of verifying customer needs with respect to the designed application.

• Testing is the process of finding errors, faults, defects, bugs, issues in the application.

• Testing is the process of requirements analysis, test cases designing, test cases executions, bug reporting, test status updates, customer interactions, application maintenance.

• Testing is the process of V & V (Verification and Validation)
Read More...

An Introduction to Testing

Leave a Comment


Let me start with W / H forms of testing

What is testing?
Why do we need testing?
When does the testing begin?
When does the testing end?
• Who are needed for testing?
• What are needed for testing?
• How do we test?

Why does Software have bugs in it?
• How can we measure the quality of the application?
• How to start and end up with testing?
• There are lots of questions with W / H forms.

Do you want answers to these questions?
Let me answer you all, one by one.
Read More...

Sunday, 15 May 2011

Testing @ IMP @ FAQs

Leave a Comment
  • What is the difference between Ad-hoc Testing, Monkey Testing and Exploratory Testing?
  • "Exploratory Testing" involves simultaneous learning, test design and test execution. It is a type of "Ad-hoc Testing", but only difference is that in this case, the tester does not have much idea about the application & he explores the system in an attempt to learn the application and simultaneously test it.
  • "Ad-hoc Testing" is performed without any planning of process and without any documentation like Test Case or Test Scenarios. It involves test design and simultaneous test execution. For Ad-hoc testing the testers possess significant understanding of the software before testing it. 
  • "Monkey Testing" is done with no specific test in mind. Here the monkey is the producer of any input data (which can be either a file data or can be an input device data). It involves pressing some keys randomly and checking whether the software fails or not. 


  • What is the difference between Verification and Validation?
  • "Verification" involves reviews and meetings to evaluate documents, plans, code, requirements, and specifications to confirm whether items, processes, services, or documents conform to specified requirements or not.
  • This can be done with the help of checklists, issues lists, walkthroughs, and inspection meetings.
  • The purpose of verification is to determine whether the products of a given phase of the software development cycle fulfill the requirements established during the previous phase or not.  
  • "Validation" is the actual testing
  • Validation is the determination of the correctness of the final program or software product produced from a development project with respect to the user needs and requirements.
  • This involves actual testing of the product and takes place after verifications are completed. 
  • "Software Verification" raises the question, "Are we building the Product Right?"; that is, does the software conform to its specification.
  • "Software Validation" raises the question, "Are we building the Right Product?"; that is, is the software doing what the user really requires.


  • What is the difference between Alpha Testing and Beta Testing?
  • Typically a software product passes through two stages of testing before it is considered to be Final.
  • The first stage is known as "Alpha Testing".
  • Alpha Testing is often performed by potential users / customers or an independent test team at the developers' site.
  • It is usually done when the development of the software product is nearing completion; minor design changes may still be made as a result of Alpha testing. 
  • The second stage coming after alpha testing is known as "Beta Testing".
  • Versions of the software, known as beta versions, are released to a limited audience outside of the programming team so that further evaluation by the users can reveal more faults or bugs in the product.
  • Sometimes, beta versions are made available to the open public to increase the feedback field to a maximum number of future users.
  • Usually it is done at customer places or customer like places (end users)

  • What is the difference between Static Testing and Dynamic Testing?
  • "Static Testing" involves testing activities performed without actually running the software.
  • It includes Document review, code inspections, walkthroughs and desk checks etc. 
  • "Dynamic Testing" is used to describe the testing of the dynamic behavior of the software code.
  • It involves actual compilation & running of the software by giving input values and checking if the output is as expected.
  • It is the validation portion of Verification and Validation.

What are Load / Performance / Stress Testing?
Load Testing: Load Testing is the process of testing the application to check if the application supports the required number of user load
Performance Testing: Performance testing is the process of testing the application to check if the application behaves well under the specified conditions (transactions, speed, process, memory, threads, hits...)
It also depends upon the number of user load on the application
Stress Testing: Stress testing is the process of testing the application to check if the application behaves well / stable / sustains even beyond the limit of the user load / transactions
It also depends upon the data base transactions / Hard ware changes

  • What is the difference between Black Box Testing & White Box Testing?
  • First of all Black-Box and White-Box both are Test Design Methods.
  • "Black-Box" test design treats the system as a "Black-Box" (Wherein the tester can't see as to what is there inside the box).
  • Hence we design the test cases in such a way that we pour the input from one end of the box and expect a certain specific output from the other end of the box.
  • To run these test cases, the tester need not know as to how the input gets transformed to output inside the box.
  • Black-Box is also known as Behavioral-Box or Functional-Box or Opaque-Box or Closed-Box.  
  • "White-Box" test design treats the system as a Transparent Box, which allows anyone to see inside the "Box".
  • In White-Box the tester is able to see the process of transformation of an "Input" into an "Output" inside the box.
  • Hence we design the test cases with a view to test the internal Logic, Paths or Branches of the box.
  • White-Box is also known as Structural-Box or Glass-Box or Clear-Box or Translucent-Box test design


  • What is Quality?
  • Quality is measurement of software
  • Quality is software that is reasonably bug-free, delivered on time and within budget, meets requirements and expectations and is maintainable.
  • However, quality is a subjective term.
  • Quality depends on who the customer is and their overall influence in the scheme of things.  
  • What is Six Sigma?
  • "Six Sigma" means Six Standard Deviations from the mean.
  • It is a methodology aimed to reduce defect levels below 3.4 Defects Per one Million Opportunities.
  • Six Sigma approach improves the process performance, decreases variation and maintains consistent quality of the process output. This leads to defect reduction and improvement in profits, product quality and customer satisfaction.



  • What is difference between CMM and CMMI?
  • "CMM" means "Capability Maturity Model" developed by the Software Engineering Institute (SEI).
  • It is a process capability maturity model, which aids in the definition and understanding of an organization's processes.
  • CMM is intended as a tool for objectively assessing the ability of government contractors' processes to perform a contracted software project.  
  • "CMMI" means "Capability Maturity Model Integration" & it has superceded CMM.
  • The old CMM has been renamed to Software Engineering CMM (SE-CMM).


  • What are Test Plan and Test Cases?
    • Test Plan is a document that describes the scope, objectives, approaches, schedules, resources, test setup, different testing types and their definitions start and exit criteria of each testing for an App, risks and assumptions.
    • Test Case is a document that describes a set of inputs, test procedures (Test conditions to be executed),  predicted expected results (Outputs) , status criteria of the each test  and actual results of the Application
  • Test case is a triplet [I, S, O] where
    • I is input data
    • S is System conditions to be executed
    • O is the expected output
  • Test suite is set of test cases that belong to a particular test category / type
  • Test cases are not randomly selected. Instead even they need to be designed



  • What is the Difference between STLC & SDLC?
  • STLC means "Software Testing Life Cycle".
  • STLC is a process that describes the  step by step implementation of testing activities
  • It starts with activities like :
  • 1) Preparation of Requirements Document
  • 2) Preparation of Test Plan
  • 3) Preparation of Test Cases
  • 4) Execution of Test Cases
  • 5) Analysis of Bugs
  • 6) Reporting of Bugs
  • 7) Tracking of Bugs till closure. 
  • 8) Application Delivery and maintenance
  • SDLC means " Software Development Life Cycle"
  • SDLC is a process that describes the different phases of implementing software (Application)
  • SDLC is a software development process, used by a systems analyst to develop an information system. It starts with activities like :
  • 1) Project Initiation
  • 2) Requirement Gathering and Documenting
  • 3) Designing
  • 4) Coding and Unit Testing
  • 5) Integration Testing
  • 6) System Testing
  • 7) Installation and Acceptance Testing
  • 8) Support or Maintenance


  • What is the Difference between Project and Product Testing?
  • If any organization is developing the application according to the client (end user > some other person) specification then it is called as project.
  •  Accordingly it’s testing is known as "Project Testing"
  • If any organization is developing the application based their requirements / specifications  and marketing to itself then it is called as product.
  • Hence its testing is known as "Product Testing"



  • What is the Difference between Retest and Regression Testing?
  • ReTesting is the process of testing application to test the same module for multiple times with multiple number od test data sets.
  • This is usually referred as Data Driven Testing.
  • This is very much applicable for large scale application having bulk sets of test data to be applied and verified on the application
  • Data Driven Testing: Testing in which the action of a test case is parameterized by
    externally defined data values, maintained as a file or spreadsheet.
  • Regression testing is the process of the testing the application to check if the existing functionality is not broken (not effected) by bug fixes or new enhancements of the application
  • Usually Regression testing is done on multiple in place of system tests
  • Regression testing is mostly preferred to automated using a tool/software to reduce the test time.
  • Tools like QuickTestPro / Jmeter / Selenium / WinRunner are aimed for such tests


  • What is the difference between an application server and a Web server?
  • Web server serves pages for viewing in a Web browser, while an application server provides methods that client applications can call.
  • Web Servers are like IIS, Apache
  • A little more precisely, we can say that, a Web server exclusively handles HTTP requests, whereas an application server serves business logic to application programs through any number of protocols.
  • An Application Server is used to run business logic or dynamically generated presentation code. It can either be .NET based or J2EE based (like Oracle9iAS, BEA WebLogic Server, IBM WebSphere, JBoss).
  • Ex: J2EE application server can run on EJBs - which are used to execute business logic.
  • Database Server is the one where the database (SQL / Oracle) sits and manages all data base records (application data / data tables / information in the form of table representations)


  • What is Database testing?
  • Database testing is the process of testing databases either independently or with integration of application
  • Database testing involves the following activities:
  • 0) Testing integration between database and app through form submissions / data flow checks and so on
  • 1) Testing of Data validity.
  • 2) Testing of Data Integrity.
  • 3) Performance testing related to the data base.
  • 4) Testing of Procedure, triggers and functions.


Read More...

Saturday, 2 July 2011

When does the Testing end?

When do we stop testing?

• To be frank, testing could be never ended up, it’s a continuous process. Even after the application delivery, the testing could still continue.

• But, there are few parameters / criteria by means of which we say, we could stop testing.
·  
  •  When all the customer requirements are covered in the application and are tested and are working as well.

  • ·  When all the testing (Functional , Integration, System, Regression, UAT, Compatibility,Install/Uninstall,   Load, Performance, stress and so on) are done.
  • ·  When the QA Metrics show 100% quality of the application
  • ·  When all the test cases (Functional, Integration, System and so on) are executed.
  • ·  When Application is delivered to the end user and maintenance is done.
  • ·  When Application is bug free (Quality enough).

When does the Testing begin?



When do we begin Testing?

• Testing begins right from the requirements analysis.

• To check:
• If the requirements are clear
• If the requirements are understandable
• If the requirements are testable
• If the requirements are transformable into software/program

Why do we need Testing?



We need testing for so many reasons. And the most common reasons are listed below.

• To find defects.
• To ensure that application meets customer expectations / requirements.
• To reduce cost of quality by delivering defect free product on time, within the budget.
• To achieve customer satisfaction.
• To continuously improve testing process in the SDLC.
• To reduce risk of software failure.
• To determine the state of software.
• To deliver a quality and bug free application to customer.
• To retain the company name and fame.
• If there is no testing, then there is no quality products/projects/applications.

Few other reasons:

• Developer thinks in the point of code, structures, loops, statements, code integrations and so on.
• There should be someone else who could think in the point of functional behavior.
• There should be someone who could think in the view of customers / end users.
• And thus, tester comes into picture and testing is needed for sure.

What is TESTING?


• Testing is the process of executing a program with the intention of finding “Errors”.

• Testing is the process of verifying an application to check if the application is behaving as per the “Requirements”.

• Testing is the process of executing test cases on the application to differentiate between the “Expected” and “Actual” results.

• Testing is the process of verifying customer needs with respect to the designed application.

• Testing is the process of finding errors, faults, defects, bugs, issues in the application.

• Testing is the process of requirements analysis, test cases designing, test cases executions, bug reporting, test status updates, customer interactions, application maintenance.

• Testing is the process of V & V (Verification and Validation)

An Introduction to Testing



Let me start with W / H forms of testing

What is testing?
Why do we need testing?
When does the testing begin?
When does the testing end?
• Who are needed for testing?
• What are needed for testing?
• How do we test?

Why does Software have bugs in it?
• How can we measure the quality of the application?
• How to start and end up with testing?
• There are lots of questions with W / H forms.

Do you want answers to these questions?
Let me answer you all, one by one.

Sunday, 15 May 2011

Testing @ IMP @ FAQs

  • What is the difference between Ad-hoc Testing, Monkey Testing and Exploratory Testing?
  • "Exploratory Testing" involves simultaneous learning, test design and test execution. It is a type of "Ad-hoc Testing", but only difference is that in this case, the tester does not have much idea about the application & he explores the system in an attempt to learn the application and simultaneously test it.
  • "Ad-hoc Testing" is performed without any planning of process and without any documentation like Test Case or Test Scenarios. It involves test design and simultaneous test execution. For Ad-hoc testing the testers possess significant understanding of the software before testing it. 
  • "Monkey Testing" is done with no specific test in mind. Here the monkey is the producer of any input data (which can be either a file data or can be an input device data). It involves pressing some keys randomly and checking whether the software fails or not. 


  • What is the difference between Verification and Validation?
  • "Verification" involves reviews and meetings to evaluate documents, plans, code, requirements, and specifications to confirm whether items, processes, services, or documents conform to specified requirements or not.
  • This can be done with the help of checklists, issues lists, walkthroughs, and inspection meetings.
  • The purpose of verification is to determine whether the products of a given phase of the software development cycle fulfill the requirements established during the previous phase or not.  
  • "Validation" is the actual testing
  • Validation is the determination of the correctness of the final program or software product produced from a development project with respect to the user needs and requirements.
  • This involves actual testing of the product and takes place after verifications are completed. 
  • "Software Verification" raises the question, "Are we building the Product Right?"; that is, does the software conform to its specification.
  • "Software Validation" raises the question, "Are we building the Right Product?"; that is, is the software doing what the user really requires.


  • What is the difference between Alpha Testing and Beta Testing?
  • Typically a software product passes through two stages of testing before it is considered to be Final.
  • The first stage is known as "Alpha Testing".
  • Alpha Testing is often performed by potential users / customers or an independent test team at the developers' site.
  • It is usually done when the development of the software product is nearing completion; minor design changes may still be made as a result of Alpha testing. 
  • The second stage coming after alpha testing is known as "Beta Testing".
  • Versions of the software, known as beta versions, are released to a limited audience outside of the programming team so that further evaluation by the users can reveal more faults or bugs in the product.
  • Sometimes, beta versions are made available to the open public to increase the feedback field to a maximum number of future users.
  • Usually it is done at customer places or customer like places (end users)

  • What is the difference between Static Testing and Dynamic Testing?
  • "Static Testing" involves testing activities performed without actually running the software.
  • It includes Document review, code inspections, walkthroughs and desk checks etc. 
  • "Dynamic Testing" is used to describe the testing of the dynamic behavior of the software code.
  • It involves actual compilation & running of the software by giving input values and checking if the output is as expected.
  • It is the validation portion of Verification and Validation.

What are Load / Performance / Stress Testing?
Load Testing: Load Testing is the process of testing the application to check if the application supports the required number of user load
Performance Testing: Performance testing is the process of testing the application to check if the application behaves well under the specified conditions (transactions, speed, process, memory, threads, hits...)
It also depends upon the number of user load on the application
Stress Testing: Stress testing is the process of testing the application to check if the application behaves well / stable / sustains even beyond the limit of the user load / transactions
It also depends upon the data base transactions / Hard ware changes

  • What is the difference between Black Box Testing & White Box Testing?
  • First of all Black-Box and White-Box both are Test Design Methods.
  • "Black-Box" test design treats the system as a "Black-Box" (Wherein the tester can't see as to what is there inside the box).
  • Hence we design the test cases in such a way that we pour the input from one end of the box and expect a certain specific output from the other end of the box.
  • To run these test cases, the tester need not know as to how the input gets transformed to output inside the box.
  • Black-Box is also known as Behavioral-Box or Functional-Box or Opaque-Box or Closed-Box.  
  • "White-Box" test design treats the system as a Transparent Box, which allows anyone to see inside the "Box".
  • In White-Box the tester is able to see the process of transformation of an "Input" into an "Output" inside the box.
  • Hence we design the test cases with a view to test the internal Logic, Paths or Branches of the box.
  • White-Box is also known as Structural-Box or Glass-Box or Clear-Box or Translucent-Box test design


  • What is Quality?
  • Quality is measurement of software
  • Quality is software that is reasonably bug-free, delivered on time and within budget, meets requirements and expectations and is maintainable.
  • However, quality is a subjective term.
  • Quality depends on who the customer is and their overall influence in the scheme of things.  
  • What is Six Sigma?
  • "Six Sigma" means Six Standard Deviations from the mean.
  • It is a methodology aimed to reduce defect levels below 3.4 Defects Per one Million Opportunities.
  • Six Sigma approach improves the process performance, decreases variation and maintains consistent quality of the process output. This leads to defect reduction and improvement in profits, product quality and customer satisfaction.



  • What is difference between CMM and CMMI?
  • "CMM" means "Capability Maturity Model" developed by the Software Engineering Institute (SEI).
  • It is a process capability maturity model, which aids in the definition and understanding of an organization's processes.
  • CMM is intended as a tool for objectively assessing the ability of government contractors' processes to perform a contracted software project.  
  • "CMMI" means "Capability Maturity Model Integration" & it has superceded CMM.
  • The old CMM has been renamed to Software Engineering CMM (SE-CMM).


  • What are Test Plan and Test Cases?
    • Test Plan is a document that describes the scope, objectives, approaches, schedules, resources, test setup, different testing types and their definitions start and exit criteria of each testing for an App, risks and assumptions.
    • Test Case is a document that describes a set of inputs, test procedures (Test conditions to be executed),  predicted expected results (Outputs) , status criteria of the each test  and actual results of the Application
  • Test case is a triplet [I, S, O] where
    • I is input data
    • S is System conditions to be executed
    • O is the expected output
  • Test suite is set of test cases that belong to a particular test category / type
  • Test cases are not randomly selected. Instead even they need to be designed



  • What is the Difference between STLC & SDLC?
  • STLC means "Software Testing Life Cycle".
  • STLC is a process that describes the  step by step implementation of testing activities
  • It starts with activities like :
  • 1) Preparation of Requirements Document
  • 2) Preparation of Test Plan
  • 3) Preparation of Test Cases
  • 4) Execution of Test Cases
  • 5) Analysis of Bugs
  • 6) Reporting of Bugs
  • 7) Tracking of Bugs till closure. 
  • 8) Application Delivery and maintenance
  • SDLC means " Software Development Life Cycle"
  • SDLC is a process that describes the different phases of implementing software (Application)
  • SDLC is a software development process, used by a systems analyst to develop an information system. It starts with activities like :
  • 1) Project Initiation
  • 2) Requirement Gathering and Documenting
  • 3) Designing
  • 4) Coding and Unit Testing
  • 5) Integration Testing
  • 6) System Testing
  • 7) Installation and Acceptance Testing
  • 8) Support or Maintenance


  • What is the Difference between Project and Product Testing?
  • If any organization is developing the application according to the client (end user > some other person) specification then it is called as project.
  •  Accordingly it’s testing is known as "Project Testing"
  • If any organization is developing the application based their requirements / specifications  and marketing to itself then it is called as product.
  • Hence its testing is known as "Product Testing"



  • What is the Difference between Retest and Regression Testing?
  • ReTesting is the process of testing application to test the same module for multiple times with multiple number od test data sets.
  • This is usually referred as Data Driven Testing.
  • This is very much applicable for large scale application having bulk sets of test data to be applied and verified on the application
  • Data Driven Testing: Testing in which the action of a test case is parameterized by
    externally defined data values, maintained as a file or spreadsheet.
  • Regression testing is the process of the testing the application to check if the existing functionality is not broken (not effected) by bug fixes or new enhancements of the application
  • Usually Regression testing is done on multiple in place of system tests
  • Regression testing is mostly preferred to automated using a tool/software to reduce the test time.
  • Tools like QuickTestPro / Jmeter / Selenium / WinRunner are aimed for such tests


  • What is the difference between an application server and a Web server?
  • Web server serves pages for viewing in a Web browser, while an application server provides methods that client applications can call.
  • Web Servers are like IIS, Apache
  • A little more precisely, we can say that, a Web server exclusively handles HTTP requests, whereas an application server serves business logic to application programs through any number of protocols.
  • An Application Server is used to run business logic or dynamically generated presentation code. It can either be .NET based or J2EE based (like Oracle9iAS, BEA WebLogic Server, IBM WebSphere, JBoss).
  • Ex: J2EE application server can run on EJBs - which are used to execute business logic.
  • Database Server is the one where the database (SQL / Oracle) sits and manages all data base records (application data / data tables / information in the form of table representations)


  • What is Database testing?
  • Database testing is the process of testing databases either independently or with integration of application
  • Database testing involves the following activities:
  • 0) Testing integration between database and app through form submissions / data flow checks and so on
  • 1) Testing of Data validity.
  • 2) Testing of Data Integrity.
  • 3) Performance testing related to the data base.
  • 4) Testing of Procedure, triggers and functions.