1) What is testing?
A: Testing is the process of evaluating a system or its components with the intent to find that whethe it satisfies the specified requirements o not. In order to produce quality product in the end and hence customers satisfaction.
2) What are Types of Testings?
A: 1. Regression testing : Regression testing is style of testing that focuses on retesting after changes are made.
Usually this type of testing is done in two situations.
* When ever the test engineer identifies the defects, send to development department after rectification developer will release the next build once the next build is released the test engineers will check whether the defect functionality as well as the related functionality once again.
* When ever some new features are added to the appliction, next build released to the testing department then the test engineer will check all the related features of those new features once again.
Note:
* Testing the new features for the first time is not regression testing.
* Random testing also falls under regression testing.
2. Re Testing : It is one type of testing in which one will perform testing on same functionality again and again with multiple sets of values in order to come to conclusion to that build is stable.
* Retesting starts from the first build continuous to the last build
* Regression testing starts from the second build continuous to the last build.
* During the regression testing also retesting will be conducted. Some people called it as re and regression testing.
3.Compatibility Testing : It is a type of testing in which one will install the application into multiple environments prepared with different combinations in order to conform whether the application is suitable with those environment or not.
* This type of testing is more important for products rather than projects.
Example: Skype product
Its should support multiple envionments like windows(XP,7,8),Mac,Android,.......etc.
Bowsers like (chrome,FF,Opera,IE 7,8,9,10,......etc) also come into picture when we test web applications.
4. End to End Testing : It is a type of testing in which one will perform testing all the end to end scenarios of the application. Like Give input verify the output result.
5. Adhoc Testing : It is a type of testing performed without planning and documentation. The strength of adhoc testing is that important defects can be found quickly.
6. Smoke Testing : It is used to determine whether there are serious problems with a piece of software, for example as a build verification system.
7. Sanity Testing :
Verifying important functionality of the software on new build to decide whether to carry further testing or not.
3) What are Testing Levels?
A: The below are levels of testing:-
This testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds.
Top-Down integration
This testing, the highest-level modules are tested first and progressively lower-level modules are tested after that.
4) What is STLC Testing? Write Testing process?
A: Step 1: Pre-study phase
In this we have to check all the above documents. It may take 10-20 days.
Step 2 : Preperation of test study report(TSR)
Hardware requirement.
Software requirement.
Test bed.
HR(Human resource).
Training requirement.
Recruitment.
Step 3 : Planning & Administration
How many hours.
Execution per day.
Delivery Weak.
Diagrams:
Scaling diagram, PDM. Burndown charts.
Step 4 : Preparation of Test Plan and Test cases :
A test plan documents the strategy that will be used to verify and ensure that a product or system meets its design specifications and other requirements. Depending on the product and the responsibility of the organization to which the test plan applies, a test plan may include one or more of the following:
Design Verification or Compliance test - to be performed during the development or approval stages of the product, typically on a small sample of units.
Manufacturing or production test - to be performed during preparation or assembly of the product in an on going manner for purposes of performance verification and quality control.
Acceptance or Commissioning test - to be performed at the time of delivery or installation of the product.
Service and Repair test - to be performed on an existing operational product, to verify that existing functionality didn't get broken when other aspects of the environment are changed
Step 5 : Execution of Test Cases :
A test case in software engineering is a set of conditions or variables under which a tester will determine whether an application or software system is working correctly or not. It may take many test cases to determine that a software program or system is considered sufficiently scrutinized to be released.
Tool : Quality Center
Step 6 : Bug Report
Bug : " A computer bug is an error, failure, or fault in a product or computer program that prevents it from working correctly or produces an incorrect result. Bugs arise from mistakes and errors, made by people, in either a program's source code or its design."
Life cycle of Bug :
Log new defect
When tester logs any new bug the mandatory fields
Bug status description :
These are various stages of bug life cycle. The status caption may vary depending on the bug tracking system you are using.
1. New : When QA files new bug.
2. Deferred : If the bug is not related to current build or can not be fixed in this release or bug is not important to fix immediately then the project manager can set the bug status as deferred.
3. Assigned : ' Assigned to' field is set by project lead or manager and assigns bug to developer.
4. Resolved/Fixed : When developer makes necessary code changes and verifies the changes then he/she can make bug status as' Fixed 'and the bug is passed to testing team.
5. Could not reproduce : If developer is not able to reproduce the bug by the steps given in bug report by QA then developer can mark the bug as 'CNR'. QA needs action to check if bug is reproduced and can assign to developer with detailed reproducing steps.
6. Need more information : If developer is not clear about the bug reproduce steps provided by QA to reproduce the bug, the he/she can mark it as " Need more information". In this case QA needs to add detailed reproducing steps and assign bug back to dev for fix.
7. Reopen : If QA is not satisfy with the fix and if bug is still reproducible even after fix then QA can mark it as ' Reopen ' so that developer can take appropriate action.
8. Closed : If bug is verified by the QA team and if the fix is ok and problem is solved then QA can mark bug as ' Closed '.
9. Rejected/ Invalid : Some times developer or team lead can mark the bug as Rejected or invalid if the system is working according to specifications and bug is just due to some misinterpretation.
Bug reporting Tools : JIRA, BUGZILLA
Step 7: Test Report
Once Testing is completed ,final report should be generated which should comprise of the following:-
Introduction: about the application.
Objectives: set/specified in the test plan.
Approach: summary of the steps followed in conducting the test.
Analysis and Results: is a brief explanation about the results and the analysis of the report.
Conclusion: the repot should be concluded by telling whether the objectives set before the test is met or not.
SOFTWARE DEVELOPMENT LIFE CYCLE [SDLC] :
***********************************<><><><><>**********************************
A: Testing is the process of evaluating a system or its components with the intent to find that whethe it satisfies the specified requirements o not. In order to produce quality product in the end and hence customers satisfaction.
2) What are Types of Testings?
A: 1. Regression testing : Regression testing is style of testing that focuses on retesting after changes are made.
Usually this type of testing is done in two situations.
* When ever the test engineer identifies the defects, send to development department after rectification developer will release the next build once the next build is released the test engineers will check whether the defect functionality as well as the related functionality once again.
* When ever some new features are added to the appliction, next build released to the testing department then the test engineer will check all the related features of those new features once again.
Note:
* Testing the new features for the first time is not regression testing.
* Random testing also falls under regression testing.
2. Re Testing : It is one type of testing in which one will perform testing on same functionality again and again with multiple sets of values in order to come to conclusion to that build is stable.
* Retesting starts from the first build continuous to the last build
* Regression testing starts from the second build continuous to the last build.
* During the regression testing also retesting will be conducted. Some people called it as re and regression testing.
3.Compatibility Testing : It is a type of testing in which one will install the application into multiple environments prepared with different combinations in order to conform whether the application is suitable with those environment or not.
* This type of testing is more important for products rather than projects.
Example: Skype product
Its should support multiple envionments like windows(XP,7,8),Mac,Android,.......etc.
Bowsers like (chrome,FF,Opera,IE 7,8,9,10,......etc) also come into picture when we test web applications.
4. End to End Testing : It is a type of testing in which one will perform testing all the end to end scenarios of the application. Like Give input verify the output result.
5. Adhoc Testing : It is a type of testing performed without planning and documentation. The strength of adhoc testing is that important defects can be found quickly.
6. Smoke Testing : It is used to determine whether there are serious problems with a piece of software, for example as a build verification system.
7. Sanity Testing :
Verifying important functionality of the software on new build to decide whether to carry further testing or not.
3) How many types of Testing techniques & Testing Methods?
A: Black Box Testing : It is a method of testing in which one will perform testing only on the functional part of an application with out having knowledge on structural part. This black box test engineers will perform. It is a Type of Functional Testing.
White Box Testing : It is a method of testing in which one performs testing on the structural part of an application.
Gray Box Testing : It is a method of testing in which one will perform testing on both the functional and structural part of an application.
Static Vs Dynamic Testing : It is method of testing in which Reviews, walkthroughs, or inspections are referred to as Static testing, where as actually executhin programmed code with a given set ot test cases is referred to as dynamic testing. Static testing can be omitted, and unfortunately in practice often is . Dynamic testing takes place when the program itself is used. Dynamic testing may begin before the program is 100% complete in order to test particular sections of code and are applied to discrete functions or modules. Typical techniques for this are either using stubs/drives or execution from a debugger environment.
3) What are Testing Levels?
A: The below are levels of testing:-
Unit Testing:
This type of testing is performed by the developers before the setup is handed over to the testing team to formally execute the test cases.The goal of unit testing is to isolate each part of the program and show that individual parts are correct in terms of requirements and functionality.
Integration Testing:
The testing of combined parts of an application to determine if they function correctly together is Integration testing. There are two methods of doing Integration Testing Bottom-up Integration testing and Top Down Integration testing.
Bottom-up integrationThis testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds.
Top-Down integration
This testing, the highest-level modules are tested first and progressively lower-level modules are tested after that.
System Testing:
This is the next level in the testing and tests the system as a whole. Once all the components are integrated, the application as a whole is tested rigorously to see that it meets Quality Standards. This type of testing is performed by a specialized testing team.
- The application is tested in an environment which is very close to the production environment where the application will be deployed.
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.
A: Step 1: Pre-study phase
In this we have to check all the above documents. It may take 10-20 days.
Step 2 : Preperation of test study report(TSR)
Hardware requirement.
Software requirement.
Test bed.
HR(Human resource).
Training requirement.
Recruitment.
Step 3 : Planning & Administration
How many hours.
Execution per day.
Delivery Weak.
Diagrams:
Scaling diagram, PDM. Burndown charts.
Step 4 : Preparation of Test Plan and Test cases :
A test plan documents the strategy that will be used to verify and ensure that a product or system meets its design specifications and other requirements. Depending on the product and the responsibility of the organization to which the test plan applies, a test plan may include one or more of the following:
Design Verification or Compliance test - to be performed during the development or approval stages of the product, typically on a small sample of units.
Manufacturing or production test - to be performed during preparation or assembly of the product in an on going manner for purposes of performance verification and quality control.
Acceptance or Commissioning test - to be performed at the time of delivery or installation of the product.
Service and Repair test - to be performed on an existing operational product, to verify that existing functionality didn't get broken when other aspects of the environment are changed
Step 5 : Execution of Test Cases :
A test case in software engineering is a set of conditions or variables under which a tester will determine whether an application or software system is working correctly or not. It may take many test cases to determine that a software program or system is considered sufficiently scrutinized to be released.
Tool : Quality Center
Step 6 : Bug Report
Bug : " A computer bug is an error, failure, or fault in a product or computer program that prevents it from working correctly or produces an incorrect result. Bugs arise from mistakes and errors, made by people, in either a program's source code or its design."
Life cycle of Bug :
Log new defect
When tester logs any new bug the mandatory fields
Bug status description :
These are various stages of bug life cycle. The status caption may vary depending on the bug tracking system you are using.
1. New : When QA files new bug.
2. Deferred : If the bug is not related to current build or can not be fixed in this release or bug is not important to fix immediately then the project manager can set the bug status as deferred.
3. Assigned : ' Assigned to' field is set by project lead or manager and assigns bug to developer.
4. Resolved/Fixed : When developer makes necessary code changes and verifies the changes then he/she can make bug status as' Fixed 'and the bug is passed to testing team.
5. Could not reproduce : If developer is not able to reproduce the bug by the steps given in bug report by QA then developer can mark the bug as 'CNR'. QA needs action to check if bug is reproduced and can assign to developer with detailed reproducing steps.
6. Need more information : If developer is not clear about the bug reproduce steps provided by QA to reproduce the bug, the he/she can mark it as " Need more information". In this case QA needs to add detailed reproducing steps and assign bug back to dev for fix.
7. Reopen : If QA is not satisfy with the fix and if bug is still reproducible even after fix then QA can mark it as ' Reopen ' so that developer can take appropriate action.
8. Closed : If bug is verified by the QA team and if the fix is ok and problem is solved then QA can mark bug as ' Closed '.
9. Rejected/ Invalid : Some times developer or team lead can mark the bug as Rejected or invalid if the system is working according to specifications and bug is just due to some misinterpretation.
Bug reporting Tools : JIRA, BUGZILLA
Step 7: Test Report
Once Testing is completed ,final report should be generated which should comprise of the following:-
Introduction: about the application.
Objectives: set/specified in the test plan.
Approach: summary of the steps followed in conducting the test.
Analysis and Results: is a brief explanation about the results and the analysis of the report.
Conclusion: the repot should be concluded by telling whether the objectives set before the test is met or not.
SOFTWARE DEVELOPMENT LIFE CYCLE [SDLC] :
- Waterfall model.
- Spiral model.
- Iterative and incremental development .
- Agile development .
- Project Planning
- Requirements Development
- Estimation
- Scheduling
- Design
- Coding
- Test Build/Deployment
- Unit Testing
- Integration Testing
- User Documentation
- System Testing
- Acceptance Testing
- Production Build/Deployment
- Release
- Maintenance
- Project Planning
- Prepare
- Review
- Rework
- Baseline
- Revise [if necessary] >> Review >> Rework >> Baseline
- Requirements Development[Business Requirements and Software/Product Requirements]
- Develop
- Review
- Rework
- Baseline
- Revise [if necessary] >> Review >> Rework >> Baseline
- Estimation[Size / Effort / Cost]
- <same as the activities/tasks mentioned for Project Planning>
- Scheduling
- <same as the activities/tasks mentioned for Project Planning>
- Designing[ High Level Design and Detail Design]
- <same as the activities/tasks mentioned for Requirements Development>
- Coding
- Code
- Review
- Rework
- Commit
- Recode [if necessary] >> Review >> Rework >> Commit
- Test Builds Preparation/Deployment
- Build/Deployment Plan
- Prepare
- Review
- Rework
- Baseline
- Revise [if necessary] >> Review >> Rework >> Baseline
- Build/Deploy
- Build/Deployment Plan
- Unit Testing
- Test Plan
- Prepare
- Review
- Rework
- Baseline
- Revise [if necessary] >> Review >> Rework >> Baseline
- Test Cases/Scripts
- Prepare
- Review
- Rework
- Baseline
- Execute
- Revise [if necessary] >> Review >> Rework >> Baseline >> Execute
- Test Plan
- Integration Testing
- <same as the activities/tasks mentioned for unit testing>
- User Documentation
- Prepare
- Review
- Rework
- Baseline
- Revise [if necessary] >> Review >> Rework >> Baseline
- System Testing
- <same as the activities/tasks mentioned for Unit Testing>
- Acceptance Testing[ Internal Acceptance Test and External Acceptance Test]
- <same as the activities/tasks mentioned for Unit Testing>
- Production Build/Deployment
- <same as the activities/tasks mentioned for Test Build/Deployment>
- Release
- Prepare
- Review
- Rework
- Release
- Maintenance
- Recode [Enhance software / Fix bugs]
- Retest
- Redeploy
- Rerelease
- The life cycle mentioned here is NOT set in stone and each phase does not necessarily have to be implemented in the order mentioned.
- Though SDLC uses the term ‘Development’, it does not focus just on the coding tasks done by developers but incorporates the tasks of all stakeholders, including testers.
***********************************<><><><><>**********************************