Wednesday, December 10, 2014

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


Software testing interview questions
Continuing the previous articles in my series I added few more great questions that relevant for the “Theoretical” side if testing.



Q1: Explain software “requirements”?
 
Answer:

Requirements are gathered from the company customer (Sometimes there are no clients that specifically demand the software, so the requirements are based on company vision (Startups are a great example...)), the requirements represent the expected and demanded needs that the client wished to get from the future software.

Q2: Explain “Endurance” testing

Answer:

Testing technique that used to determine the effect of the tested software against the host system, this type of tests are performed under a long executions and may take a while to get the expected results, examples: 

-     Memory leaks.
-     System I\o.
-     Database deadlocks.
-     CPU overloads
-     Etc.

Q3: Explain “Severity” of a bug? 

Answer

The severity of a bug, is measured based on how the defect affects the software or any other bad impact that he cause and may lead to deviation from the original requirements. Bug severity is determined by the tester that reports about the incident.

In addition, when the tester needs to determine the severity of the incident, he need to answer few basic questions:
-     How this bug will affect the testing process?
-     How this bug will affect the client?
-     What's the impact on the system?
-     How this error affects the testing timelines?
-     Does this bug block other tests?
-     Etc.

Q4: Explain “Severity” levels? 

Answer

Every company can determine their own scale for the severity levels, but based on my experience there are few mandatory levels that relevant for all: 

Severity levels: 

·    Blocker/show-stopper - the software or specific component are not suitable for use/testing (Total failure, System crushes Etc.) and there is no workaround.

Examples:
 
-     The system will crash when user presses the “Start” button.
-     The system will fail to start after a corrupted installation.
-     The system cause hardware failures that resolved a software shutdown.

·    Critical - Major functionality does not function as it should, there is a workaround that may affect the integrity of the tests.

Example:

-     The software can crash randomly, while using different functionalities.
-     The software produces inconsistent results, the basic requirements are failed to be answered.

·    Major - minor functionality is affected, there is no impact on other components, and there is a quick and valid workaround.

Example:

The user cannot use a specific functionality, but can use the same functionality by accessing it from different modules.

·    Minor - minor impact on the specific location, there is no need to create a workaround, the software integrity is not affected.

Examples:

-     Spellcheck errors
-     Resolving errors
-     Enhancements
-     Change request
-     Etc.

Q5: Explain “Priority” of a bug?

Answer

The priority of a bug is determined by how urgently this bug should be fixed, when determine this category, the owner should answer few basic questions:

-     How this bug affects the timelines?
-     How this bug affects the testing process?
-     Can the tester proceeds with is tests?
-     How this bug affects other testers?
-     What are the costs of fixing this bug?
-     Should we change the software requirements?
-     Etc.


Q6: can you start your tests without a working build?

Answer

There is only one answer, yes! Remember that there are two types of testing methodologies (Static and Dynamic), that allow the tester to start his test without a working build (Static method). 

Furthermore, you must start your test before the software is available for testing, the main reason is that bug that found by the “Static” method will be more cost effective than the bugs that found on the “Dynamic” tests.

Q7: Explain software “Build”?

Answer:

A collection of hundreds source code files, that compiled together to create an executable software. The ability to create software builds is crucial for every testing process, the first build will holds the original code and newer builds will contain the bug fixes or any other code modifications.

Q8: Explain static analysis?

Answer:

Any activity that used to analyze the tested software, but without the involvement of code execution.

Q9: Explain test Driver/Harness? 

Answer:

Any coded application/tool that has the ability to execute test cases.

Q10: Explain “Traceability” matrix?

Answer:

A basic documentation that specifies the relationships between the test requirements and the corresponding test case.

Q11: What is the MAIN difference between Quality Assurance (QA) and Quality Control (QC)? 

Answer:

There are many differences, the main one is that quality assurance (QA) is the activity to measure and improve the testing process, Quality control from the other end, is the process that used to insure the quality of the product (The actual Testing process).

No comments:

Post a Comment

My Presentations