0% found this document useful (0 votes)
88 views

Software Testing Is A Process of Executing A Program or Application With The Intent of Finding

1. Software testing is a process of validating and verifying that a software program meets requirements and finds bugs. There are many types of testing like unit, integration, user acceptance, functional, usability, performance, and regression testing. 2. Software quality is defined by desirable attributes like functionality, reliability, performance efficiency, security, and maintainability. 3. While independent testers are not always needed, they are usually required for non-trivial projects to provide specialized testing skills and different perspectives from developers.

Uploaded by

malik Arsh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
88 views

Software Testing Is A Process of Executing A Program or Application With The Intent of Finding

1. Software testing is a process of validating and verifying that a software program meets requirements and finds bugs. There are many types of testing like unit, integration, user acceptance, functional, usability, performance, and regression testing. 2. Software quality is defined by desirable attributes like functionality, reliability, performance efficiency, security, and maintainability. 3. While independent testers are not always needed, they are usually required for non-trivial projects to provide specialized testing skills and different perspectives from developers.

Uploaded by

malik Arsh
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Question#01

1. What is ‘software testing’?


Software testing is a process of executing a program or application with the intent of finding
the software bugs. It can also be stated as the process of validating and verifying that a software program
or application or product: Meets the business and technical requirements that guided it's design and
development.
Question#02:

2. What kind of testing should we consider?


3. There are so many different types of testing that it would be difficult to come up with a
comprehensive list.  Additionally, each type of testing typically has a number of variants that
have been developed based on the team creating the testing strategy.  However, the most common
types of testing used by a majority of projects are:
4. Unit Testing (Component Testing) – refers to the testing of individual software components as
they are completed.  This type of testing is typically completed by the development team.
5. Integration Testing – refers to the testing of components as they are combined or integrated
together.  This ensures that each component that has been tested on its own operates correctly
when it is used in conjunction with the other components that it is designed to interact with.  This
is particularly important for client/server and service oriented architecture systems.
6. User Acceptance Testing – refers to testing that is performed by the user or end customer of the
system as a condition of approval.  User Acceptance Testing is where the user/client ensures that
the final application or product meets the agreed upon requirements set forth by the Business
Requirements Document.  This is also why traceability of requirements throughout the entire
Analysis, Development, and Testing lifecycle is so important.
7. Functional Testing (Black Box Testing) – refers to testing the features and behavior of an
application to ensure that it coincides with the functional software specifications provided.  This
type of testing is also referred to as black box testing because it completely ignores the internal
workings of the program and focuses only on the outputs as a result of the specified inputs and
execution steps.
8. Usability Testing – refers to testing the ease in which users can learn the application, as well as
the users’ efficiency and productivity while using the application.
9. Performance Testing (Load Testing, Stress Testing) – refers to testing performed to evaluate
whether the system meets the documented performance requirements.  Performance Testing
ensures that the system will support a specified number of users while still maintaining specific
service level agreements (SLAs) for page load times and service response times.  This type of
Performance Testing is also called Load Testing.  Additionally, during Performance Testing,
often it will be required to test the systems limits and determine the maximum number of
concurrent users that can be supported before the system fails.  This is referred to as Stress
Testing.
10. Regression Testing – refers to testing a portion of the application that has previously been tested
following a modification to ensure that the original functionality still works and behaves per the
specification.  While Regression Testing really just means to go back and retest, it typically refers
to Functional Testing.
Question#03:
What is Software ‘quality’?
Software quality is defined as a field of study and practice that describes the desirable attributes of
software products. There are two main approaches to software quality: defect management and quality
attributes.
Attributes:

1. Functional suitability
2. Reliability
3. Operability
4. Performance efficiency
5. Security
6. Compatibility
7. Maintainability
8. Transferability

Question#04:

Does every software project need testers?

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:

What is verification? And what is validation?


Verification:
Verification is the evaluation of whether or not a product, service, or system complies with a regulation,
requirement, specification, or imposed condition. It is often an internal process. 
Validation:

Validation is the assurance that a product, service, or system meets the needs of the customer and other
identified stakeholders.

Question#06:

What is Regression testing?

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:

What is a ‘test plan’? What is a ‘test case’?


Test Plan:

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:

 Scope of the project


 Goals and objectives
 Target market
 Assumptions
 Testing cycle start/end dates
 Any major roles and responsibilities/overall resources
 Testing environment
 Deliverables
 Major risks and how to handle these risks
 Defect reporting and mitigation
 Testing end date

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:

A test case is a document that lays out the following:

 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:

Why does software have bugs?

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:

How can you know when to stop testing?

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:

Software testing is very important because of the following reasons:

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

Alpha testing involves both

the white box and black box Beta testing commonly uses black box

testing. testing.

Alpha testing is performed by

testers who are usually

internal employees of the Beta testing is performed by clients who

organization. are not part of the organization.

Alpha testing is performed at Beta testing is performed at end-user of

developer’s site. the product.

Reliability and security testing

are not checked in alpha Reliability, security and robustness are

testing. checked during beta testing.

Beta testing also concentrates on the

Alpha testing ensures the quality of the product but collects users

quality of the product before input on the product and ensures that the

forwarding to beta testing. product is ready for real time users.

Alpha testing requires a Beta testing doesn’t require a testing

testing environment or a lab. environment or lab.

Alpha testing may require Beta testing requires only a few weeks of

long execution cycle. execution.

Developers can immediately Most of the issues or feedback collected

address the critical issues or from beta testing will be implemented in


ALPHA TESTING BETA TESTING

fixes in alpha testing. future versions of the product.

Question#13:

Difference between White box and black box testing?

Question#14:

What are the different phases in Software Testing?

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.

You might also like