Tuesday, 5 January 2016

Interview Questions for QA Testing - part 3

What are the dimensions of the Risks?

The dimensions of the risk are described below:

Schedule: Unrealistic schedules. to develop a huge software in a single day..

Client: Ambiguous requirements definition, requirement and not clear, changes in the requirement etc.

Human Resources: Non-availability of sufficient resources with the skill level expected in the project.

System Resources: Non-availability of procuring all critical computer resources either hardware and software tools or licenses for software will have an adverse impact.

Quality: Compound factors like lack of resources along with a tight delivery schedule and frequent changes to requirements will have an impact on the quality of the product tested.

 

How to Estimate Testing effort ?

Time Estimation method for Testing Process:

Step 1 : count number of use cases (NUC) of system

Step 2 : Set Avg. Time Test Cases(ATTC) as per test plan

Step 3 : Estimate total number of test cases (NTC)
Total number of test cases = Number of Use Cases X Avg. Test Cases per a use case

Step 4 : Set Avg. Execution Time (AET) per a test case

Step 5 : Calculate Total Execution Time (TET)
TET = Total number of test cases * AET

Step 6 : Calculate Test Case Creation Time (TCCT)
Usually we will take 1.5 times of TET as TCCT
TCCT = 1.5 * TET

Step 7 : Time for Re-Test Case Execution (RTCE) this is for retesting
Usually we take 0.5 times of TET
RTCE = 0.5 * TET

