Software Testing Is A Process of Executing A Program or Application With The Intent of Finding
Software Testing Is A Process of Executing A Program or Application With The Intent of Finding
1. Functional suitability
2. Reliability
3. Operability
4. Performance efficiency
5. Security
6. Compatibility
7. Maintainability
8. Transferability
Question#04:
While all projects will benefit from testing, some projects may not require independent test staff to
succeed.
Which projects may not need independent test staff? The answer depends on the size and context of the
project, the risks, the development methodology, the skill and experience of the developers, and other
factors. For instance, if the project is a short-term, small, low risk project, with highly experienced
programmers utilizing thorough unit testing or test-first development, then test engineers may not be
required for the project to succeed.
In some cases an IT organization may be too small or new to have a testing staff even if the situation calls
for it. In these circumstances it may be appropriate to instead use contractors or outsourcing, or adjust the
project management and development approach (by switching to more senior developers and agile test-
first development, for example). Inexperienced managers sometimes gamble on the success of a project
by skipping thorough testing or having programmers do post-development functional testing of their own
work, a decidedly high risk gamble.
For non-trivial-size projects or projects with non-trivial risks, a testing staff is usually necessary. As in
any business, the use of personnel with specialized skills enhances an organization's ability to be
successful in large, complex, or difficult tasks. It allows for both a) deeper and stronger skills and b) the
contribution of differing perspectives. For example, programmers typically have the perspective of 'what
are the technical issues in making this functionality work?'. A test engineer typically has the perspective
of 'what might go wrong with this functionality, and how can we ensure it meets expectations?'. A
technical person who can be highly effective in approaching tasks from both of those perspectives is rare,
which is why, sooner or later, organizations bring in test specialists.
Question#05:
Validation is the assurance that a product, service, or system meets the needs of the customer and other
identified stakeholders.
Question#06:
REGRESSION TESTING is defined as a type of software testing to confirm that a recent program or
code change has not adversely affected existing features.
Regression Testing is nothing but a full or partial selection of already executed test cases which are re-
executed to ensure existing functionalities work fine.
This testing is done to make sure that new code changes should not have side effects on the existing
functionalities. It ensures that the old code still works once the latest code changes are done.
Question#07:
A test plan is a comprehensive document that lays out all major activities associated with a particular
testing project. Conversely, a test case is only designed to test a particular scenario A testing plan should
include:
Essentially, a test plan is a resource for both testing teams and other teams or stakeholders. They should
be simple and concise and layout any specifics of the impending software test. For example, the test plan
might determine if tests are run on both the operating system (OS) and the edition/version or simply the
OS. Note that test plans are updated as conditions change or additional data is obtained.
Test Case:
Test data
Procedures/inputs
Scenarios
Descriptions
Testing environment
Expected results
Actual results
Test cases run a singular test scenario. As a rule, there is usually both a positive and negative test case for
each scenario.
The purpose of a test case is two-fold: It’s designed to find any errors or bugs within the
software application, and it’s also designed to show how the application should be executed if it performs
correctly. Additionally, test cases demonstrate real-world use of the product and whether it fits the
customer needs.
Question#08:
There are many reasons for Software Bugs. The most common reason is human mistakes
in software design and coding. Once you know the causes for Software Defects it will be easier for you to
take corrective actions to minimize these defects.
Question#09:
The simple answer is when the objectives you have outlined in your test plan and test strategy are met , you
will stop testing. Refer to sections like entry criteria , exit criteria , success criteria and failure criteria in
your test plan. Those will be your sign posts to determine completeness of your test cycle.
Question#10:
1. Software testing is really required to point out the defects and errors that were made during
the development phases.
o Example: Programmers may make a mistake during the implementation of the software.
There could be many reasons for this like lack of experience of the programmer, lack of
knowledge of the programming language, insufficient experience in the domain, incorrect
implementation of the algorithm due to complex logic or simply human error.
It’s essential since it makes sure that the customer finds the organization reliable and their
satisfaction in the application is maintained.
o If the customer does not find the testing organization reliable or is not satisfied with the
quality of the deliverable, then they may switch to a competitor organization.
o Sometimes contracts may also include monetary penalties with respect to the timeline and
quality of the product. In such cases, if proper software testing may also prevent
monetary losses.
It is very important to ensure the Quality of the product. Quality product delivered to the
customers helps in gaining their confidence. (Know more about Software Quality)
o As explained in the previous point, delivering good quality product on time builds the
customers confidence in the team and the organization.
Testing is necessary in order to provide the facilities to the customers like the delivery of
high quality product or software application which requires lower maintenance cost and
hence results into more accurate, consistent and reliable results.
o High quality product typically has fewer defects and requires lesser maintenance effort,
which in turn means reduced costs.
Testing is required for an effective performance of software application or product.
It’s important to ensure that the application should not result into any failures because it
can be very expensive in the future or in the later stages of the development.
o Proper testing ensures that bugs and issues are detected early in the life cycle of the
product or application.
o If defects related to requirements or design are detected late in the life cyle, it can be very
expensive to fix them since this might require redesign, re-implementation and retesting
of the application.
It’s required to stay in the business.
o Users are not inclined to use software that has bugs. They may not adopt a software if
they are not happy with the stability of the application.
o In case of a product organization or startup which has only one product, poor quality of
software may result in lack of adoption of the product and this may result in losses which
the business may not recover from.
Question#11:
What are the difference between Manual Testing and Automated Testing?
Question#12:
What is Unit Testing, System testing, Alpha testing and beta testing?
ALPHA TESTING BETA TESTING
the white box and black box Beta testing commonly uses black box
testing. testing.
Alpha testing ensures the quality of the product but collects users
quality of the product before input on the product and ensures that the
Alpha testing may require Beta testing requires only a few weeks of
Question#13:
Question#14:
There are four main stages of testing that need to be completed before a program can be cleared for use:
unit testing, integration testing, system testing, and acceptance testing.
Unit Testing
During this first round of testing, the program is submitted to assessments that focus on specific units or
components of the software to determine whether each one is fully functional. The main aim of this
endeavor is to determine whether the application functions as designed. In this phase, a unit can refer to
a function, individual program or even a procedure, and a White-box Testing method is usually used
to get the job done. One of the biggest benefits of this testing phase is that it can be run every time a piece
of code is changed, allowing issues to be resolved as quickly as possible. It’s quite common for software
developers to perform unit tests before delivering software to testers for formal testing.
Integration Testing
Integration testing allows individuals the opportunity to combine all of the units within a program and test
them as a group. This testing level is designed to find interface defects between the modules/functions.
This is particularly beneficial because it determines how efficiently the units are running together. Keep
in mind that no matter how efficiently each unit is running, if they aren’t properly integrated, it will affect
the functionality of the software program. In order to run these types of tests, individuals can make use of
various testing methods, but the specific method that will be used to get the job done will depend greatly
on the way in which the units are defined.
System Testing
System testing is the first level in which the complete application is tested as a whole. The goal at this
level is to evaluate whether the system has complied with all of the outlined requirements and to see that
it meets Quality Standards. System testing is undertaken by independent testers who haven’t played a role
in developing the program. This testing is performed in an environment that closely mirrors production.
System Testing is very important because it verifies that the application meets the technical, functional,
and business requirements that were set by the customer.
Acceptance Testing
The final level, Acceptance testing (or User Acceptance Testing), is conducted to determine whether the
system is ready for release. During the Software development life cycle, requirements changes can
sometimes be misinterpreted in a fashion that does not meet the intended needs of the users. During this
final phase, the user will test the system to find out whether the application meets their business’ needs.
Once this process has been completed and the software has passed, the program will then be delivered to
production.