Wednesday, 22 January 2014

Updation to Interview Questions List :)



Now, it’s time to update interview Questions List
Interview Questions_082: What do you mean by STLC??
Interview Questions_083: What is UAT??
Interview Questions_084: What is Test strategy document??? Who prepares it??
Interview Questions_085: What is test plan document??? Who prepares it??
Interview Questions_086: Have you ever participated in the preparation of test plan document??
Interview Questions_087: Difference between test plan and test strategy documents??
Interview Questions_088: Can you explain any one of the risks during testing??
Interview Questions_089: What do you mean by Efforts Estimation??
Interview Questions_090: What do you mean by exit criteria??
Interview Questions_091: What is the minimum requirement to start the execution process??
Interview Questions_092: What is test suite??
Interview Questions_093: Basic rules to generate Test Cases??
Interview Questions_094: Explain different types of test cases??
Interview Questions_095: Difference between positive and negative test cases??
Interview Questions_096: What do you mean by Requirements Traceability Matrix??
Interview Questions_097: Explain Test Execution Flow??
Interview Questions_098: Explain different statuses using to mention in Result column of test case template??
Interview Questions_099: Give me some defect reporting tools names??
Interview Questions_100: Give me some defect tracking tools names??
Interview Questions_101: Explain defect submission process??
Interview Questions_102: Explain bug life cycle along with diagram??
Interview Questions_103: What is the difference between hold and deferred statuses??
Interview Questions_104: What is defect Age??

Bug Life Cycle




Bug Life Cycle:
After reporting the defects, the defect/bug will goes through so many statuses is known as Bug Life Cycle.
Bug Life Cycle describes various states of the defect from its identification to being closed.

Software Testing Life Cycle (STLC) is one of the phases of the SDLC.


Testing department will deals with this STLC Concept.
STLC describes the validation approach of a project /product based on client requirements and expectations.
The phases involved in STLC is

*      Test Initiation: Once the testing department receives the project, the test manager analyzes the application functionalities along with the risk factors (resources, technology, schedule and support) and efforts estimation then finally prepares the test strategy document using BRS , FRS documents.
         The test strategy document is a high level document prepared by Test manager at the initial stages of testing. The document contains testing approach, available resources in terms of tools and standards to be followed during testing.

*      Test Planning: After the preparation of test strategy document, the test lead will prepares test plan document based on the released build from development team.
          The test plan document is a dynamic document (changes according to the released build). It contains information regarding testing approach, test environment, Test engineer names and their responsibilities, risks and mitigations, entry and exit criteria, features to be tested, features not to be tested etc… in detail. The Test plan document is explained in detail later.

*      Test case Design: Once test plan document gets approval from high level team the testing team starts designing test cases with the help of internal training sessions (KT’s).
           With the help of BRS , FRS, Use case documents and test scenarios (provided by test lead) test engineer’s starts designing test cases using test case design techniques and stored in the standard test case design templates of the organization. The template is explained later in detail.

Rules of designing test cases
Ø  Should be simple, easy and understandable.
Ø  Naming convention should be followed.
Ø  Every test case should have the high possibility of identifying defects.
Ø  No duplicate/Redundant.
Ø  Test cases should be consistent.   

Types of Test Cases: Based on the purpose they designed test cases are categorized into 4.
GUI Test cases: Designed to verify the Look –n- feel of the application.
Usability Test cases: Designed to verify the user friendliness of the application to perform operations.
Validation Test cases: Designed to validate the input components. Also called as field level validation test cases
Functionality Test cases: Designed to verify the application behavior based on user operations.

Note: While validating the functionality,
If the test cases are designed to validate the positive flow of events is known as Positive test cases.
If the test cases are designed to validate the negative flow of events is known as Negative test cases.

*      Test Execution: Once done with designing, the written test cases are interchanged among them for cross checking, and then Test Lead will give permission to Test engineers for test cases execution.

Execution is performed in different levels.

Level0 (Sanity/ Smoke Test): Initially, whenever the build is deployed at test environment, Test engineers will perform sanity test to check for the build stability
If stable à moves to next level of execution
Not stable à Rejects the build and requests for the patch files, then moves to the next level of execution.
Level1 (Real/ Comprehensive Testing): In general test cases are gathered based on the application functionalities and forms Test suites. Now these test suites are executed, According to the obtained result the test engineer manages the result status with the following words
Passed: When expected result matches with the actual result.
Failed: When expected result does not matches with the actual result.
Blocked: Due to parent functionality failure not possible to execute the test suite.
Not completed: When some of the steps in test cases need to execute.
Level2 (Re-testing & Regression Testing):  If there are defects identified , those are reported to the development team, After getting the defects fixed the development team releases the modified build to the testing team. The testing team will perform re-testing and regression testing to make sure the defects is resolved and no other areas of the applications are affected due to defect fixing work.
Level3 (Final Regression Testing): This is called end-to-end testing. As a final testing, all the major functionalities are tested before release of the application.

