SDLC and Manual Testing Interview Questions Flashcards

1
Q

Can you tell the difference between STLC (Software Testing Life Cycle) and SDLC (Software Development Life Cycle)?

A

SDLC is an acronym for Software Development Life Cycle which consists of the following phases:

● Planning Phase
● Requirements gathering/Analysis phase
● Design phase
● Coding/Development/Implementation phase
● Testing phase
● Production phase

But what exactly is SDLC?

SDLC is a process in which a software product is either created, enhanced or maintained.

What actually happens in all of these phases? Let’s analyze each phase:

● Planning Phase: Feasibility Study is performed to understand whether the Project (service or product) is in:
Adequate Demand, Marketable, ROI (Return of investment), Probability for achievement / success
● Requirements gathering/Analysis Phase: This is the phase when business stakeholders/client-side members, Project Managers, and Business Analysts meet to discuss requirements for the project. Several meetings are hosted where the client states the expectations of the project and will also discuss topics regarding who will use the software product, how users will use the product, and specific information related to the development of the software product.
● Design Phase: This is when the software product is actually designed. This includes drawing plans, drawing an architectural style, and continuously hosting meetings with the client to get approvals. This is usually done by UI Designers, Graphic Designers, or sometimes even developers.
● Coding/Development/Implementation Phase
This is when the created design is actually developed.
● Testing Phase: This is when the testing is conducted of what was developed. This is where STLC comes into play. STLC is an acronym for Software Testing Life Cycle which consists of the following phases: Requirement analysis, Test Planning, Test case Development, Setup testing environment, Test Execution, Test closure.
● Production Phase/Deployment and Maintenance: This is when the code developed has been deployed into production

SDLC vs STLC
● STLC is part of SDLC. We can say that STLC is a subset of the SDLC set.
● STLC is limited to the testing phase whereas SDLC is a complete development of a software or product.
● STLC is a very important phase of SDLC and the final product or the software cannot be released without passing through the STLC process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why do Software Applications have bugs?

A

There are various reasons why a system might have bugs, such as bad design, coding errors, miscommunication, continuous changes in requirements, rushing to meet deadlines and also the complexity of the application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Can you tell the Difference between Verification and Validation?

A

Verification is when you are analyzing requirements, design documents, test plans and test cases to ensure we cover all scenarios, and we are creating the right product and here there is no code involved. Simply reviewing documents to ensure everything is covered and NO coding is involved.

Validation is when we are executing our test cases and actually writing code to verify the system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the difference between static and dynamic testing?

A

Static Testing (Done In Verification Stage).

Static Testing is a White Box testing technique where the developers verify or test their code with the help of a checklist to find errors in it, this type of testing is done without running the developed application or program.

Code Reviews, Inspections, Walkthroughs are mostly done at this stage of testing.

Dynamic Testing (Done In Validation Stage).

Dynamic Testing is done by executing the actual application with valid inputs to check the expected output. Examples of Dynamic Testing methodologies are Integration Testing, System Testing, Regression and Acceptance Testing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What Is the Difference between Black Box and White Box testing?

A

Black box testing is a testing approach which depends completely on the product requirements and specifications, and it is usually done to check the functionality of an application. Basically, front-end testing.

White box testing is when you know the internal structure of the application meaning you know coding and can perform unit testing as well. Also known as Code Based testing or Structural testing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Can you tell different types of testing you are aware of?

A
● Unit testing
● Integration testing
● Regression testing
● Ad-Hoc
● Smoke testing
● Performance testing
● System testing
● UAT Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

In which phase should testing begin?

A

Testing should start at the requirements phase. We have to make sure requirements are correct in the first place. With the wrong requirement it is impossible to build bug free applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Ad-Hoc Testing? Exploratory testing? Random Testing?

A

All are the same thing; it is informal testing where you are testing without a test case and randomly testing a module conducting negative testing and positive testing but not in any order etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is unit testing, and have you ever done unit testing?

A

Unit testing is a part of the white box testing, and it is done by the developers before they deploy their code from the Development environment to QA environment.

Since it is performed by devs, I haven’t done unit testing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is Integration testing?

A

Once every individual component is tested, we must make sure that when we integrate these components together, they must work as expected. Example amazon.com has fresh and prime, but the entire website works together even though it has different components.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the difference between UAT and QA? What is Acceptance testing?

A

QA is one lower environment to UAT.

QA can be a separate team that does testing and after testing passes the QA environment, code is moved to UAT environment whereas Testing is conducted to make sure no bugs have been missed.

Also, UAT is mostly a business/customer side that conducts it. Acceptance testing is UAT testing another name for it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is system testing?

A

It is testing the entire system which includes but is not limited to the Front-end, Back-end, Database, Server, Hardware, and any related Software product/application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Beta Testing?

A

Beta testing is conducted to gather feedback from the real-time usage of the product.

