You are on page 1of 8

1) What's the difference between QA and testing?

QA stands for "Quality Assurance", deals with 'prevention' of defects in the


product being developed.It is associated with process and process improvement
activities
TESTING means "quality control". Its focus is defect detection and removal.
QUALITY CONTROL measures the quality of a product
QUALITY ASSURANCE measures the quality of processes used to create a quality
product.

2) What is black box/white box testing?


Black-box and white-box are test design methods.
Black-box test design treats the system as a "black-box"(can't see what is inside
the box), so you design test cases which pour the input at one end of the box and
expect a certain specific output from other end of the box .To run these test
cases you don't need to know how the input is transformed inside the box to output
.Black-box also called as behavioral or functional or opaque-box or gray-box or
closed-box.
White-box test design treats the system as a transparent box which allows one to
peek inside the "box", so you see how an input transforms into output.So you
design test cases to test the internal logic, paths or branches of the box. white-
box is also known as structural or glass-box or clear-box or translucent-box test
design

3) What are unit, component and integration testing?


Unit:The smallest compilable component. A unit typically is the work of one
programmer.As defined, it does not include any called sub-components or
communicating components in general.

Unit Testing: In unit testing called components (or communicating components) are
replaced with stubs, simulators, or trusted components. Calling components are
replaced with drivers or trusted super-components. The unit is tested in isolation

component: A unit is a component. The integration of one or more components is a


component.

Note: The reason for "one or more" as contrasted to "Two or more" is to allow for
components that call themselves recursively.

component testing: the same as unit testing except that all stubs and simulators
are replaced with the real thing.

Integration Testing: This test begins after two or more programs or application
components have been successfully unit tested. It is conducted by the development
team to validate the interaction or communication/flow of information between the
individual components which will be integrated.

4) What's the difference between load and stress testing ?


Stress testing is subjecting a system to an unreasonable load while denying it the
resources (e.g., RAM, disc, mips, interrupts) needed to process that load. The
idea is to stress a system to the breaking point in order to find bugs that will
make that break potentially harmful. The system is not expected to process the
overload without adequate resources, but to behave (e.g., fail) in a decent manner
(e.g., not corrupting or losing data). The load (incoming transaction stream) in
stress testing is often deliberately distorted so as to force the system into
resource depletion.

Load testing is a test whose objective is to determine the maximum sustainable


load the system can handle. Load is varied from a minimum (zero) to the maximum
level the system can sustain without running out of resources or having,
transactions suffer (application-specific) excessive delay.

5) Why does software have bugs?


miscommunication or no communication - as to specifics of what an application
should or shouldn't do (the application's requirements).

software complexity - the complexity of current software applications can be


difficult to comprehend for anyone without experience in modern-day software
development. Multi-tiered applications, client-server and distributed
applications, data communications, enormous relational databases, and sheer size
of applications have all contributed to the exponential growth in software/system
complexity.

programming errors - programmers, like anyone else, can make mistakes.

changing requirements (whether documented or undocumented) - the end-user may not


understand the effects of changes, or may understand and request them anyway -
redesign, rescheduling of engineers, effects on other projects, work already
completed that may have to be redone or thrown out, hardware requirements that may
be affected, etc. If there are many minor changes or any major changes, known and
unknown dependencies among parts of the project are likely to interact and cause
problems, and the complexity of coordinating changes may result in errors.
Enthusiasm of engineering staff may be affected. In some fast-changing business
environments, continuously modified requirements may be a fact of life. In this
case, management must understand the resulting risks, and QA and test engineers
must adapt and plan for continuous extensive testing to keep the inevitable bugs
from running out of control

Time pressures - scheduling of software projects is difficult at best, often


requiring a lot of guesswork. When deadlines loom and the crunch comes, mistakes
will be made.

poorly documented code - it's tough to maintain and modify code that is badly
written or poorly documented; the result is bugs. In many organizations management
provides no incentive for programmers to document their code or write clear,
understandable, maintainable code. In fact, it's usually the opposite: they get
points mostly for quickly turning out code, and there's job security if nobody
else can understand it ('if it was hard to write, it should be hard to read').
software development tools - visual tools, class libraries, compilers, scripting
tools, etc. often introduce their own bugs or are poorly documented, resulting in
added bugs.

6) What is difference between verification and validation?


Verification is the process of determining whether the products of a given phase
of the software development cycle fulfill the requirements established during
theprevious phase. This involves reviewing, inspecting, checking, auditing, or
otherwise establishing and documenting whether items, processes, services, or
documents conform to specified requirements.
Validation is the determination of the correctness of the final program or
software produced from a development project with respect to the user needs and
requirements.This involves actual testing of the product.

7) What are 5 common problems in the software development process?


poor requirements - if requirements are unclear, incomplete, too general, and not
testable, there will be problems.

unrealistic schedule - if too much work is crammed in too little time, problems
are inevitable.

inadequate testing - no one will know whether or not the program is any good until
the customer complains or systems crash.