*      Defect reporting and Defect Tracking:  During execution, if the test engineers identify any deviation then they prepare defect profile according to the organization standards and reports to the development team are known as Defect reporting.
Defect reporting can be done either manually or by automation tools.
Finally after reporting, the test engineers have to make sure those defects are resolved is known as defect tracking.

Defect reporting can be done in 2 ways.
Test engineers with below 2 yrs of experience have to send those defects to their test lead.
Test engineers with above 2 yrs of experience can directly report to the development team along with the test lead.

Defect report template is explained later in detail.

*      Test Closure: Based on the exit criteria mentioned in the test plan document, the testing team closes the testing process by wrapping all the resource files and setup environment used in testing and sending to the maintenance team.  
Every phase of STLC is very important …each phase will be explaining with real time examples tomorrow posts. 

Tuesday, 21 January 2014

Updation to Interview Questions List Upto SDLC Posts


Updation to Interview Questions List 

Interview Question_052: What is testing??
Interview Question_053: What is defect seeding??
Interview Question_054: When do you choose Regression testing??
Interview Question_055: Is there any protocol for defect reporting??
Interview Question_056: What is the use of KT sessions??
Interview Question_057: Do you think quality assurance team is needed in the organization??
Interview Question_058: At initial stages I opt for the waterfall model for developing an application. Shall I switch to another development model at the middle??
Interview Question_059: According to You which software development model is good. Explain??
Interview Question_060: You have reported particular defect to the developer but he is not accepting it as a defect. Then, what you will do??
Interview Question_061: What are the testing levels in SDLC???
Interview Question_062: Explain unit testing?
Interview Question_063: Explain bottom –up strategy of unit testing??
Interview Question_064: Explain top- down strategy of unit testing??
Interview Question_065: What is functionality testing??
Interview Question_066: What is the difference between object properties coverage and links coverage??
Interview Question_067: What is error handling coverage??
Interview Question_068: What do you mean by non- functionality testing??
Interview Question_069: Difference between stress testing and spike testing??
Interview Question_070: Difference between sanitation testing and sanity testing??
Interview Question_071: Difference between alpha test and beeta test??
Interview Question_072: Difference between sanity testing and smoke testing??
Interview Question_073: Difference between ad-hoc testing and exploratory testing??
Interview Question_074: What is mutation testing??
Interview Question_075: What is pilot testing??
Interview Question_076: Difference between L10N and I18N testing??
Interview Question_077: Suppose some new features are added to the application .So shall I choose maintenance testing instead of Regression Testing??
Interview Question_078: Give me four scenarios in which I can opt for regression testing??
Interview Question_079: How do you test the application if the requirements are not available??
Interview Question_080: Who will perform smoke testing??
Interview Question_081: What is a metric??


Note: If anyone needs clarification and answers for any one of the interview questions...contact me at gayatrisingo@gmail.com

Software Testing Life Cycle (STLC)


Software Testing Life Cycle (STLC) is one of the phases of the SDLC. 

Testing department will deals with this STLC Concept.
STLC describes the validation approach of a project /product based on client requirements and expectations.
The phases involved in STLC is

*      Test Initiation
*      Test Planning
*      Test case Design
*      Test Execution
*      Defect reporting and Defect Tracking
*      Test Closure
Every phase of STLC is very important …each phase will be explaining with real time examples tomorrow posts.
 Today is the updation upto SDLC on the interview questions. 

Monday, 20 January 2014

:) Some More Important Testing Techniques :)


Some More Important Testing Techniques:
*      Sanity Testing/Smoke Testing: It is also called as Build Verification Test (BVT)/Build Acceptance Test (BAT)/ Tester Acceptance Test (TAT).  Whenever the build is installed initially first at testing environment the tester’s checks for the stability of the build is called as sanity or smoke testing.
If suppose the build is unstable the testing team rejects the build and requests for the patch file.
*      Ad-hoc Testing: With the help of previous similar applications functionality testing , validating the application is known as ad-hoc testing.
*      Exploratory Testing: Because of the lack of domain knowledge validating the application functionalities while learning functional behavior of application is known as Exploratory testing.
*      Jump/Monkey Testing: Validating the major functionalities of the application due to the lack of time. Also called as Priority based Testing.
*      L10N Testing (Localization Testing):  Verification of the supporting local languages, currency and time.
*      I18N Testing (Internationalization Testing): Verification of the supporting international languages, currency and time.
*      Mutation Testing: To estimate the performance of unit testing team , senior developers changes the logic of the source code is known as mutation testing.
*      Pilot testing: To estimate the performance of testing team , injecting known defects (defect seeding/ Be-bugging ) into the application  source code is known as pilot testing.
*      Re-Testing: After the release of modified build, checking the application to ensure the defects are resolved or not
*      Regression Testing: After the release of modified build, checking to ensure that resolved defects have created any side effects on the existing functionalities is known as regression testing.
*      Maintenance Testing: If any new features are added based on the client request (CR) the crew opt for maintenance testing.

