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:

  1. Understand and review the requirements.
  2. Design (System \Software) done based on the requirements.
  3. Coding based on the system design made on the second phase.
  4. Testing (You should know what happens next…).
  5. Deployment on customer environment.
  6. 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).

No comments:

Post a Comment

My Presentations