featuritis - requests to pile on new features after development is underway;


extremely common.

miscommunication - if developers don't know what's needed or customer's have


erroneous expectations, problems are guaranteed.

8) what is difference between test plan and usecase?


Test plan : It contains introduction to the client company,scope,overview of the
application, test strategy,schedule, roles and responsibilities, deliverables and
milestones.

Use Case : It is nothing but user action and system response. It contains the
flows typical flow, alternate flow and exceptional flow. Apart from these it also
has a pre condition and post condition.A usecase describes how a end user uses
specific functionality in the application

9) what is difference between smoke testing and sanity testing?


The general definition (related to Hardware) of Smoke Testing is:
Smoke testing is a safe harmless procedure of blowing smoke into parts of the
sewer and drain lines to detect sources of unwanted leaks and sources of sewer
odors.

In relation to software, the definition is Smoke testing is non-exhaustive


software testing, ascertaining that the most crucial functions of a program work,
but not bothering with finer details.

Sanity testing is a brief test of major functional features of a software


application to determine if its basically operational(or Sane)

10) Differentiate between Static and Dynamic testing?


Test activities that are performed without running the software is called static
testing. Static testing includes code inspections, walkthroughs, and desk checks.
In contrast, test activities that involve running the software are called dynamic
testing.
Static: Document review, inspections, reviews
Dynamic: Build testing/testing code/testing application

11) What is the difference between Requirements & Specifications?


Requirements: means statements by the customer what the system has to achieve.
Specifications : are implementable requirements

12) What is the difference between statement coverage, path coverage and branch
coverage?
Statement coverage measures the number of lines executed.

Branch coverage measures the number of executed branches. A branch is an outcome


of a decision, so an if statement, for example, has two branches (True and False).

Path coverage usually means coverage with respect to the set of entry/exit paths

13) what is cross browser testing?


Cross browser testing - application tested with different browser for usablity
testing & compatiblity testing

14) What is difference between Waterfall model and V model?


The waterfall model is a software development model (a process for the creation of
software) in which development is seen as flowing steadily downwards (like a
waterfall) through the phases of requirements analysis, design, implementation,
testing (validation), integration, and maintenance.To follow the waterfall model,
one proceeds from one phase to the next in a purely sequential manner.The model
maintains that one should move to a phase only when its preceding phase is
completed and perfected. Phases of development in the waterfall model are thus
discrete, and there is no jumping back and forth or overlap between them.In
Waterfall Model the tester role will take place only in the testing phase

V Model or Life cycle testing involves continuous testing of the system during the
developmental process. At predetermined points, the results of the development
process are inspected to determine the correctness of the implementation. These
inspections identify defects at the earliest possible point.
when the project starts both the system development process and system test
process begins. The team that is developing the system begins the systems
development process and the team that is conducting the system test begins
planning the system test process. Both teams start at the same point using the
same information.

15) What is the difference between Alpha testing and Beta testing?
Typically, software goes through two stages of testing before it is considered
finished. The first stage, called alpha testing, is often performed only by users
within the organization developing the software. The second stage, called beta
testing , generally involves a limited number of external users.

16) What is Baseline document, Can you say any two?


A baseline document is a document which has covered all the details and went
thrugh a "walkthrough". Once a document is baselined it cannot be changed unless
there is a change request has been approved. For instance we have requirements
document baselined ,then High level design docment baselined and so on....

17) Briefly explain what is software Testing Life Cycle?


Software testing life cycle contains the following components:
1.Requirements
2.Test Plan preparation
3.Test case preparation
4. Test case execution
5.Bug Analysis
6.Bug Report
7.Bug Tracking and closure

18) What is the difference between System and End-to-End testing?


System testing - black-box type testing that is based on overall requirements
specifications; covers all combined parts of a system.

End-to-end testing - similar to system testing but involves testing of the


application in a environment that mimics real-world use, such as interacting with
a database, using network communications, or interacting with other hardware,
applications, or systems if appropriate. Even the transactions performed mimics
the end users usage of the application.

19) What is incremental integration testing?


Continuous testing of an application as new functionality is added; requires that
various aspects of an application's functionality be independent enough to work
separately before all parts of the program are completed, or that test drivers or
test stubs be developed as needed; done by programmers or by testers.

20) What is installation testing and how is it performed?


Installation testing is often the most under tested area in testing. This type of
testing is performed to ensure that all Installed features and options function
properly. It is also performed to verify that all necessary components of the
application are, indeed, installed.

Installation testing should take care of the following points: -

1. To check if while installing product checks for the dependent software /


patches say Service pack3.
2. The product should check for the version of the same product on the target
machine, say the previous version should not be over installed on the newer
version.
3. Installer should give a default installation path say �C:\programs\.�
4. Installer should allow user to install at location other then the default
installation path.
5. Check if the product can be installed �Over the Network�
6. Installation should start automatically when the CD is inserted.
7. Installer should give the remove / Repair options.
8. When uninstalling, check that all the registry keys, files, Dll, shortcuts,
active X components are removed from the system.
9. Try to install the software without administrative privileges (login as guest).
10. Try installing on different operating system.
11. Try installing on system having non-compliant configuration such as less
memory / RAM / HDD.