It happens after the installation at the client-end, or another good example is in the real-world gaming industry they release a game to a certain audience before a mass release to get feedback.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is 508 Compliance testing?

A

All websites are supposed to be 508 compliant meaning disabled personnel should be able to use it. Features are specific fonts used on these types of websites, text to speech capability and magnify capability etc. Just know what it is but you don’t tell the
interviewer that you have done so.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is Boundary Testing?

A

Boundary testing is to make sure software accepts valid data inside the valid Boundary and rejects invalid data outside the valid Boundary.

A simple example would be testing the input field limitation from 0 to 100 where the lower boundary is 0 and the higher boundary is 100.

We make sure we can’t go lower than 0 and higher than 100. We only test the edges and not the middle.

Boundary value testing can be very beneficial since
errors are frequently made during programming of the different cases near the ‘edges’ of the range of values.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is Negative Testing and what is Positive Testing?

A

Negative testing is testing the application/system with a negative scenario using incorrect/invalid data and verifies if the application responds as expected.

Negative test cases are created based on the idea of testing in a destructive manner.

Positive testing is testing the application/system with correct and valid data and verifies if the application responds as expected. Also, can be called a “Happy Path” Testing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is non-functional testing? Have you done any performance testing?

A

Performance testing (Can 5000 user’s login to the application at the same time?)

Security testing.

Simply say NO you have not done so and that performance testing was conducted by a separate team.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is Functional testing?

A

Simply testing any functionality is functional testing.

Manual testers do functional testing, and they can be called a functional testing team.

As an Automation Tester, you may be required to perform manual testing based on project needs.

19
Q

What is the difference between regression testing and retesting?

A

Regression testing is performing tests to ensure that modifications to a module or system do not have a negative effect on previous functionalities.

It is performed when a new functionality is added, or bug fix occurs, and we want to make sure other parts of the application are still functioning correctly.

While retesting is performed when a defect gets fixed, and you have to retest the functionality to see if it is really fixed or not.

20
Q

What is the difference between system testing and integration testing?

A

System testing is when the entire system is checked such as hardware, software, servers, databases etc., whereas for integration testing, the integration between the individual modules is tested.

21
Q

What is a hotfix?

A

A hotfix is an emergency issue that needs to be fixed right away and does not need to go through a whole sprint cycle.

It’s an exception where it can be developed, tested and deployed in a few hours or a day since it’s an extreme priority and clients want the critical issue fixed ASAP and deployed.

22
Q

When is a test considered to be successful?

A

Tests that cover more functionalities and discover more errors in your software product are considered more successful.

The whole purpose of a testing process is to discover as many bugs as possible and as early as possible.

23
Q

If there isn’t enough time for testing, what would you do?

A

If we are short on time, I would prioritize my test cases and tackle ones that cover most functionalities, and I will also check with my team members if they can help out since I have been on agile projects we work together in such matters.

When we prioritize here is what we look for:

● Which functionality is most visible to the user?
● Which functionality has the largest safety impact?
● Which aspects of the application are most important to the customer?
● Which aspects of the application can be tested early in the development cycle?
● Which parts of the code are most complex and thus most subject to errors?
● Which parts of the application were developed in rush or panic mode?
● Which parts of the requirements and design are unclear or poorly thought out?
● What do the developers think are the highest-risk aspects of the application?
● What kinds of problems would cause the most customer service complaints?
● What kinds of tests could easily cover multiple functionalities?

24
Q

What would you do if you end up with unclear requirements or requirements are not available?

A

In this scenario, your knowledge of application plays a big role.

I would start to do some random testing to understand what is being asked and try to discover to get an idea, so I can start writing scripts.

Then I will also check out our meeting notes, emails, and discussions.

On top of that, look for wireframes which might give me an idea but overall, my common sense and experience plays a part here and also, I would think from a customer’s perspective.

Finally, if BA is available to clarify with them as well.

25
Q

When do you know if you have enough test cases for your project or a specific module?

A

If all requirements have at least one test case, then we know we have covered everything.

In this case a Requirements Traceability Matrix (RTM) is very useful since it maps out Requirements to Test Cases.

26
Q

Tell us some key challenges you face in the Testing industry?

A
● Requirements changing
● Unclear requirements
● Application not stable
● Rush testing to meet deadline
● Domain knowledge and business user perspective understanding
● Lack of Regression testing 
● Lack of resources, tools and training
27
Q

Can you do 100% manual testing and find all bugs?

A

No, it is impossible because there are a number of possibilities and scenarios.

If we cover all functionalities and test them then we can reduce the risk of bugs and have a satisfied client.

28
Q

What is a Test Plan?

A

The Test Plan document is usually prepared by the Test Lead or QA Manager and the focus of the document is to describe what to test, how to test, when to test and who will do what test.

Components of the Test Plan:

