QA Prep
What are the pros and cons of Agile Methodology?
Pro: Speedy and continuous delivery of the software ensures customer satisfaction. Con: The decision making crucial for the development process comes with seniority and experience. Hence, freshers can hardly manage to find a place in the agile software development process.
What are burndown and burn-up charts in agile methodology?
To track the progress of an ongoing project, these charts are used. Burn-up charts indicate the work that has been completed while Burn-down chart shows the amount of remaining work in a project.
What are the different verification techniques you know?
(i) Review - This is a method by which the code/test cases are examined by the individual other than the author who has produced it. It is one of the easy and best ways to ensure coverage and quality. (ii) Inspection - This is a technical and disciplined way to examine and correct the defects in the test artifact or code. Because it is disciplined, it has various roles: Moderator - Facilitates the entire inspection meeting. Recorder - Records the minutes of the meeting, defects occurred, and other points discussed. Reader - Read out the document/code. The leader also leads to the entire inspection meeting. Producer - The author. They are ultimately responsible to update their document/code as per the comments. Reviewer - All the team members can be considered as a reviewer. This role can also be played by some group of experts is the project demands. (iii) Walkthrough - This is a process in which the author of the document/code reads the content and gets the feedback. This is mostly a kind of FYI (For Your Information) session rather than seeking corrections.
What is Agile Testing?
Agile testing is a practice based on the principles of agile software development. It includes all members of an agile team with specific skills and a certain expertise to ensure the timely delivery of a product with the release of additional features at frequent intervals.
Differentiate between "Sprint Planning Meeting" and "Sprint Retrospective Meeting."
Although the two terms may sound similar, Sprint Planning Meeting and Sprint Retrospective Meeting are quite different from one another. A Sprint Planning Meeting involves all the Scrum roles - product owner, scrum team, and scrum master - coming together to discuss the project priorities and backlog items. Usually, the Sprint Planning Meeting is a weekly event that lasts for about an hour. A Sprint Retrospective Meeting, on the other hand, is one where all the Scrum roles (product owner, scrum team, and scrum master) come together to discuss the good and bad elements of the sprint and the sprint improvements. This meeting is generally an extension of the Sprint Planning Meeting and can last up to two to three hours.
Can you list some responsibilities that a scrum team have to undertake?
Breaking down the requirements, creating tasks, estimating and distributing the created tasks. To put simply they are in charge of creating sprint backlogs. They have to arrange daily sprint meeting. It is a responsibility of the team to ensure that every functional feature is delivered on time. They have to create a sprint burn-down diagram to know to get the exact estimate of work done and the work that needs to be done.
Have you ever managed writing the test cases without having any documents?
Collaborate with the BA and development team. Dig into mails which have some information. Dig into older test cases/regression suite If the feature is new, try to read the wiki pages or help of the application to have an idea Sit with the developer and try to understand the changes being made. Based on your understanding, identify the test condition and send it to BA or stakeholders to review them.
Mention the principles of Agile testing.
Continuous testing, Continuous feedback, Simple and clean code, and less documentation.
Do you think QA's can also participate to resolve production issues?
Definitely!! It would be a good learning curve for QA's to participate in resolving production issues. Many time production issues could be resolved by clearing the logs or making some registry settings or by restarting the services. These kinds of environmental issues could be very well fixed by the QA team. Also, if QA has an insight into resolving the production issues, they may include them while writing the test cases, and this way they can contribute to improve quality and try to minimize the production defects.
What are the different artifacts you refer to when you write the test cases?
Functional requirement specification Requirement understanding document Use Cases Wireframes User Stories Acceptance criteria Many a time UAT test cases
What is the difference between Functional and Non-functional testing?
Functional testing deals with the functional aspect of the application. This technique tests that the system is behaving as per the requirement and specification. These are directly linked with customer requirements. We validate the test cases against the specified requirement and make the test results as pass or fail accordingly. Nonfunctional testing, on the other hand, tests the non-functional aspect of the application. It does not focus on the requirement, but environmental factors like performance, load, and stress. These are not explicitly specified in the requirement but are prescribed in the quality standards. So, as QA we have to make sure that these testing are also given sufficient time and priority.
Explain "Zero Sprint" in Agile.
In Agile Methodology, Zero Sprint refers to the first step that comes before the first sprint. So, it is more like a pre-step to the first sprint. Thus, Zero Sprint would include a host of activities that are to be completed before starting a project, including setting up the development environment, preparing backlog, and other such tasks that are usually done before beginning the actual development process.
How is Agile Methodology different than Traditional Waterfall process?
In agile methodology, features of the software are delivered frequently, so that the testing activity is done simultaneously with the development activity. Testing time is shortened as only small features are need be tasted at once.While, in the waterfall model, testing activities take place at the end of the entire development process. Testing time, in this case, is as long as the entire product is to be tested in one go. Waterfall methodology is a closed process where all stakeholders are not involved in the development process whereas agile methodology requires the involvement of various stakeholders including customers.
In case you have any doubts regarding your project, how do you approach?
In case of any doubts, first, try to get it cleared by reading the available artifacts/application help. In case of doubts that persist, ask an immediate supervisor or the senior member of your team. Business Analysts can also be a good choice to ask doubts. We can also convey our queries with the development team in case of any other doubts. The last option would be to follow up with the manager and finally to the stakeholders.
What would you do if you have a large suite to execute in very less time?
In case we have less time and have to execute the larger volume of test cases, we should prioritize the test case and execute the high priority test cases first and then move on to the lower priority ones. This way we can make sure that the important aspects of the software are tested. Alternatively, we may also seek customer preference that which is the most important function of the software according to them, and we should start testing from those areas and then gradually move to those areas which are of less importance.
What is a good test case?
In simple words, a good test case is one that finds a defect. But all test case will not find defects, so a good test case can also be one which has all the prescribed details and coverage.
What is Kanban?
Kanban is a tool which helps the team to keep a close eye the work i.e., to measure its progress. Apart from the progress, the status of a development story can be seamlessly described with the help of 'kanban board'.Kanban board aids in writing the whole scenario of a project at a single place to give a perfect picture of the bottleneck, a task done, workflow progress. It helps in the continuous delivery of the product without overburdening the team
Can you explain the lean methodology in detail?
Lean software development method follows the principle of "Just in time production". It aims at increasing the speed of software development and decreasing cost.The basic idea of lean is to reduce non-value-added activities (known as "wastes") in order to increase customer value. The agile process itself is a lean method for software development lifecycle. However, activities like backlog grooming (when team review items on the backlog to ensure the appropriate items are in the backlog, that they are prioritized well, and that the items at the top of the backlog are ready for delivery) code refactoring (process of restructuring existing computer code - changing the factoring — without changing its external behavior) fits agile methodology more in tune with lean principles.
What is Negative testing? How is it different from Positive testing?
Negative testing is a technique that validates that the system behaves gracefully in case of any invalid inputs. For example, in case the user enters any invalid data in a text box, the system should display a proper message instead of the technical message which the user does not understand. Negative testing is different from positive testing in a way that positive testing validates that our system works as expected and compares the test results with the expected results. Most of the time scenarios for negative testing are not mentioned in the functional requirement documents. As a QA we have to identify the negative scenarios and should have provisions to test those.
When do you think QA activities should start?
QA activity should start at the beginning of the project. The more early it starts the more beneficial it is to set the standard for achieving the quality.
What is the difference between Quality Assurance, Quality Control, and Testing?
Quality Assurance is the process of planning and defining the way of monitoring and implementing the quality(test) processes within a team and organization. This method defines and sets the quality standards of the projects. Quality Control is the process of finding defects and providing suggestions to improve the quality of the software. The methods used by Quality Control are usually established by quality assurance. It is the primary responsibility of the testing team to implement quality control. Testing is the process of finding defects/bugs. It validates whether the software built by the development team meets the requirements set by the user and the standards set by the organization. Here, the main focus is on finding bugs and the testing teams work as a quality gatekeeper.
How would you ensure that your testing is complete and has good coverage?
Requirement Traceability Matrix and Test coverage matrices will help us to determine that our test cases have good coverage. Requirement traceability matrix will help us to determine that the test conditions are enough so that all the requirements are covered. Coverage matrices will help us to determine that the test cases are enough to satisfy all the identified test conditions in RTM.
Difference between extreme programming and scrum?
Scrum teams usually have to work in iterations which are known as sprints which generally last up to two weeks to one month long while XP team works in the iteration that lasts for one or two weeks.XP teams are more flexible as they can change their iterations while Scrum teams do not allow any change in their iterations.The product owner prioritizes the product backlog but the team decides the sequence in which they will develop the backlog items in scrum methodology. Whereas XP team works in strict priority order, features developed are prioritized by the customers.
Can you explain the Software Testing Life Cycle?
Software Testing Life Cycle refers to a testing process that has specific steps to be executed in a definite sequence to ensure that the quality goals have been met.
What is the difference between Load and Stress testing?
Stress Testing is a technique which validates the behavior of the system when it executes under stress. To explain, we reduce the resources and check the behavior of the system. We first understand the upper limit of the system and gradually reduce the resources and check the system behavior. In Load testing, we validate the system behavior under the expected load. The load can be of concurrent user or resources accessing the system at the same time.
What is the difference between the Test Plan and Test Strategy?
Test Strategy is at a higher level, mostly created by the Project Manager which demonstrates the overall approach of the testing for the entire project, whereas the Test plan depicts how the testing should be performed for a particular application, falling under a project.
Explain the role of the Scrum Master.
The Scrum Master is the leader and supervisor of the Scrum team. The main job of the Scrum Master is to ensure that the team abides by the Agile values and principles and follows the agreed-upon processes and practices. Some of the most crucial responsibilities of the Scrum Master are:
Have you used any Automation tools?
The answer to this question is very much exclusive to the individual. Reply to all the tools and strategies of automation that you have used in your project.
Suppose you find a bug in production, how would you make sure that the same bug is not introduced again?
The best way is to immediately write a test case for the production defect and include it in the regression suite. This way we ensure that the bug does not get introduced again. Also, we can think of alternate test cases or similar kinds of test cases and include them in our planned execution.
Can you explain pair programming and its benefits?
The combined effort in the team where one programmer writes the code and the other one reviews it is called pair programming. There are several benefits of pair programming, it not only improves the quality of code but also facilitates the knowledge transfer. It reduces the chance of mistakes as two people are simultaneously working on a code.
What is the ideal duration of a Scrum Sprint?
The duration of a Scrum Sprint or the Scrum Cycle primarily depends on the project size and the team working on it. A Scrum team may consist of 3-9 members, and it takes about 3-4 weeks to draft and complete a Scrum script. Going by this calculation, the average duration of a Scrum Sprint is four weeks.
Do you know what is the scrum of scrums?
The term "Scrum of Scrums" is used when there are multiple teams involved in a project. It refers to the scaling of the daily Scrum meeting. In this scenario, each team is responsible for conducting and leading its separate scrum meeting. However, to maintain coordination and communication among all the different teams, a separate meeting must be conducted wherein all the teams participate. This is known as the "Scrum of Scrums."
What kind of projects is suitable for the Agile Methodology?
The traditional methodology is suited for projects with predefined, clearly stated requirements while agile development methodology is suitable for projects with dynamic requirements where frequent changes in the product come up on a regular basis.
What are the different types of Agile Methodologies?
There are several types of agile development methodology. Scrum is one of the most popular and widely used agile methods. Other types of agile development methodology are; development like Crystal Methodology, DSDM(Dynamic Software Development Method), Feature-driven development(FDD), Lean software development and Extreme Programming(XP).
According to you what are some qualities that a good agile tester must have?
They should be capable of understanding the requirements quickly. An agile tester should be aware of all the agile principles and concepts and values as listed down in an agile manifesto. They should be able to prioritize the work based on the requirements. They should have excellent communication skills as continuous communication between business associates, developers and tester is a backbone of the agile development process.
Cyclomatic Complexity
This technique is mainly used to determine the complexity of a piece of code or functionality.
What is meant by Verification and Validation?
Validation is the process of evaluating the final product to check whether the software meets the business needs. The test execution which we do in our day to day life is the validation activity which includes smoke testing, functional testing, regression testing, systems testing, etc. Verification is a process of evaluating the intermediary work products of a software development lifecycle to check if we are in the correct track of creating the final product.
What is the 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.
What are the crucial Agile Matrices?
Velocity, Work category allocation, Defect removal awareness, Cumulative flow diagram, Sprint burn-down matric, Deliver business value, Time coverage, and Defect resolution time.
How do you determine which piece of software requires how much testing?
We can know this factor by finding out the Cyclomatic Complexity.
Is there any difference between incremental and iterative development?
Yes, the iterative methodology is a process of software development without any interruption. In this method, software development cycles consisting of sprint and release are repeated until the final product is obtained. Whereas, the incremental model is a process of software development where the product is designed, implemented and tested incrementally until the product is finished. It involves both development and maintenance.