61⟩ Explain me what is Lean Software Development?
Lean software development method is based on the principle "Just in time production". It aims at increasing speed of software development and decreasing cost.
“Agile Testing based Frequently Asked Questions by expert members with experience as Agile Testing. These questions and answers will help you strengthen your technical skills, prepare for the new job test and quickly revise the concepts”
Lean software development method is based on the principle "Just in time production". It aims at increasing speed of software development and decreasing cost.
• Product backlog: It contains a list of all desired features and is owned by the product owner
• Sprint backlog: It is a subset of the product backlog owned by development team and commits to deliver it in a sprint. It is created in Sprint Planning Meeting
When attending an Agile Testing Interview, questions can be asked to find out what you really understand from an Agile Tester or Agile QA role and how you will fit with the rest of the team.
A: Some good characteristics of an Agile Tester are
☛ Good communicator – In agile teams, there is increased level of communication with the Devs, QAs and BAs
☛ Priorities change frequently in agile projects, so the Agile QA should be able to prioritize the tasks accordingly
☛ Should not be afraid of change
☛ Ideally Agile Testers should be multi-skilled and technical or at least understand the technical terminology so that they don’t feel alienated from the rest of the team when developers talk in technical terms
☛ Should understand Agile concepts and principles
☛ Participate in daily sprint planning, stand-ups, retrospectives. Note the word Participate, meaning to actually talk and take part in discussions rather than just attending the meetings
Agile quality strategies are
☛ Re-factoring
☛ Non-solo development
☛ Static and dynamic code analysis
☛ Reviews and Inspection
☛ Iteration/sprint demos
☛ All hands demo
☛ Light weight milestone reviews
☛ Short feedback cycles
☛ Standards and guidelines
Prototypes and Wireframes are prototypes that are widely used as part of Empirical Design
There may be some technical issues or design problem in the project which needs to be resolved first. To provide the solution of these problem “Spikes” are created. Spikes are of two types- Functional and Technical.
Pair programming is a technique in which two programmer works as team in which one programmer writes code and other one reviews that code. They both can switch their roles.
Benefits:
☛ Improved code quality: As second partner reviews the code simultaneously, it reduces the chances of mistake.
☛ Knowledge transfer is easy: One experience partner can teach other partner about the techniques and codes.
Test driven development or TDD is also known as test-driven design. In this method, developer first writes an automated test case which describes new function or improvement and then creates small codes to pass that test, and later re-factors the new code to meet the acceptable standards.
This question can be asked if you are interviewed for an agile QA position where requirements are likely to change frequently during development. Although a complete change in requirement is possible, most of the time, it is the technical details that are subject to change. e.g. the intent of the requirement or behaviour of the feature is the same but implementation details can change
A: Some possible answers can be:
☛ Write generic test plans and test cases which focus on the intent of the requirement rather than its exact details
☛ Work very closely with the product owners or business analysts to understand the scope of change so testing can be updated
☛ Make sure the team understands the risks involved in changing requirements especially towards the end of sprint
☛ If you’re going to automate this feature, it is best to wait until the feature is stable and requirements are finalized
☛ Negotiate to see if the changes can be kept to a minimum and/or implement the changes in next sprint
• Sprint Zero: It is introduced to perform some research before initiating the first sprint. Usually this sprint is used during the start of the project for activities like setting development environment, preparing product backlog and so on.
• Spikes: Spikes are type of stories that are used for activities like research, exploration, design and even prototyping. In between sprints, you can take spikes for the work related to any technical or design issue. Spikes are of two types Technical Spikes and Functional Spikes.
Extreme Programming technique is very helpful when there is constantly changing demands or requirements from the customers or when they are not sure about the functionality of the system. It advocates frequent "releases" of the product in short development cycles, which inherently improves the productivity of the system and also introduces a checkpoint where any customer requirements can be easily implemented. The XP develops software keeping customer in the target.
It can be defined as pre step to the first sprint. Activities like setting development environment, preparing backlog etc needs to be done before starting of the first sprint and can be treated as Sprint zero.
☛ Agile tester should be able to understand the requirements quickly.
☛ Agile tester should know Agile concepts and principals.
☛ As requirements keep changing, he should understand the risk involve in it.
☛ Agile tester should be able to prioritize the work based on the requirements.
☛ Communication is must for a Agile tester as it requires a lot of communication with developers and business associates.
If capacity is measured as a percentage of a 40 hours weeks then completed story points * team capacity
If capacity is measured in man hours then Completed story points / team capacity
Test driven development or TDD is also known as test-driven design. In this method, developer first writes an automated test case which describes new function or improvement and then creates small codes to pass that test, and later re-factors the new code to meet the acceptable standards.
The Scrum team consists of three main roles:
☛ Product Owner: Manages the product backlog. PO is the voice of the business and create new features to be developed for the application.
☛ Scrum Master: Responsible for managing the sprint, remove any impediments and keeps track of the progress of the project.
☛ Scrum Team itself: Composed of developers, designers and QA. This forms the team which is responsible for delivering high quality software.
To track the project progress burn up and burn down charts are used,
• Burn up Chart: It shows the progress of stories done over time
• Burn down Chart: It shows how much work was left to do overtime
Scrum ban is a software development model based on Scrum and Kanban. It is specially designed for project that requires frequent maintenance, having unexpected user stories and programming errors. Using these approach, the team’s workflow is guided in a way that allows minimum completion time for each user story or programming error.
QA can provide a value addition by thinking differently about the various scenarios to test a story. They can provide quick feedback to the developers whether new functionality is working fine or not.
Agile methods grew out of the real-life project experiences of leading software professionals who had experienced the challenges and limitations of traditional waterfall development on project after project. The approach promoted by agile development is in direct response to the issue associated with traditional software development – both in terms of overall philosophy as well as specific processes.