I've seen TDD/BDD/ATDD used interchangeably with Scrum/Kanban/Agile, so the confusion is understandable. Here's my take on the differences:
Waterfall is a software development methodology where each kind of development activity happens in a separate phase (requirements gathering, design, development, testing...). Typically, waterfall projects work best ...
The traditional definitions would be something like this:
A test suite is a collection of test cases related to the same test work. You might have a suite for regression, one for build verification tests, a suite that is specific for a component, and so on.
A test plan is generally a document which describes testing approach and methodologies being used for ...
That's my estimate. Some say 6750, others 500, others yet wouldn't go over one million steps per case.
Jokes aside, there is no fixed number nor there is someone who would set the limit. It is pretty vague anyway what is a single step case.
For example, you could write a test case in this way:
Login to the app
Add 2 items to cart
Confirm 2 items are ...
A service-level agreement is an agreement between two or more parties, where one is the customer and the others are service providers. This can be a legally binding formal or an informal "contract" (for example, internal department relationships).
The agreement may involve separate organizations, or different teams within ...
Same thing. No doubt there are companies that use those terms to mean different things, but their usage is not universal. If someone asks you that question in an interview, you should be able to say, "Where I work, the terms are interchangeable. Do they mean something different here?"
Major has more impact on how users can or cannot use the application than minor.
There is no industry standard what these terms mean. If it is necessary, you need to discuss the meaning with your team/company, as the meaning should relate to which action, turn-around time should be used.
Personally I do not care for priorities in words. Rather prioritize ...
Welcome to SQA, user5440. "High level software QA" could refer to a architect-level position, or a management position, or something else; maybe even a job testing zeppelin software, or testing marijuana distribution software in California. Or it might mean ordinary testing from the perspective of someone who doesn't know anything about software, or who ...
The phenomenon that the more you test software, the more immune it becomes to your tests - just as insects eventually build up resistance and the pesticide no longer works. [Beizer]
Automated tests are tests that can be run automated, often developed in a programming language. In this case we talk about the individual test cases, either unit-tests, integration/service or end-2-end tests.
Test automation is a broader concept and includes automated tests.
From my perspective it should be about the full automation of test cycles from ...
Lets say you are testing an application. You have written a set of test cases.
Now you run one cycle of testing. You find few bugs and report them to the development team. Development team fixes the bugs and reverts to you with the updated code. You again execute the same set of test cases. This time you find that few of the bug were still not fixed and you ...
I think the test-case is the what and the test-script is the how of the test.
Its possible to defined high level test-cases to describe what needs to be tested.
The test-scripts contain all the detail to really execute the test.
The PageObject Model is not a framework. A framework is:
a basic structure underlying a system
The Page Object Model is:
an object repository design pattern here.
Using the POM might result in a personal testing framework as it creates a part of the underlying structure for your tests.
but Data Driven because you always need to extract data from a ...
This answer does not provide the exact definitions, just the
1. Accessibility Testing
Testing carried out to verify whether the application is user-friendly to the physically disabled user.
For example, we can consider the Kindle e-book application. For this application, we check whether the application has the feature to read the e-book ...
Component testing is testing of specific module or program.It may be done in isolation from rest of the system depending on the life cycle model selected for that particular application.
Stub and driver are used for competent testing. These both are consider as component.
Best example is given below :
Suppose you are testing one application which have 3 ...
Latent Bug : A latent bug is a bug which is present in the system from previous iterations or release (in your scenario Sprint 1). They are either low priority bugs, which either went undetected or were not reported.
Here is a good description : What is a latent bug?
Golden Bug : If a bug happens to appear, in every iteration or release, affecting the ...
Kate's answer is great, but I want to throw in my 2 cents for differentiating TDD/BDD/ATDD.
TDD is writing tests first and letting those tests drive the development of your application. This introduces the idea of Red/Green/Refactor. The basic process is to:
Write a failing test
Make the test pass with application code
Refactor the application code for ...
The difference between Waterfall methodology and an iterative methodology (agile, Scrum, etc.) is that Waterfall requires each step of a defined process be performed to completion in a particular sequence. In an iterative methodology you complete small slices of the problem at a time by gathering just a few requirements and coding each one to completion, ...
Bug, Defect, Issue, Fault, Incident, Ticket are all the same and are interchangeably used in organisations. People can debate and say they agree or disagree and quote references but the ground reality is, it does not matter what you call it as long as it is tracked, referenced as needed and ultimately fixed.
My experience shows below:
In Bugzila you will ...
Corner Case Testing:
When the system breaks only for a specific valid input
Imagine a function getcar() that that takes a number and all numbers from 1-5 are valid inputs:
getcar(wheel=?) function works with all numbers but fails for getcar(wheel=3)
Edge Case Testing:
Here we check that the system handles extreme values of valid limits.
Using the word allowed suggests there is or should be a fixed rule. I think what you are looking for might be a guideline.
The guidline would depend on factors like the context, the domain complexity, the risks, the level of skill of the people that execute the test-cases, etc..
I would suggest that you start with a max of 10 steps. Once you go over it you ...
This is a terminology issue: what Beatty is saying is that conventional testing methods are unable to detect those conditions.
Essentially, they don't manifest in typical testing activities (and detection requires detailed analysis of the code base by someone with access to and knowledge of the code - which many testers lack). Certainly in my career I've ...
If we refer to ISTQB glossary of terms then
test suite: A set of several test cases for a component or system under test, where the post condition of one test is often used as the precondition for the next one.
test plan: A document describing the scope, approach, resources and schedule of intended test activities. It identifies amongst others test items, ...
You have some choices here. You can go with formal definitions like the ISTQB definition, or you can treat the definitions the way your organization handles them. Software testing is a field where definitions tend to vary depending on the understanding of the team and how they work.
That said, in my experience interface testing can be one of two things:
Kanban and Scrum are Agile process frameworks and therefor have short iterative development cycles as compared to the longer separate phases of waterfall projects. Agile projects focus on getting a working product in short iterations, each iteration should deliver a piece of deploy-able product.
BDD, TDD and ATDD are not development methodologies and can be ...
Yes, Unit-testing is only software related. No testing the implementation of a dashboard cannot be considered Unit-testing. Unit-tests typically test relatively small programming functions. A dashboard is the result of a lot of programming classes which consist of even more smaller programming methods (a.k.a. functions).
Unit tests are typically automated ...
It is often risky and problematic to test the integration between your system and external systems that you do not control. For example, if your system performs financial transactions, it is daunting to test whether you perform those transactions correctly. Sometimes there are "test" versions of the external systems available for integration testing. If ...
The testing team I'm on finally got everyone to start calling us "testers" and "testing" instead of "QA". We're organizationally a separate team from development, but de facto we work as a whole team together. Testers often pair with programmers, and programmers often do testing.
It's true that as testers we do a huge variety of activities, and some people ...
Robust is the opposite of fragile; it is the ability to function correctly under a variety of conditions -- perhaps even under conditions that change or that you did not anticipate. Robustness testing is the practice of measuring robustness.
Fault injection and mutation testing are ways to measure the robustness of your tests. They don't tell you anything ...
There are lots of kinds of testing, and they vary by company and organization. Different people use different terms. There is no special value in any particular set of terms; you just need to know what the speaker means when they use them.
Frankly, I think it was a stupid question, or perhaps even a trick question to see how you deal with ambiguity. ...