SDLC and Manual Testing Interview Questions Flashcards
Can you tell the difference between STLC (Software Testing Life Cycle) and SDLC (Software Development Life Cycle)?
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.
Why do Software Applications have bugs?
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.
Can you tell the Difference between Verification and Validation?
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
What is the difference between static and dynamic testing?
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.
What Is the Difference between Black Box and White Box testing?
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.
Can you tell different types of testing you are aware of?
● Unit testing ● Integration testing ● Regression testing ● Ad-Hoc ● Smoke testing ● Performance testing ● System testing ● UAT Testing
In which phase should testing begin?
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.
What is Ad-Hoc Testing? Exploratory testing? Random Testing?
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.
What is unit testing, and have you ever done unit testing?
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.
What is Integration testing?
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.
What is the difference between UAT and QA? What is Acceptance testing?
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.
What is system testing?
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.
What is Beta Testing?
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.
What is 508 Compliance testing?
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.
What is Boundary Testing?
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.
What is Negative Testing and what is Positive Testing?
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.
What is non-functional testing? Have you done any performance testing?
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.