Continuation of Testing Levels in SDLC


Continuation of Testing Levels in SDLC
5) System Testing:
After unit testing and integration testing, the development team releases the initial build to the separate testing team.
Initially the testing team performs stability test on released build.
If the build is stable à  testing team starts testing the functionality of the application,
If the build is stable à testing team rejects the build and requests for the patch file,  
The testing team validates the whole system based on the client requirements and expectations are called System Testing.
                In system testing, the test engineer concentrates on the validation of application functionalities, performance, compatibility, user friendliness, security, Installation, etc… Based on the factor going to validate entire system testing technique is divided into 2 Categories.
They are
a.     a.  Functionality Testing/ Requirements Testing:
Validating the business transactions on application based on client requirements is called functionality testing. This functionality can be performed either manually or by automation testing.
Test engineers consider the following factors while performing functionality testing,
                                I.            Objects properties coverage:  Validates whether the application object property values are changing or not based on the operations performed.
Example: (Scenario) Verify “OK” should enabled in the window when we enter the value in the edit box related to it: It means the object property should change from disable to enable.  
                              II.            Error Handling Coverage: The test engineer checks for the meaningful error handling mechanism when the end user performs invalid operations on the system, like pop –up messages, error messages, warning messages, etc…
Example: (Scenario) suppose there is a text field which allows numerical values, but user entered alphabetical values and tried to make transaction , then system should throw error message /pop-up on the screen with correct explanation and details.
                            III.            Input-Domain Coverage: The test engineer verifies whether the system allows the data as per the client expected data or not.
Example: Edit box should allow alphanumeric characters in between 4-9 range. So engineer tests for this expected data.
                            IV.            Calculation/ Output Coverage:  Test engineer verifies the generated output based on the given input values/data.
Example:  2+3 =5 as per that condition system should generate output as 5 when we perform addition operation on 2 and 3.

                              V.            Back end/ Database Coverage: Test engineer verifies the transfer of data between front end and database storage along with database content with respect to the operations performed on applications like insert update and delete …
                            VI.            Links Coverage: Checks the specified links in the application are navigating properly to their respective pages.

b.    b.   Non-Functionality Testing: The test engineer verifies all the possible non –functionality factors like performance, compatibility, security, installation , etc… Following are the non-functionality testing techniques:
                                I.            GUI Testing: The test engineer verifies the look and feel of the application based on different factors like availability of components, alignment, spelling mistakes, font size/style, background color, controls, clarity of text and images.
                              II.            Usability Testing: The test engineer checks for the user friendliness of the application to perform operations and mostly concentrates on error handling mechanism , tab and functional key implementation , shortcut navigations, etc…
                            III.            Performance Testing: In general performance testing is conducted with performance testing tools available in the market. 
Performance testing is conducted by separate testing team and concentrates on speed, scalability and stability. But this testing is conducted using different techniques.
A.      Load/ Scalability Testing: Within the limit, engineer checks the applications allows customer expected load or not.
B.      Stress Testing:  Beyond the load limit, test engineer checks the behavior of the application.               
C.      Soak/Endurance Testing: Verifies the stable functioning of the application with respect to time.
D.      Spike Testing: Verifies the stability of the application under varying loads.
E.       Data Volume Testing: Verifies how much data transfers in a specified time in the form of kbps or records.
                            IV.            Security Testing: Verifies the privacy of the transactions in terms of authentication, access control, sessions and clearance of cookies after closing the application.
                              V.            Recovery/Reliability Testing: verifies how the system is capable to recover from abnormal state to normal state.
                            VI.            Compatibility/ Portability Testing: Verifies whether the application supports customer expected environment or not with forward versions and backward versions.
                          VII.            Configuration Testing: Verifies application supports customer expected configuration systems or not.
                        VIII.            Installation Testing: Verifies the installation process of the application as per the guidelines and instructions mentioned in the user manuals.
                            IX.            Sanitation Testing/ Garbage Testing: Verifies for the extra added features which were not mentioned in the client requirements.
                              X.            Comparative/Parallel Testing: Verifies the existing competitive products or lower versions of application in order to identify the strengths and weakness of the application.
6) User Acceptance Testing (UAT): Acceptance Testing is a level of the software testing process where a system is tested for acceptability. There are 2 types of UAT.
Alpha Test: The client participates in the testing at the developer’s site, if any defects are identified within a short period resolved and gets approval for the installation at client’s place.
Beta Test:  After installation of the application at client place the client runs the application with real time data , if any defects are identified recorded and sent to developers to fix it.