SDLC & Agile Methodology Flashcards
What is your Responsibility as an SDET?
- Turn manually executed test scenarios into automatically executed test scenarios via Automation Tools.
- Design and develop test plans that verify user stories and system requirements.
- Detect Defects in the application and document them.
- Involving yourself in the following test types:
Functional Testing, Regression Testing, Smoke Testing
Agile Experience in your most recent project?
- Our sprint is 2 weeks and we have release every 3 sprints as a release cycle. We have 11 people in my team. 5 developers , 3 testers, also 1 SM, 1 BA and 1 PO.
- We start a sprint with Sprint Planning Meeting and we learn the part of the application which we are going to develop. We groom the planned user stories created by the PO.
- After sprint starts, we do Daily Standup Meeting everyday morning and we discuss what did we do yesterday, what will we do today and is there any blocker. It’s a daily team sync up to keep us on the same page.
- End of the sprint, we do Sprint Demo/Review Meeting . It is just to show customer what we build throughout the sprint. PO provides feedback. As an SDET in my team, I have presented the features developed by the team. Client or stakeholders or business people can ask questions about the features developed.
- After Sprint Demo, we do Sprint Retrospective Meeting. In Sprint Retro, we talk we should start doing, stop doing and continue doing. We go over them and make sure that we don’t make the same mistakes again.
- This sums up what happens in a typical sprint.
STLC vs SDLC
- STLC is part of SDLC. It can be said that STLC is a subset of the SDLC set.
SDLC covers the entire software development process, including planning, analysis, design, coding, testing, deployment, and maintenance. STLC is a part of SDLC and focuses specifically on testing. STLC includes activities like test planning, test case development, test execution, defect tracking, and closure.
SDLC (Software DEVELOPMENT Life Cycle):
*1. Requirement gathering and analysis;
*2. Design;
*3. Coding;
*4. Testing;
*5. Deployment;
*6. Maintenance.
STLC (Software TESTING Life Cycle):
*1. Requirement / Design Analysis;
*2. Test Planning: Plan, Estimate, Scheduling;
*3. Test Case Development (Designing): Test Cases, Test Scripts, Test Data, Requirements Traceability Matrix;
*4. Test Environment Setup;
*5. Test Execution: Test Results, Defect Report;
*6. Test Closure Activity (Reporting): Test Result (Final), Test Metrics, Test Closure Report.
WHERE are your Requirement Documents?
- Requirements convey the expectation of users for the software or product. In other words, all the expected functionalities out of the application are documented in terms of “Requirements”.
- Currently in my project my requirements are documented as Acceptance Criteria for each User Story.
- User Stories are created by the PO.
- Acceptance Criteria are created by the Business Analyst.
- All Acceptance Criteria will be documented in Confluence.
Where is the Requirements coming from?
PO provide requirements for the application by Talking to the:
* End-users that will be using this application the most.
* Partners/Sponsors.
* Domain Experts – coders and developers that have already build this application similar before or someone that is an expert the type of product being built.
* Industry Analysts and Information about competitors.
Is the Requirement is GOOD or BAD?
** Requirement must be…
SMART: Specific, Measurable, Attainable, Realistic, Testable.
or INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable.
** Example:
Given I am an Authorized User with valid username and password. I am logging by entering my username and password on the login page. Then I should be logged into the application in 2 seconds or less and I should be able to login Measurable User should able to login very fast (in 2 second after clicking login button).
What is AGILE?
- Agile is flexible methodology used for Software Development.
- You can change requirements and modify requirements anytime.
- It is dynamic, we are consistently gathering feedback and making adjustments to requirements.
- Changes are always welcome.
AGILE Framework Architecture Basics
** Roles: Product Owner (PO), Scrum Master (SM), DEV and Testing Teams;
** Ceremonies: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retro, Grooming Session.
** Artifacts: Product backlog, Sprint backlog, Burnout chart.
What is WATERFALL Methodology?
-
WATERFALL Methodology is the sequential method using for
Software Development. - You CAN’T Go Back and have to finish the phase before you move on.
Waterfall Milestones & Methods:
** Requirements & Planning,
** Design,
** Implementation,
** Verification & Testing,
** Deployment & Maintenance.
Which AGILE Frameworks did you use in your previous projects ?
** I have heard Extreme Programming (XP), Kanban, Feature Driven Development and SCRUM.
** But I have only worked with SCRUM only.
Relation between AGILE and SCRUM?
What is SCRUM?
** AGILE is the software development methodology that focuses on customer satisfaction by frequent software delivery.
** SCRUM is one of the many approaches to implement AGILE.
** SCRUM is an AGILE framework.
** SCRUM is suitable for certain type of projects where there are rapidly changing requirements.
** In simple words, AGILE is the methodology and SCRUM is the framework to follow this practice.
Why do we need AGILE?
WATERFALL or AGILE?
AGILE MODEL:
Approach - Iterative and Incremental
Flexibility - Highly flexible and adaptable
Planning - Minimal planning is enough
Customer Involvement - High level of customer involvement
Risk management - Continuous risk management
Documentation - Minimal documentation required
Time and cost - Challenging to estimate time and cost
WATERFALL MODEL:
Approach - Sequential
Flexibility - Less flexible
Planning - Detailed planning required
Customer Involvement - Low level of customer involvement
Risk management - Risk management at the beginning of the project
Documentation - Extensive documentation required
Time and cost - Easy to estimate time and cost
—————————————-
WATERFALL methodology have following disadvantage:
- *Requirements can’t be change or hard to change once document is signed.
- *Before completing current phase you can’t move to the next phase. Customer can’t see what they are going to get until very late stage in development lifecycle.
- *All phases takes longer time to go to the production. By the time product goes to the market might be outdated already.
AGILE has following advantages:
- *The Requirements changes are welcomed. For example, after the sprint demo if client does not like something we can take their feedback and improve the product.
- *Since it is iterative development process, the development team can developed piece of functionality, get feedback and improve next iteration. So the product will got a continuously improvements.
What different roles in SCRUM team you know?
- PRODUCT OWNER - is a responsible to provide a vision of what to build and convey his detailed vision to the team. He is the starting point of an agile scrum software development project. PO creates the user stories and prioritizes the product/sprint backlog.
- SCRUM TEAM - is formed by the collective contribution of individuals who perform for the accomplishment of a particular project. The team is bound to work for the timely delivery of the requested product.
- SCRUM MASTER – is the leader and the coach for the scrum team who tracks whether the scrum team is executing committed tasks properly. He is also responsible to increase the efficiency and productivity of the team so that they can achieve the sprint goal effectively.
Describe your SCRUM TEAM?
** Currently in my project we have 11 members in our scrum team.**
* PO - Stephen
* DEV - Linda, Raj, John, James, Ryan and Karan
* TEST - Myself, Arjun and Shelly
* SM - Roger
Have you heard of Scrum of Scrums?
- In case, there are multiple teams involved in the project. Scrum of Scrums is used to focus on projects that collaborate with multiple teams.
- It supports Agile teams to collaborate and coordinate their work with other teams.
- It helps focus the meeting towards specific agenda items.
What do “Burn-down Chart” and “Burn-up Chart” mean?
“Burn-down Chart” and “Burn-up Chart” are the Scrum Artifacts:
- To track the progress of an ongoing project, these charts are used.
- Burn-Up chart indicate the work that has been completed while.
- Burn-Down chart shows the amount of remaining work in a project.
Definition of Sprint?
- In SCRUM, the project is divided into Sprints.
- Each Sprint has a specified timeline (2 weeks to 1 month).
- This timeline will be set for the duration of the project.
- Here, User Stories are split into different modules.
- The end result of every Sprint should be a potentially shippable product.
How long is your current Sprint?
- My current sprint duration is 2 weeks.
Product Backlog & Sprint Backlog?
- Product backlog is maintained by the project owner which contains every feature and requirement of the product.
- Sprint backlog can be treated as subset of product backlog which contains features and requirements related to that particular sprint only.
Velocity of a Sprint and how it is measured?
- Velocity is one of the planning tool used to estimate the speed of the work and time of completion of the project.
- The calculation of velocity is done by reviewing the work team has
successfully completed during earlier sprints. - For example, if the team completed 5 stories during a two-week sprint and each story was worth 3 story points, then the team’s velocity is 15 story points per sprint.
How often do you release?
- Our Release Cycle is dependent on the Roadmap created by the product owner.
- Typically we release features every 3 months.
- However when a critical defect has been reported in production we may do Hotfix releases which are emergency releases to resolve customer issues in our production environment.
How What happens when requirements change in middle of
sprint?
- As part of being in an Agile project we expect requirements to change.
- When a requirement changes in the middle of a Sprint I will analyze the changes.
- Based on the changes I will determine the impact and how it affects the work that has been completed. (Does it add more scope or reduces scope?)
- Based on the impact analysis we will need to re-estimate the user story to ensure the Level of Effort is updated.
What is a Software Testing means?
- Process of executing a program or application with the intent of find software bugs using functional and automation tools
- Process of validating/verifying a software program/application
Why we test?
- To build bug free application.
- To satisfied end user and client.
- To build great product to generate more revenue.
Is 100% testing possible?
- We can’t test the application 100% since there are unlimited scenarios that we can’t even imagine.
- Software testing is risk based activity based on priority of the functionality we can test as much as much as possible.
- Even though 100% testing is not possible but I believe 100% customer satisfaction is certainly possible.
Test Plan VS Test Strategy?
A Test Plan is a formal document derived from requirement documents, describing in detail the scope of testing and the different activities performed in testing. Whereas, a test strategy is a high-level document describing the way testing will be carried out in an organization.
Test Plan
1. A test plan is derived from Software Requirement Specification (SRS), describing in detail the scope of testing and the different activities performed in testing.
2. A test plan is specific to a particular project.
3. It describes the whole testing activities in detail - the techniques used, schedule, resources etc.
4. It is prepared by Test Lead or Test Manager.
Test Strategy
1. A test strategy is a high-level document describing the way testing is carried out.
2. A test strategy is normally for a complete organization. Although it can be specified for a particular project as well.
3. It describes the high-level test design techniques to be used, environment specifications etc.
4. It is generally prepared by the Project Manager.
What is a Test Plan?
Test plan is a document that described the testing scope:
* High level test cycle
* Defect life cycle
* Entrance Criteria (defines what all need to start the testing)
* Exit Criteria (defines what the testing is finished)
If you don’t know where to start and where to finish then your goals are not clear.
What is a Test Case?
Commonly Test Case has a following structure:
- Test Case ID
- Step number
- Description of the functionality
- Expected result
- Actual Result