This blog expressed my technology vision and based on my professional experience in the Software industry.
Contains Knowledge base, Tutorials, Code examples and Best practices of frequently Software design issues.

Pages

Friday, November 28, 2014

The ultimate series of Software testing interview questions (Part 1)

Overview

As a specialist tester, I have a lot if knowledge and
experience to share, among my activities you can find my blog, lectures, QA
courses and consulting. My activities help me to understand that some of the software
testers (Both new and experienced) are always afraid from the next job
interview.

There are many parameters and reasons that can explain this
fear, but the basic one is that the interview questions for such job can be
really challenging, when the interviewer want to examine the candidate
technical and theoretical knowledge.

To help those people who afraid from their next job
interview, I created this list of questions, that can help you to succeed in
the future interview and reduce the stress that may cause unwanted failure.

I decided to provide answers to only a few questions (you can
always contact me and I will provide the answer...), the reason is that I want
you to think about the QA field and learn (remembering my answers is not the
right way to work in this industry).

In addition, you should know that all my answers are NOT
highly details, the target here, is to provide directions and guidelines,
further research is more than suggested.

SDLC model

Q1: Explain the term
“SDLC”?

Answer:

SDLC stands for Software Development Life Cycle. SDLC is a
framework that describes the set of activities performed at every stage/phase
of a software development project.

Q2: Explain the benefits of using the SDLC
model?

Answer:

Provide a framework for the project
(methodologies, activities…).

Provide greater visibility of the
project progress.

Help the company to achieve and
effectiveness:

-Reduce the costs.

-Reduce the development/testing timelines.

-Increase the end product quality.

Reduce/remove the risks from the application
development process.

Provide a dedicated mechanism for
tracking the project progress.

Q3: what are the basic phased of the SDLC
model?

Answer:

Understand and review the
requirements.

Design (System \Software) done based
on the requirements.

Coding based on the system design
made on the second phase.

Testing (You should know what happens
next…).

Deployment on customer environment.

Maintenance (fixing the bugs that
found in customers environment).

Theoretical
QA questions

Q4: What is the purpose of “Entry” criteria?

Answer:

In its
basic, entry criteria is the set of conditions that should be approved on each
step of the SDLC model, for us the QA, the entry criteria are the basic terms
that need to be fulfilled before the QA teams can start their test.

Q5: Can you provide a few examples that explain
the “Entry” criteria?

Answer:

Few examples that relevant for this term:

All defects that relevant to the
design stage are closed and verified by engineering.

The code are verified against a
proper implementation of “Unit” testing.

The basic functionality of the
software is ready for testing.

Available documentation that defines
the requirements.

All testers are familiar with the
software architecture.

All testers are familiar with the
project targets.

The testing environment is ready to
use.

Available build that approved for
use.

Test plans/cases are approved.

Q6: What is the purpose of “Exit” criteria?

Answer:

Just like the ‘Entry’ criteria that starts the testing
process, the ‘Exit’ criteria is the one that determines that the testing phase
is done, and the application is ready for deployment (The next phase of the
SDLC model).

Remember, Exit criteria:

If approved – the product is published to the company customers.

If declined - the product cannot be published to the company customers,
the missing criteria must be approved.

Q7: Can you provide few examples that explains
the “Exit” criteria?

Answer:

Few examples that relevant for this term:

All the predefined areas that marked
as “Risk” are tested and the risk is removed.

All errors are highly documented and
know for the stockholders.

All tests with high priority are
executed and marked as “Pass”.

All requirements for the SRS
documentation are tested.

STR is sent and approved by the
project owner.

The application tested on
architectures (A/B…).

No major/critical bugs are left open.

90-95% of all tests are done.

Q8: What are the basic testing levels?

Answer:

Level 1: Unit testing

Level 2: Integration testing

Level 3: System testing

Level 4: Acceptance testing.

Level 5: Alpha/Beta testing

Q9: Explain Quality Assurance?

Answer

Quality Assurance, is a layer of the SDLC model, this layer
is executed with a set of activities that designed to prevent errors and to
insure that the software is built based on the predefined requirements and
specifications (SRS documentation). The main target of QA, is to improve both
the testing and development process.

Note!

In some cases that the interviewer will ask you about the
differences between QA/QC, the main difference is that QA improve the process
and QC is the set of activities that ensuring the product quality.

Q10: Define “Software Testing”?

Answer

Software
testing is a process designed to execute software with predefined targets to
find and remove software bugs. In addition, software testing involves two
different process called “Validation and Verification”.

Q11: what are the main targets of “Software Testing”?

Answer

The main
target for software testing:

To ensure that the software cleared of bugs (you cannot get 100
coverage, but you should do your best to achieve the best testing matrix that
ensures that obvious bugs are removed).

Insure that the software meets the original requirements and
specifications.

Provide confidence in the software (Customers, stockholders Etc.).

Q12: When should you START testing a software?

Answer

Very simple
answer… AS SOON AS YOU CAN!!!

When you start early, you can affect the software and raise your
ideas, changing the design in early stage will not cost the same as you change
it in later stages.

You can start your tests before you get the actual software, this kind
of tests called “Static” testing (See my blog article that explains this type
of tests), that have really high benefits that reduce the bugs in the Dynamic
stage of testing.

When you start early, each bug that discovered is cost less.

Early testing will provide greater knowledge for the testers (more
involvements in the requirements/specification/business case Etc.)

Early testing can raise the logical and technical problems on earlier
stages, those problems will affect the software end design and costs.

Many bugs that found during the regular testing process (Dynamic
section), could and should be reported on the Static part of testing.

Q13: When should you STOP testing a software?

Answer

Based on testing coverage.

Based on Risk analysis.Management decision.

Testing Declines.

Q14: can you provide few examples for tools
that may use to automate your tests?

Answer

In-house testing tools.

Testing anywhere.

Test Complete.

Load Runner.

Win Runner.

Selenium.

Q15: can
you explain “Bug”/Defect”/”Error” in a software?

Answer

Any problem/fault in the software that’s causing the
following behaviors:

-The software crash or display invalid notifications.

-The software provides invalid outputs.

-The software failed to perform as expected (Any
deviation from the expected results).