Agile Model, Manual & ETL Questions
Agile Model, Manual & ETL Questions
Agile Model, Manual & ETL Questions
In all models the customer requirements are predefined. If the customer wants to
change any requirement, you have to take that requirement in maintenance and extra
charge will be applied. But in the agile model, requirement come at any stage of
development. That is not plan driven, its value driven.
The main agile methodologies are:-
Scrum
Kanban
XP (Extreme Programming)
FDD (Feature Driven Development)
AUP (Agile Unified Process)
Scrum Architecture
Solution Owner(client): - Defines the Cost of the Production.
Sprint Backlog: - From product backlogs, product owner will be going to select
same requirement that will be deliver in specific sprint. (Client will select specific
requirement from product backlog that will be deliver in specific sprint)
Stories: - After Sprint backlog get analysed, product owner will define stories.
Stories are nothing but used cases/SRS. (After analysing sprint backlog, BA will
define stories)
One Product Backlog contain more than One Sprint Backlogs. One Sprint Backlog
contains multiple Stories. Stories divided into Test Scenario and Test Scenario after
divided into Test Cases
Solution Owner
Product
Sprint Planning
Duration of 1 Sprint = 2 to 4 Weeks (We
will tell 2 or 4 weeks)
Sprint
Scrum Master(PM)
Scrum
1. Sprint Planning Meeting
2. Daily Standup Meeting
3. Sprint Review
4. Sprint Retrospective
Discussion in Meeting
Product backlog
Time Discussion
Discussion in Meeting
3. Sprint Review
This Meeting takes place at the end of Sprint.
(Attendee – Product Owner (BA), Scrum Master (PM), Development Team, Testing
Team, Technical Team of Client)
Discussion in Meeting
2. Product Owner explain how many product backlogs are completed & how many are
remaining.
We will identify what goes well with this Sprint & What did not goes well with this
sprint. According to that we will improve our progress
Zero Sprint: It generally refers to the first step or pre-preparation step that comes
just before the first sprint. It includes all activities such as setting a development
environment, preparing backlog, etc.
e.g.
If we have 100 product backlogs to deliver within 5 months then we need to
release 5 sprints. Each sprint will contain 20 sprint backlogs. Duration of
each sprint is 4 weeks.
If sprint 1 we have to deliver in 4 weeks but it will completed within 3 weeks
then we will go for next sprint 2.
If we are not able to deliver sprint 1 within 4 weeks then client will
understand scenario that agile is flexible & we can fix it in next sprint 2.
Agile Velocity:-
Velocity in agile means the average amount of work a team can complete in
one Sprint.
It is a guessing technique.
Burndown Chart:-
What is STLC??
There are following six major phases in every Software Testing Life Cycle Model
(STLC Model):
Requirement Analysis
Test Planning
Test case development
Test Environment setup
Test Execution
Test Cycle closure
Each of these stages has a definite Entry and Exit criteria, Activities & Deliverables
associated with it.
What is black box testing?
What are the functional and nonfunctional testing?
Explain bug life cycle?
What is regression and retesting?
What is smoke testing..??
What is integration testing..??
What is stub and it's implementation??
Software Testing is a process used to identify the correctness, completeness, and quality
of developed software. It includes a series of activities conducted with the intent of
finding errors in software so that it could be corrected before the product is released to
the market.
Software testing is a mandatory process that guarantees that the software product is safe
and good enough to be released to the market. Here are some compelling reasons to
prove testing is needed:
It points out the defects and errors that were made during the development
phases.
Reduces the coding cycles by identifying issues at the initial stage of the
development.
Ensures that software application requires lower maintenance cost and results in
more accurate, consistent and reliable results.
Testing ensures that the customer finds the organization reliable and their
satisfaction in the application is maintained.
Makes sure that software is bug-free and the quality of the product meets the
market standard.
Software testing is a huge domain but it can be broadly categorized into two areas such as
:
Manual Testing – This is the oldest type of software testing where the testers
manually execute test cases without using any test automation tools. It means the
software application is tested manually by QA testers.
Automation Testing – This is the process of using the assistance of tools, scripts,
and software to perform test cases by repeating pre-defined actions. Test
Automation focuses on replacing manual human activity with systems or devices
that enhance efficiency.
Unit Testing
System Testing
Integration Testing
Acceptance Testing
Q7. Explain the difference between alpha testing and beta testing.
Unit testing – It is a way of testing the smallest piece of code referred to as a unit
that can be logically isolated in a system. It is mainly focused on the functional
correctness of the standalone module.
System Testing – In system testing all the components of the software are tested as
a whole in order to ensure that the overall product meets the requirements
specified. There are dozens of types of system testing, including usability testing,
regression testing, and functional testing.
User Acceptance Testing – The final level, acceptance testing, or UAT (user
acceptance testing), determines whether or not the software is ready to be
released.
The testbed is an environment configured for testing. It is an environment used for testing
an application, including the hardware as well as any software needed to run the program
to be tested. It consists of hardware, software, network configuration, an application
under test, other related software.
In case you are facing any challenges with these Manual Testing interview questions,
please comment on your problems in the section below.
A test case is a document that has a set of conditions or actions that are performed on the
software application in order to verify the expected functionality of the feature.
Test cases describe a specific idea that is to be tested, without detailing the exact steps to
be taken or data to be used. For example, in a test case, you document something like
‘Test if coupons can be applied on actual price‘.
API testing is a type of software testing where application programming interfaces (APIs)
are tested to determine if they meet expectations for functionality, reliability,
performance, and security. In simple terms, API testing is intended to reveal bugs,
inconsistencies or deviations from the expected behavior of an API.
API testing is performed at the most critical layer of software architecture, the Business
Layer.
A bug is a just fault in the software that’s detected during testing time. A defect is a
variance between expected results and actual results, detected by the developer after the
product goes live.
Analysis of product from the point of view of the end-user is possible only with
manual testing
GUI testing can be done more accurately with the help of manual testing as visual
accessibility and preferences are difficult to automate
East to learn for new people who have just entered into testing
It is highly suitable for short-term projects when test-scripts are not going to be
repeated and reused for thousands of times
Best suited when the project is at the early stages of its development
Highly reliable, since automated tests can contain errors and missed bugs
Test types like load testing and performance testing are not possible manually
The cost adds up, so, it’s more expensive to test manually in the long run
Documentation plays a critical role in achieving effective software testing. Details like
requirement specifications, designs, business rules, inspection reports, configurations,
code changes, test plans, test cases, bug reports, user manuals, etc. should all be
documented.
Documenting the test cases will facilitate you to estimate the testing effort you will need
along with test coverage and tracking and tracing requirement. Some commonly applied
documentation artifacts associated with software testing are:
Test Plan
Test Scenario
Test Case
Traceability Matrix
With this, we have completed basic questions based on manual testing. In the next part of
this Manual Testing Interview Questions article, let’s discuss advanced level questions
related to manual testing.
Q19. When should you opt for manual testing over automation testing?
There are a lot of cases when manual testing is best suited over automation testing, like:
Short-time projects: Automated tests are aimed at saving time and resources yet it
takes time and resources to design and maintain them. For example, if you are
building a small promotional website, it can be much more efficient to rely on
manual testing.
Exploratory Test: This type of testing requires the tester’s knowledge, experience,
analytical, logical skills, creativity, and intuition. So human involvement is
important in exploratory testing.
Usability Testing: When performing usability testing, the tester needs to measure
how user-friendly, efficient, or convenient the software or product is for the end-
users. Human observation is the most important factor, so manual testing sounds
seems more appropriate.
Q20. What are the phases involved in Software Testing Life Cycle?
The different phases involved in the software testing life cycle are:
In case you are facing any challenges with these Manual Testing interview questions,
please comment on your problems in the section below.
Bug – A bug is a fault in the software that’s detected during testing time. They occur
because of some coding error and leads a program to malfunction. They may also lead to
a functional issue in the product. These are fatal errors that could block a functionality,
results in a crash, or cause performance bottlenecks
Defect – A defect is a variance between expected results and actual results, detected by
the developer after the product goes live. The defect is an error found AFTER the
application goes into production. In simple terms, it refers to several troubles with the
software products, with its external behavior, or with its internal features.
A software test engineer is a professional who determines how to create a process that
would best test a particular product in the software industry.
A good test engineer should have a ‘test to break’ attitude, an ability to take the
point of view of the customer
Ability to judge the situations and make important decisions to test high-risk areas
of an application when time is limited
“Testing of a previously tested program to ensure that defects have not been introduced
or uncovered in unchanged areas of the software, as a result of the changes made is
called Regression Testing.”
regression test is a system-wide test whose main purpose is to ensure that a small change
in one part of the system does not break existing functionality elsewhere in the system. It
is recommended to perform regression testing on the occurrence of the following events:
Q24. What is the difference between system testing and integration testing?
A defect life cycle is a process in which a defect goes through various phases during its
whole lifetime. The cycle starts when a defect is found and ends when a defect is closed,
after ensuring it’s not reproduced. Bug or defect life cycle includes the steps as shown in
the below figure.
If you wish to learn in-depth about Bug Life Cycle then you can refer this article on
Software Testing Tutorial.
A test harness is the gathering of software and test information arranged to test a
program unit by running it under changing conditions like stress, load, data-driven, and
monitoring its behavior and outputs. Test Harness contains two main parts:
Test Closure is a document which gives a summary of all the tests conducted during the
software development life cycle and also gives a detailed analysis of the bugs removed
and errors found. This memo contains the aggregate no. of experiments, total no. of
experiments executed, total no. of imperfections discovered, add total no. of
imperfections settled, total no. of bugs not settled, total no of bugs rejected and so forth.
A critical bug is a bug that has got the tendency to affect a majority of the functionality of
the given application. It means a large piece of functionality or major system component
is completely broken and there is no workaround to move further. Application cannot be
distributed to the end client unless the critical bug is addressed.
According to pesticide paradox, if the same tests are repeated over and over again,
eventually the same test cases will no longer find new bugs. Developers will be extra
careful in those places where testers found more defects and might not look into other
areas. Methods to prevent pesticide paradox:
To write a whole new set of test cases to exercise different parts of the software.
To prepare new test cases and add them to the existing test cases.
Using these methods, it’s possible to find more defects in the area where defect numbers
dropped.
In case you are facing any challenges with these Manual Testing interview questions,
please comment on your problems in the section below.
Defect Cascading is the process of triggering other defects in the application. When a
defect goes unnoticed while testing, it invokes other defects. As a result, multiple defects
crop up in the later stages of development. If defect cascading continues to affect other
features in the application, identifying the affected feature becomes challenging. You may
make different test cases to solve this issue, even then it is difficult and time-consuming.
In general, quality software is reasonably bug-free, delivered on time and within budget,
meets requirements and/or expectations, and is maintainable. But again ‘quality’ is a
subjective term. It will depend on who the ‘customer’ is and their overall influence in the
scheme of things. For example, each type of ‘customer’ will have their own slant on
‘quality’ – the accounting department might define quality in terms of profits while an end-
user might define quality as user-friendly and bug-free.
Q33. What is black box testing, and what are the various techniques?
Equivalence Partitioning
Cause-effect Graphing
Q34. What is white box testing, and what are the various techniques?
White-Box Testing also known as structure-based testing, requires a profound knowledge
of the code as it includes testing of some structural part of the application. The purpose of
this testing is to enhance security, check the flow of inputs/outputs through application
and to improve design and usability. Various white-box testing techniques are:
Statement Coverage
Decision Coverage
Condition Coverage
Experienced-based testing is all about discovery, investigation, and learning. The tester
constantly studies and analyzes the product and accordingly applies his skills, traits, and
experience to develop test strategies and test cases to perform necessary testing. Various
experience-based testing techniques are:
Exploratory Testing
Error Guessing
Top-Down – Testing happens from top to bottom. That is, high-level modules are tested
first, and after that low-level modules. Lastly, the low-level modules are incorporated into
a high-level state to guarantee the framework is working as it is expected to.
Bottom-Up – Testing happens from base levels to high-up levels. The lowest level modules
are tested first and afterward high-level state modules. Lastly, the high-level state
modules are coordinated to a low level to guarantee the framework is filling in as it has
been proposed to.
Q37. What is the difference between smoke testing and sanity testing?
Q38. What is the difference between static testing and dynamic
testing?
Deciding when to stop testing can be quite difficult. Many modern software applications
are so complex and run in such an interdependent environment, that complete testing
can never be done. Some common factors in deciding when to stop testing are:
Often testers encounter a bug that can’t be resolved at all. In such situations, the best bet
is for testers to go through the process of reporting whatever bugs or blocking-type
problems initially show up, with the focus being on critical bugs. Since this type of
problem can cause severe problems such as insufficient unit testing or insufficient
integration testing, poor design, improper build or release procedures, etc managers
should be notified and provided with some documentation as evidence of the problem.
In case you are facing any challenges with these Manual Testing interview questions,
please comment on your problems in the section below.
Q41. How you test a product if the requirements are yet to freeze?
It’s possible that a requirement stack is not available for a piece of product. It might take
serious effort to determine if an application has significant unexpected functionality, and
it would indicate deeper problems in the software development process. If the
functionality isn’t necessary to the purpose of the application, it should be removed. Else,
create a test plan based on the assumptions made about the product. But make sure you
get all assumptions well documented in the test plan.
Q42. What if an organization is growing so fast that fixed testing processes are impossible?
What to do in such situations?
This is a very common problem in the software industry, especially considering the new
technologies that are being incorporated when developing the product. There is no easy
solution in this situation, you could:
• Management should ‘ruthlessly prioritize’ quality issues and maintain focus on the
customer
• Everyone in the organization should be clear on what ‘quality’ means to the end-user
‘Good code’ is code that works, that is bug-free, and is readable and maintainable. Most
organizations have coding ‘standards’ that all developers are supposed to adhere to, but
everyone has different ideas about what’s best, or what is too many or too few rules.
There are a lot of tools like traceability matrix which ensures the requirements are
mapped to the test cases. And when the execution of all test cases finishes with success, it
indicates that the code has met the requirement.
Q44. What are the cases when you’ll consider to choose automated testing over manual
testing?
Automated testing can be considered over manual testing during the following situations:
Every high-functioning organization has a “master plan” that details how they are
supposed to operate and accomplish tasks. Software development and testing are no
different. Software configuration management (SCM) is a set of processes, policies, and
tools that organize, control, coordinate, and track:
code
documentation
problems
change requests
In system testing, all the components of the software are tested as a whole in order to
ensure that the overall product meets the requirements specified. So, no. The system
testing must start only if all units are in place and are working properly. System testing
usually happens before the UAT (User Acceptance Testing).
Q47. What are some best practices that you should follow when writing test cases?
Few guidelines that you need to follow while writing test cases are:
Prioritize which test cases to write based on the project timelines and the risk
factors of your application.
Remember the 80/20 rule. To achieve the best coverage, 20% of your tests should
cover 80% of your application.
Don’t try to test cases in one attempt instead improvise them as you progress.
List down your test cases and classify them based on business scenarios and
functionality.
Make sure test cases are modular and test case steps are as granular as possible.
Write test cases in such a way that others can understand them easily & modify if
required.
Always keep end-users’ requirements in the back of your mind because ultimately
the software designed is for the customer
Actively use a test management tool to manage stable release cycle.
Monitor your test cases regularly. Write unique test cases and remove irrelevant &
duplicate test cases.
Q48. Why is it that the boundary value analysis provides good test cases?
The reason why boundary value analysis provides good test cases is that usually, a greater
number of errors occur at the boundaries rather than in the center of the input domain
for a test.
In boundary value analysis technique test cases are designed to include values at the
boundaries. If the input is within the boundary value, it is considered ‘Positive testing.’ If
the input is outside of the boundary value, it is considered ‘Negative testing.’ It includes
maximum, minimum, inside or outside edge, typical values or error values.
Let’s suppose you are testing for an input box that accepts numbers from ’01 to 10′.
Using the boundary value analysis we can define three classes of test cases:
Test cases with test data exactly as the input boundaries of input: 1 and 10 (in this case)
Test data with values just above the extreme edges of input domains: 2 and 11
It is impossible to build a software product which is 100% bug-free. You can just minimize
the error, flaw, failure or fault in a computer program or system that causes it to produce
an incorrect or unexpected result.
Here are the two principal reasons that make it impossible to test a program entirely.
A software program might require too many inputs, too many outputs, and too many path
combinations to test.
Automation testing isn’t a replacement for manual testing. No matter how good
automated tests are, you cannot automate everything. Manual tests play an important
role in software development and come in handy whenever you have a case where you
cannot use automation. Automated and manual testing each have their own strengths and
weaknesses. Manual testing helps us to understand the entire problem and explore other
angles of tests with more flexibility. On the other hand, automated testing helps save time
in the long run by accomplishing a large number of surface-level tests in a short time.