● Introduction
● Test items
● Features to be tested
● Features not to be tested
● Test techniques
● Testing tasks
● Features pass or fail criteria
● Test environment (Entry criteria, Exit criteria)
● Test deliverables
● Staff and training needs
● Responsibilities
● Schedule
29
Q

What is Test Strategy?

A
A Test Strategy document is a high-level document and normally developed by the project manager. This document defines “Software Testing Approach” to achieve testing objectives. It sets the standards for testing processes and activities.
Components of the Test Strategy:
● Scope and Objectives
● Business issues
● Roles and responsibilities
● Communication and status reporting
● Industry standards to follow
● Test automation and tools
● Testing measurements and metrics
● Risks and mitigation
● Defect reporting and tracking
30
Q

What is a test case and what does it include?

A

A test case is a document which has a set of actions that needs to be executed to verify a feature or functionality of your software application.

It includes:
● Test Scenario/Objective
● Pre-Condition
● Test Case ID
● Test Data
● Test Description
● Expected Result
● Actual Result
● Pass or Fail
● Comments
31
Q

What is Test Coverage?

A

Test coverage measures the percentage covered area to test the feature/functionality.

It determines whether our test cases are actually covering the application code and what functional area those test cases are covering.

32
Q

Who is responsible for writing test cases and test plans?

A

We testers write test cases for various scenarios, while the test lead or even QA Manager is responsible for making a test plan.

33
Q

What is the difference between Test case and Test script?

A

These terms can be used interchangeably

34
Q

What is the Requirement Traceability Matrix?

A

RTM is mapping requirements to test cases and test cases to defects.

If there is a defect found, we can trace back to tell which specific requirement failed.

RTM also tells us if we are missing test cases for any requirement. A lot of time is spent in Excel.

35
Q

What is test coverage?

A

What are we testing and how much are we testing!

Test coverage means how many test cases that we have and what functional area those test cases are covering.

Are our test cases covering the entire application or not?

36
Q

How do you define the bug life cycle?

A

Bug life cycle basically comprises numerous statuses of an error during its life cycle.

A few examples are open, fixed, retest, reopened, reject, and closed.

37
Q

How do you deal with a bug which is not consistently reproducible/intermittent?

A

The best approach is to take a screenshot of it. If you are using Snagit you can even capture video of it and note it down.

Discuss the bug with the team so everyone can keep an eye on it.

38
Q

What would you do if a developer rejects your bug and refuses to fix it?

A

Go back and retest it several times and make sure that it is a bug. Then check it against the requirements’ wireframes. If the developer still refuses to fix it, then set up a meeting between BA and developers. If in rare situations the developer still does not want to fix, then QA manager or Project manager get them involved as a last resort.

39
Q

What do you do when you find a bug?

A

First you will go back and retest it to make sure it is a bug, then you take a screenshot and create/log a bug in Jira with as many details as possible such as short description, environment found in, exact steps to reproduce, severity, priority etc. so the developer can try to recreate it.

40
Q

Bug priority vs Bug severity

A

Priority represents the importance of fixing a bug, and reflects a business decision as to how soon that bug should be fixed: all priority 1 bugs should be fixed before priority 2 bugs, etc.

Severity represents “how bad a bug is.” For example, a bug that causes the program to crash would be considered high severity, while a small spelling error might be low severity.

EXAMPLES:
● Low priority bugs are small errors that don’t stop anything or cause real trouble for any user.
● High priority bugs are problems that our customers will see, can corrupt data, or crash a system.
● High Priority & High Severity: An error which occurs on the basic functionality of the application and will not allow the user to use the system.
● High Priority & Low Severity: The spelling mistakes that happen on the cover page or heading or title of an application.
● High Severity & Low Priority: An error which occurs on the functionality of the application (for which there is no workaround) and will not allow the user to use the system but it’s on part of the application rarely used.
● Low Priority and Low Severity: Any cosmetic or spelling issues which are within a paragraph or in the report (Not on the cover page, heading, title).

41
Q

What is the difference between bug release and bug leakage?

A

Bug release is when a version of the software is released with a set of known bugs.

These bugs are usually of low severity/priority. It is done when a software company can afford the existence of a bug in the released software rather than the time/cost for fixing it in that version.

Bug leakage is something when the bug is discovered by the end users or customers and missed by the testing team to detect while testing the software.

42
Q

Let’s say you have a bug that comes in the day before the sprint is ending, do you let it go into production or move it to the next sprint?

A

If the bug is of a very low priority and severity, we will log it and fix it at a later time since it doesn’t impact the system much and release it into production, but if it’s a showstopper we will never release it into production since it can cause other issues.

You also don’t add new items to a Sprint a day before the Sprint ends.

43
Q

How many bugs do you find a day?

A

We don’t test every day since we have meetings and time must be allocated to create and automate test cases.

When we do actual testing anywhere from 2 to 3 bugs a day at the very beginning and as we continue testing the bug rate falls to 0 to 1.