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