21) What is Compliance Testing?What is its Significance?


Performed to check whether system is developed in accordance with
standards,procedures and policies followed by the company like, completeness of
documentation etc.

22) What is bee-bugging testing and incremental testing?


Bebugging:-Test Engineer release the build with some known bugs is called
Bebugging.

Incremental Testing:-Level by level testing is called Incremental Testing.

23) what are the software models?


A software model is a process for the creation of software.The following are few
software models.
1)V-model
2)spiral model
3)waterfall model
4)prototype model

24) What is Concurrent Testing? And how will you perform it?
Multi-user testing geared towards determining the effects of accessing the same
application code, module or database records. Identifies and measures the level of
locking, deadlocking and use of single-threaded code and locking semaphores etc.

25) What is the difference between adhoc testing,monkey testing and exploratory
testing?
Adhoc testing: This Kind of testing dosen't have a any process/test case/Test
senarios defined/preplanned to do it.It involves simultaneous test design and test
execution.
Monkey testing:-monkey testing is a testing that runs with no specific test in
mind. The monkey in this case is the producer of any input data (whether that be
file data, or input device data).
Keep pressing some keys randomely and check whether the software fails or not.

Exploratory testing is simultaneous learning, test design and test execution.It is


a type of adhoc testing, but here 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.

26) What is Negative Testing?


Testing the application for fail conditions,negative testing is testing the tool
with improper inputs.for example entering the special characters for phone number

27) What is Testing Techniques?


Black Box and White Box are testing types and not testing techniques.

Testing techniques are as follows:-

The most popular Black box testing techniques are:-

Equivalence Partitioning.
Boundary Value Analysis.
Cause-Effect Graphing.
Error-Guessing.
The White-Box testing techniques are: -

Statement coverage
Decision coverage
Condition coverage
Decision-condition coverage
Multiple condition coverage
Basis Path Testing
Loop testing
Data flow testing

28) What is the difference between bug priority & bug severity?
Priority means how urgently bug is needed to fix
Severity means how badly it harms the system
Priority tells U how Important the bug is.
Severity tells U how bad the bug is.
Severity is constant....whereas priority might change according to schedule

29) What is defect density?


defect density = Total number of defects/LOC(lines of code)

Defect density = Total number of defects/Size of the project


Size of Project can be Function points, feature points,use cases, KLOC etc

30) What is the difference between testing and debugging?


Testing: Locating or Identifying Bugs

Debugging: Fixing the identified Bugs

31)What is CMM and CMMI?


CMM stands for Capability Maturity Model developed by the Software Engineering
Institute(SEI).
Before we delve into it, lets understand what is a software process.

A Software Process can be defined as set of activities, methods, practices and


transformations that people employ to develop and maintain software and the
associated products.

The underlying premise of software process management is that the quality of a


software product is largely determined by the quality of the process used to
develop and maintain it.
Continuous process improvement is based on many small, evolutionary steps.CMM
organizes these steps into 5 maturity levels.Each maturity level comprises a set
of process goals that, when satisfied , stabilize an important component of the
software process.Organizing the goals into different levels helps the organization
to prioritize their improvement actions. The five maturity levels are as follows.
1.Initial - The Software Process is characterized as adhoc and occassionally even
chaotic.Few processes are defined and success depends on individual effort and
heroics.

2.Repeatable - Basic project management processes are established to track cost,


schedule, and functionality. The necessary process discipline is in place to
repeat earlier successes on projects with similar applications.

3.Defined - The software process for both management and engineering activities is
documented, standardized, and integrated into a standard software process for the
organization. All projects use an approved, tailored version of the organization's
standard software process for developing and maintaining software.

4. Managed - Detailed measures of the software process and product quality are
collected. Both the software process and products are quantitatively understood
and controlled.

5. Optimizing - Continuous process improvement is enabled by quantitative feedback


from the process and from piloting innovative ideas and technologies.

CMMI:
In CMM(aka SW-CMM), the entire emphasis is on the software practices.But Software
is becoming such a large factor in the systems that are being built today that it
is virtually impossible to logically separate the two disciplines.SEI redirected
its effort toward the integration of system and software practices and thus born
cMMI which stands for Capability Maturity Model Integration.You can find on more
info on http://www.sei.cmu.edu/cmmi/

32) What is six sigma?


Six Sigma stands for Six Standard Deviations from mean. Initially defined as a
metric for measuring defects and improving quality, a methodology to reduce defect
levels below 3.4 Defects Per one Million Opportunities.

Six Sigma incorporates the basic principles and techniques used in Business,
Statistics, and Engineering. These three form the core elements of Six Sigma. Six
Sigma 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.

Six Sigma experts (Green Belts and Black Belts) evaluate a business process and
determine ways to improve upon the existing process.

You might also like