Step 8 : Set Report generation Time (RGT
Usually we take 0.2 times of TET
RGT = 0.2 * TET

Step 9 : Set Test Environment Setup Time (TEST)
It also depends on test plan

Step 10 : Total Estimation time = TET + TCCT+ RTCE + RGT + TEST + some buffer.

How to create requirements test matrix template?

For a requirements test matrix template we perform following step:

Step 1: Find out number of requirements.

Step 2: Find out number of test cases.

Step 3: Create a table based on these. Let we have 10 requirements and 40 test cases, then we create a table of 11 rows and 41 columns.

Step 4: On the first column of table copy all your 10 requirement numbers, and paste them into rows 2 through 11 of the table.

Step 5: Now copy all 40 test case numbers, and paste them into columns 2 through 41 of the table.

Step 6: Examine each of your 40 test cases, determine which of the 10 requirements they satisfy.

Can you perform regression testing performed manually?

Yes, we can perform regression testing manually, but it requires lots of effort. To choose the way of doing the regression testing is totally depends on the initial testing approach. If the initial testing approach was manual testing, then the regression testing is usually performed manually. In case, if the initial testing approach was automated testing, then the regression testing is usually performed by automated testing. Automated regression testing is very easy task.

You are a tester. Now How will you choose which defect to remove in 1000000 defects?

First thing testers are not responsible for fixing the bug they are only responsible for debugging the bug and prioritizing those bugs. These bugs are now reported in bug report template with the severity and priority of the bug. Tester assigns severity level to the defects depending upon their impact on other parts of application. Every bug has its severity and priority values assign by tester. If a defect does not allow you to go ahead and test the product, it is critical one so it has to be fixed as soon as possible. We have 5 levels as:

- Critical
- High
- Medium
- Low
- Cosmetic

How do you perform integration testing?

Integration testing is black box testing. Integration testing focuses on the interfaces between units, to make sure the units work together. For integration testing we ensure that all units testing of the each component is performed earlier. Integration testing begins only after the unit testing. The purpose of integration testing is to ensure different components of the application interact with each other. So that, components work as per the customer requirements. Test cases are developed with the purpose of exercising the interfaces between the components. Integration testing is considered complete, when actual results and expected results are same.

What is the testing lifecycle?

There is no standard testing life cycle, but it is consist of following phases:

- Test Planning (Test Strategy, Test Plan, Test Bed Creation)
- Test Development (Test Procedures, Test Scenarios, Test Cases)
- Test Execution
- Result Analysis (compare Expected to Actual results)
- Defect Tracking
- Reporting 

What is good code?

A good code is code that works. The good code must not contain the defect or bug and is readable by other developers and easily maintainable. Organizations have coding standards all developers should follow, and also every programmer and software engineer has different ideas about what is best and what are too many or too few rules. We need to keep in mind that excessive use of rules can decrease both productivity and creativity. Peer reviews and code analysis tools can be used to check for problems and enforce standards.

What are the main attributes of test automation?

The main attributes are discussed below:

- Maintainability: For each new release need to update the test automation suites.
- Reliability: Accuracy and repeatability of the test automation.
- Flexibility: Ease of working with all the different kinds of automation test ware.
- Efficiency: Total cost related to the effort needed for the automation.
- Portability: Ability of the automated test to run on different environments.
- Robustness: Effectiveness of automation on an unstable or rapidly changing system.
- Usability: Extent to which automation can be used by different types of user.

What could go wrong with test automation?

Followings things may be go wrong in test automation:

- Ignoring automation, while planning the development phases.
- In design Phase not choosing the right technology.
- In coding Phase not automating the right test cases.
- Tool selection might go wrong.
- Test script not be updated when application is continuously changing.
- Test data should be unique, if the same data is available on the application then the application will not accept the data that we are going to add via automation.

What tools are available to support testing during development of application?

Following tools can be used to support testing during development of application:

- Test management tools example: Quality Center, JIRA.
- Defect management tool example: Bugzilla, Test Director.
- Project management: Sharepoint.
- Automation tools: QTP, RFT, WinRunner.

What are the tests activities that you want to automate in a project?

The following testing activities can be automated:

- Functional tests: Identify some P1 and P2 cases which are most critical for project success and operations and automate them. After every new build, these scripts will assure the fixes does not broke any of the critical functionality.

- Regression test suites: Test the need to be run after each build.

- Performance tests: Identical test the need to be run on different browser.

- Stress tests

- Load tests

What is the difference in responsibilities of Programmers and QA analyst?

The differences in responsibilities are listed below:

- QA is concern for Process Quality and Programmers are concern for Product Quality.

- QA ensure that the processes used for developing the product of high quality where as programmers used these processes so that end product is of good quality.

- Processes are decided by QA. Programmers are supposed to follow the processes so that they can produce a good quality product.

- Any issue found during execution of process by the programmers is communicated to the QA so that they can improve the process.

What is the role of Bug Tracking System?

The Bug Tracking System role is discussed below:

- Testers and developers can know the status of the bug at every stage.
- Changes to the Status will be available to all team members.
- Developers and Testers can easily interact with bugs.
- Repetition of bugs will be avoided.
- Easy to distribute the bug among the developer.
- It will act as a centralized one for defects.

How do you prioritize testing tasks within a project?

Test Process are execute in step by step. We cannot skip any of the process defined. Following is the Test Process which are in terms of their priority:

1. Preparation of Test Plan.
2. Preparation of Test Cases.
3. Execution of the Test Cases.
4. Defect report and tracking.
5. Test Report Summary.

Describe Bottom-Up and Top-Down approach in Testing.

Bottom Up Approach:

- The bottom up approach testing approach is carried out with the help of the test driver. The test driver calls a component to be tested.

- The modules in the lower level of call hierarchy are tested independently. Then the next level modules are tested that call previously tested modules. This is done repeatedly until all the modules are included in the testing.

- Bottom up testing stops when the top module in the call hierarchy is tested with all lower call hierarchy modules.

Top Down Approach:

- The top down approach is carried out with the help of the test stub. Test stub are the dummy programs. The Stub is called from the software component to be tested.

- Tests top layer of controlling subsystem first. Then combine modules that are called by the tested modules and test resulted collection of modules.

- Do this until all the modules are combined and tested.

What methodologies do you used to develop test cases?

For developing the test cases we use following strategies:

- Error Guessing: The tester has to guess what fault might occur and to design the tests to represent them.

- Equivalence Class Partitioning: The input domain data is divided into different equivalence data classes; take few valid values with 2 invalid values. This is used to reduce the total number of test cases to a finite set of testable test cases.

- Boundary value analysis: Boundary value analysis testing technique is used to identify errors at boundaries rather than finding those exist in center of input domain. Boundary value analysis is a next part of Equivalence.

What are the differences between test strategy and test plan?

The differences between these two are described below:

- Test plan is dynamic where as test strategy is static.

- Test plan is prepared by the Test Lead where as Test Strategy is prepared by the company management.

- Test strategy defines: methods and coverage criteria to be covered test completion criteria, prioritization of the test where as Test plan is a document describing the scope, approach, resources and schedule of intended test activities.

- Test Strategy is a high level description of the test levels to be performed where as Test plan is written record of the test strategy and resource planning.

What is the need of Test Plan document?

Test Plan tells the tester that what needs to be tested and how testing is going to be performed. Test plan also tells that what resources are needed for the execution of the test cases, timelines and risk associated with the test plan. We can also perform the testing without test plan document, but first we have to select test Approach for the testing and go with testing. Many test plans are being created just for the sake of processes. Many tester use test plan documents when test plan document contains the some useful information.

Why we do load and performance testing?

Load Testing: The reason to perform the load testing is to determine response times of application processes and transactions to establish whether they are within acceptable time limit or not, as per user requirement. It also measures the capability of an application to function correctly under load by measuring the systems key performance indicators.

Performance Testing: Performance Testing is performed to determine response time of the some components of the system perform under a particular workload. It is generally measured in terms of response time for the user activity. It is designed to test the overall performance of the system at high load and stress condition

What is difference between test effectiveness and test efficiency?

- Test Efficiency is the ratio of number of test cases executed by unit of time (generally per hour).

- It is the amount of code and testing resources required by a program to perform a particular function. Test Effectiveness evaluates the effect of the test environment on the application.

- Test Effectiveness is a measure by the customer response on meeting product requirements where as Test Efficiency is a measure of optimum utilization of resources to create the Software product.

What is data driven testing?

Data Driven is an automation testing part in which test input or output values, these values are read from data files. It is performed when the values are changing by the time. The different data files may include data pools, csv files, Excel files. The data is then loaded into variables in recorded or manually coded scripts. For data driven testing we use Parameterzing and Regular expression Technique.

Ex. Let's say, we want to sign up to create an account in Gmail for 100 users. For this we pet all the user detail in a single excel sheet or use a single script.

Can Manual Testing be completely replaced by Automation Testing?

Automated testing cannot replace manual testing because of following reason:

- Automated testing cannot replace the analytical skills required to conduct testing. It can only enhance or supplement manual testing,

- Through manual testing, information can be gathered about the application, and real-time decisions can be made about how to enhance a test that would be too difficult to program into an automated script.

- We need a manual tester to analyze and maintain the automated scripts after they can run.

Why regression testing is important?

Regression Testing: When changes in the code of the software are made to fix the previous bug. Then testing needs to be perform to ensure that it will not generate a new bug in the application and it works as specified and that it has not negatively impacted any functionality that it offered previously.

Regression Testing is important because of following reason:

- That the application works even after the alteration in the code were made.
- The original functionality continues to work as specified even after doing changes in the software application.
- The alteration to the software application has not introduced any new bugs.

What is Exploratory Testing and Specification-Driven testing?

Exploratory testing: means testing an application without a test plan and test script. In exploring testing test explore the application on the basis on his knowledge. The tester has no knowledge about the application previously. He explores the application like an end user and try to use it. While using the application his main motive is to find the bugs which are in the application.

Specification-driven testing: means to test the functionality of software according to the user requirements. In this, tester inputs multiple data and monitors the outputs from, the test object. In this testing tester evaluate the showstopper bugs which break the major functionality of the application. This type of testing requires test plan and test.

Explain CMM.

Capability Maturity Model (CMM) is divided in five levels:

1. Initial: The organization is characterized by an adhoc set of activities. The processes aren't defined and success depends on individual effort and heroics.

2. Repeatable: In this level some processes are repeatable, possibly with consistent results.

3. Defined: In this level, we define all processes are documented for both management and engineering activities, and standards.

4. Managed: Detailed measures of each process are defined and product quality data is routinely collected. Both process and products are quantitatively understood and controlled.

5. Optimizing: In this we optimize the application by following improvement process.

How do you decide you have tested enough?

The principle of testing says that exhaustive testing is impossible. i.e. testing everything is not feasible. We cannot test till all the defects are debugged and removed, it is simply impossible. We have to stop testing and ship the software. We can decide when to stop is testing based on following points:

- When there is no time and budget.
- When maximum number of test cases are executed.
- All the Requirements are mapped that is RTM is filled completely.
- When Test coverage is more than 80%.
- When bug rate falls below certain level.

What the purpose of testing?

Software Testing: is the process of assuring that product which is developed by the manufactured by developer is meeting the user requirement. The motive to perform testing is to find the bugs and make sure that they get fixed. The purposes of testing are following:

- Quality assurance, Verification and Validation,
- To find the bugs before the product is released to customer.
- To improve the quality of the product
- The Purpose of Testing is to evaluate that the product is according to requirements

No comments:

Post a Comment