0% found this document useful (0 votes)
5 views19 pages

Software Testing Exam

Uploaded by

Manishkumar Rai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views19 pages

Software Testing Exam

Uploaded by

Manishkumar Rai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 19

Q.1) What is software. Characteristics and classifications?

Software is defined as a collection of programs, documentation and operating procedures. The


Institute of Electrical and Electronic Engineers (IEEE) defines software as a 'collection of computer
programs, procedures, rules and associated documentation and data.

Software controls, integrates, and manages the hardware components of a computer system. It also
instructs the computer what needs to be done to perform a specific task and how it is to be done.
For example, software instructs the hardware how to print a document, take input from the user, and
display the output.

Computer works only in response to instructions provided externally. Usually, the instructions to
perform some intended tasks are organized into a program using a programming language like C, C+
+, Java, etc., and submitted to computer. Computer interprets and executes these instructions and
provides response to the user accordingly. A set of programs intended to provide users with a set of
interrelated functionalities is known as a software package. For example, an accounting software
package such as Tally provides users the functionality to perform accounting-related activities.are
involved with the software in different ways. For example, users want the software to perform
according to their requirements. Similarly, developers involved in designing, coding, and
maintenance of the software evaluate the software by looking at its internal characteristics, before
delivering it to the user. Software characteristics are classified into six major components.

• Functionality: Refers to the degree of performance of the software against its intended purpose.

• Reliability: Refers to the ability of the software to provide desired functionality under the given
conditions.

• Usability: Refers to the extent to which the software can be used with ease.

• Efficiency: Refers to the ability of the software to use system resources in the most effective and
efficient manner.

• Maintainability: Refers to the ease with which the modifications can be made in a software system
to extend its functionality, improve its performance, or correct errors.

• Portability: Refers to the ease with which software developers can transfer software from one
platform to another, without (or with minimum) changes. In simple terms, it refers to the ability of
software to function properly on different hardware and software platforms without making any
changes in it.

In addition to the above mentioned characteristics, robustness and integrity are also important.
Robustness refers to the degree to which the software can keep on functioning in spite of being
provided with invalid data while integrity refers to the degree to which unauthorized access to the
software or data can be prevented. Classification:-

Software can be applied in countless fields such as business, education, social sector, and other
fields. It is designed to suit some specific goals such as data processing, information sharing,
communication, and so on. It is classified according to the range of potential of applications. These
classifications are listed below.

•System Software:- class of software manages and controls the internal operations of a computer
system. It is a set of programs, which is responsible for using computer resources effectively and
efficiently. For example, an operating system is a system software, which controls the hardware,
manages memory and multitasking functions, and acts as an interface between application programs
and the computer.

.Real time Software :-events as they occur. Generally, a real-time system guarantees a response to an
external event within a specified period of time. An example of real-time software is the software
used for weather forecasting that collects and processes parameters like temperature and humidity
from the external environment to forecast the weather. Most of the defense organizations all over
the world use real-time software to control their military hardware.

• Business software

This class of software is widely used in areas where management and control of financial activities is
of most importance. The fundamental component of a business system comprises payroll, inventory,
and accounting software that permit the user to access relevant data from the database. These
activities are usually performed with the help of specialized business software that facilitates
efficient framework in business operations and in management decisions.

• Engineering and scientific software

This class of software has emerged as a powerful tool in the research and development of next
generation technology. Applications such as the study of celestial bodies, under-surface activities,
and programming of an orbital path for space shuttles are heavily dependent on engineering and
scientific software. This software is designed to perform precise calculations on complex numerical
data that are obtained during real time environment.

• Artificial intelligence (AI) software

This class of software is used where the problem-solving technique is non-algorithmic in nature. The
solutions of such problems are generally non-agreeable to computation or straightforward analysis.
Instead, these problems require specific problem-solving strategies that include expert system,
pattern recognition, and game-playing techniques. In addition, they involve different kinds of search
techniques which include the use of heuristics. The role of artificial intelligence software is to add
certain degrees of intelligence to the mechanical hardware in order to get the desired work done in
an agile manner.

• Web-based software

This class of software acts as an interface between the user and the Internet. Data on the Internet is
in the form of text, audio, or video format, linked with hyperlinks. Web browser is software that
retrieves instructions written in special scripting languages such as CGI or ASP.

•Personal Computer Software-

This class of software is used for both official and personal use. The personal computersoftware
market has grown over from normal text editor to word processor and from simple paintbrush to
advanced image-editing software. This software is used predominantly in almost every field, whether
it is database management system, financial accounting package, or multimedia-based software. It
has emerged as a versatile tool for routine applications.
Q.2) Software Development Life Cycle (SLDC)?

SDLC is a process that creates a structure of development of software. There are different phases
within SDLC, and each phase has its own different activity. It makes development team able to
design, create and deliver a high-quality product.

SDLC describes various phases of software development and the order of execution of each phase.
Each phase requires deliverable from the previous phase in a life cycle of software development.
Requirements are translated into design, design into development and development into testing,
after testing it is given to the client.

• Requirement Phase

• Design Phase

• Build /Development Phase •Testing Phase

• Deployment/ Deliver Phase •Maintenance

1. Requirement Phase

This is the most crucial phase of software development life cycle for the developing team as well as
for the project manager. During this phase, the client states requirements, specifications,
expectations and any other special requirement related to the product or software. All these are
gathered by the business manager or project manager or analyst of the service providing company.
Requirement includes how the product will be used and who will use the product to determine the
load of operations. All information gathered from this phase is critical to developing the product as
per the customer requirements.

2. Design Phase

Design phase includes a detailed analysis of new software according to the requirement phase. This
is the high priority phase in the development life cycle of a system because the logical designing of
the system is converted into physical designing. The output of requirement phase is a collection of
things that are required and design phase gives the way to accomplish these requirements. The
decision of all required essential tools such as programming language like Java, .NET, PHP; database
like Oracle, MySQL, a combination of hardware and software to provide a platform on which
software can run without any problem is taken in this phase.There are several techniques and tools
such as data flow diagrams, flowcharts, decision tables and decision trees, Data dictionary, and the
structured dictionary are used for describing the system design.

3.Build Development Phase-

After the successful completion of requirement and design phase,the next step is to implement the
design into the development of a software system. In this phase, work is divided into small units, and
coding starts by the team of developers according to the design discussed in the previous phase and
according to the requirements of client discussed in requirement phase to produce the desired
result. Front- end developers develop easy and attractive GUI and necessary interfaces to interact
with back-end operations and back-end developers do back-end coding according to the required
operations.

4.Testing Phase- Testing is a last step of completing software system.In this phase,after getting the
developed GUI and back-end combination, it is tested against the requirements stated in the
requirement phase. Testing determines whether the software is actually giving the result as per the
requirements addressed in the requirement phase or not. Development team makes a test plan to
start the test. This test plan includes all types of essential testing such as integration testing, unit
testing, acceptance testing, and system testing. Non-functional testing is also done in this phase. If
there are any defects in the software, or it is not working as per expectations, then testing team gives
information to the development team in detail about the issue. If it is a valid defect or worth to sort
out, it will be fixed and development team replaces it with the new one and it also needs to be
verified.

5. Deployment/ Deliver Phase-

When software testing is completed with satisfying result and there are no remaining issues in the
working of software, it is delivered to the customer for their use. As soon as customers receive the
product, they are recommended first to do the beta testing. In beta testing, customer can require any
changes which are not present in the software but mentioned in the requirement document or any
other GUI changes to make it more user-friendly. Besides this, if any type of defect is encountered
while a customer using the software; it will be informed to the development team of that particular
software to sort out the problem. If it is a severe issue, then the development team solves it in a
short time otherwise, if it is less severe, then it will wait for the next version. After the solution of all
type of bugs and changes, software finally deployed to the end user.

6. Maintenance-

The maintenance phase is the last and long-lasting phase of SDLC because it is the process which
continues till the software's life cycle comes to an end. When a customer starts using software, then
actual problems start to occur, and at that time there's a need to solve these problems. This phase
also includes making changes in hardware and software to maintain its operational effectiveness like
to improve its performance, enhance security features and according to customer's requirements
with upcoming time. This process to take care of product time to time is called maintenance.

Q.3) Why is Software Testing Important?

Testing is important because software bugs could be expensive or even dangerous. Software bugs
can potentially cause monetary and human loss, and history is full of such examples.

• In April 2015, Bloomberg terminal in London crashed due to software glitch affected more than
300,000 traders on financial markets. It forced the government to postpone a 3bn pound debt sale.

• Nissan cars have to recall over 1 million cars from the market due to software failure in the airbag
sensory detectors. There has been reported two accidents due to this software failure.

• Starbucks was forced to close about 60 percent of stores in the U.S and Canada due to software
failure in its POS system. At one point store served coffee for free as they unable to process the
transaction.

• Some of the Amazon’s third party retailers saw their product price is reduced to 1p due to a
software glitch. They were left with heavy losses.

• Vulnerability in Window 10. This bug enables users to escape from security sandboxes through a •
In 2015 fighter plane F-35 fell victim to a software bug, making it unable to detect targets correctly
• In 2015 fighter plane F-35 fell victim to a software bug, making it unable to detect targets correctly.

• China Airlines Airbus A300 crashed due to a software bug on April 26, 1994, killing 264 innocent
live

Q.4) What are Different Goals of Software Testing ?

Software testing is the mechanism of knowing that what’s the expected result and what the actual
result a software project or product has given.

You simply say that software testing is nothing but validation and verification. Main goal of software
testing is to ensure that software should always be defect free and easily maintained.

Important Goals -

1. Always identifying the bugs as early as possible.

2. Preventing the bugs in a project and product.

3. Check whether the customer requirements criterion is met or not.

4. And finally main goal of testing to measure the quality of the product and project.

Some main Goals of Software Testing :-

1. Short-term or immediate goals of software testing-

These goals are the immediate results after performing testing. These goals even may be set in the
individual phases of SDLC. Some of them are completely discussed below:

a) Bug discovery

The immediate goal about software testing is to find errors at any stage of software development.
More the bugs discovered at early stage, better will be the success rate about software testing.

b) Bug prevention

It is the consequent action of bug discovery. From the behavior and analysis of bugs discovered,
everyone in the software development team gets to learn how to code so that bugs discovered
should not be repeated in later stages or future projects.

Though errors always cannot be prevented to zero, they can be minimized. In this sense prevention
of a bug is a superior goal of testing.

2. Long-term goals of software testing- These goals affect the product quality in the deep run, when
one cycle of the SDLC is over. Some of them are completely discussed below:

a) Quality
Since software is also a product, so its quality is primary from the user’s point of view. Thorough
testing ensures superior quality.

Quality depends on various factors, such as correctness, integrity, efficiency, and reliability. So to
achieve quality you have to achieve all the above mentioned factors of Quality.

b) Customer satisfaction

From the user’s perspective, the prime goal of software testing is customer satisfaction only. If we
want the client and customer to be satisfied with the software product, then testing should be
complete and thorough. A complete testing process achieves reliability, reliability enhances the
quality, and quality in turn, increases the customer satisfaction.

3. Post-implementation goals of software testing-

These goals are become essential after the product is released. Some of them are completely
discussed below:

a) Reduced maintenance cost-

The maintenance cost about any software product is not its physical cost, as effective software does
not wear out. The only maintenance cost in a software product is its failure due to errors. Post-
release errors are always costlier to fix, as they are difficult to detect. Thus, if testing has been done
rigorously and effectively, then the chances about failure are minimized and as a result of this
maintenance cost is reduced.

b) Improved software testing process -A testing process for one project may not be blooming
successful and there may be area for improvement. Therefore, the bug history and post-
implementation results can be analyzed to find out snags in the present testing process, which can
be determine in future projects. Thus, the long-term post-implementation goal is to improve the
testing process for future projects.

Q.5) Software Testing Life Cycle (STLC)?

STLC Is the testing process which is executed insystematic and planned manner. In STLC process,
different activities are carried out to improve the quality of the product. Let’s quickly see what all
stages

are involved in typical Software Testing Life Cycle (STLC).

Following steps are involved in Software Testing Life Cycle (STLC). Each step is having its own Entry
Criteria and deliverable.

1. Requirements phase 2.Planning Phase

3. Analysis phase

4. Design Phase

5. Implementation Phase 6.Execution Phase


7. Conclusion Phase

8. Closure Phase

Ideally, the next step is based on previous step or we can say next step cannot be started unless and
until previous step is completed. It is possible in the ideal situation, but practically it is not always
true.

•Requirement Phase-

During this phase of STLC, analyze and study the requirements. Have brain storming sessions with
other teams and try to find out whether the requirements feature is not testable, communicate it
during this phase so that the mitigation strategy can be planned.

•Planning Phase-

Test Planning is most important phase of Software testing life cycle where all testing strategy is
defined. This phase also called as Test Strategy phase. In this phase typically Test Manager involved
to determine the effort and cost estimates for entire project. This phase will be kicked off once the
requirement gathering phase is completed & based on the requirement analysis, start preparing the
Test Plan. The Result of Test Planning phase will be Test Plan or Test strategy & Testing Effort
estimation documents. Once test planning phase is completed the QA team can start with test cases
development activity.

•Analysis Phase-

This STLC phase defines “WHAT” to be tested. We basically identify the test conditions through the
requirements document, product risks and other test basis. The test condition should be traceable
back to the requirement. There are various factors which effect the identification of test conditions:

– Levels and depth of testing

– Complexity of the product

– Product and project risks

– Software development life cycle involved.

-Test management.

– Skills and knowledge of the team.

– Availability of the stakeholders.

We should try to write down the test conditions in a detailed way. For example, for an e-commerce
web application, you can have a test condition as “User should be able to make a payment”. Or you
can detail it out by saying “User should be able to make payment through NEFT, debit card and credit
card”. The most important advantage of writing the detailed test condition is that it increases the test
coverage, since the test cases will be written on the basis of the test condition, these details will
trigger to write more detailed test cases which will eventually increase the coverage. Also identify
the exit criteria of the testing, i.e. determine some conditions when you will stop the testing.

•Design Phase-

This phase defines “HOW” to test. This phase involves the following tasks:
– Detail the test condition. Break down the test conditions into multiple sub conditions to increase
coverage.

– Identify and get the test data

– Identify and set up the test environment.

– Create the requirement traceability metrics

– Create the test coverage metrics.

•Implementation Phase-

The major task in this STLC phase is of creation of the detailed test cases. Prioritize the test cases also
identify which test case will become part of the regression suite. Before finalizing the test case, it is
important to carry out the review to ensure the correctness of the test cases. Also don’t forget to
take the sign off of the test cases before actual execution starts. If your project involves automation,
identify the candidate test cases for automation and proceed for scripting the test cases. Don’t forget
to review them!

•Execution Phase-

As the name suggests, this is the Software Testing Life Cycle phase where the actual execution takes
place. But before you start your execution, make sure that your entry criterion is met. Execute the
test cases, log defects in case of any inconsistency. Simultaneously fill your traceability metrics to
track your progress.

•Conclusion Phase-

This STLC phase concentrates on the exit criteria and reporting. Depending on your project and
stakeholders choice, you can decide on reporting whether you want to send out a daily report or
weekly report etc. There are different types of reports (DSR – Daily status report, WSR – Weekly
status reports) which you can send, but the important point is, the content of the report changes and
depends upon whom you are sending your reports. If Project managers belong to testing background
then they are more interested in the technical aspect of the project, so include the technical things in
your report (number of test cases passed, failed, defects raised, severity 1 defects etc.). But if you are
reporting to upper stakeholders, they might not be interested in the technical things so report them
about the risks that have been mitigated through the testing.

• Closure Phase -

Call out the testing team member meeting & evaluate cycle completion criteria based on Test
coverage, Quality, Cost, Time, Critical Business Objectives, and Software. Discuss what all went good,
which area needs to be improved& taking the lessons from current STLC as input to upcoming test
cycles, which will help to improve bottleneck in the STLC process. Test case & bug report will analyze
to find out the defect distribution by type and severity. Once test cycle is complete then test closure
report & Test metrics will be prepared. Test the result analysis to find out the defect distribution by
type and severity.
Q.6) Unit Testing ?

UNIT testing is defined as a type of software testing where individual units/ components of a
software are tested.

Unit testing of software applications is done during the development (coding) of an application. The
objective of Unit Testing is to isolate a section of code and verify its correctness. In procedural
programming, a unit may be an individual function or procedure. Unit Testing is usually performed by
the developer.

In SDLC, STLC, V Model, Unit testing is first level of testing done before integration testing. Unit
testing is a White Box testing technique that is usually performed by the developer. Though, in a
practical world due to time crunch or reluctance of developers to tests, QA engineers also do unit
testing.

Why Unit Testing? -

Sometimes software developers attempt to save time by doing minimal unit testing. This is a myth
because skipping on unit testing leads to higher Defect fixing costs during System Testing, Integration
Testing and even Beta Testing after the application is completed. Proper unit testing done during the
development stage saves both time and money in the end. Here, are key reasons to perform unit
testing.

• Unit Tests fix bug early in development cycle and save costs.

• It helps understand the developers the code base and enable them to make changes quickly

• Good unit tests serve as project documentation

• Unit tests help with code re-use. Migrate both your code andyour tests to your new project. Tweak
the code till the tests run again.

Unit Testing is of two types:-

1) Manual:- Manual Testing is a process of finding out the defects or bugs in a software program. In
this method the tester plays an important role of end user and verifies that all the features of the
application are working correctly. The tester manually executes test cases without using any
automation tools. The tester prepares a test plan document which describes the detailed and
systematic approach to testing of software applications. Test cases are planned to cover almost 100%
of the software application. As manual testing involves complete test cases it is a time consuming
test.

The differences between actual and desired results are treated as defects. The defects are then fixed
by the developer of software application. The tester retests the defects to ensure that defects are
fixed. The goal of manual testing is to ensure that application is defect & error free and is working
fine to provide good quality work to customers.

2) Automated approach-

A developer writes a section of code in the application just to test the function. They would later
comment out and finally remove the test code when the application is deployed.A developer could
also isolate the function to test it more rigorously. This is a more thorough unit testing practice that
involves copy and paste of code to its own testing environment than its natural environment.
Isolating the code helps in revealing unnecessary dependencies between the code being tested and
other units or data spaces in the product. These dependencies can then be eliminated.

A coder generally uses a Unit Test Framework to develop automated test cases. Using an automation
framework, the developer codes criteria into the test to verify the correctness of the code. During
execution of the test cases, the framework logs failing test cases. Many frameworks will also
automatically flag and report, in summary, these failed test cases. Depending on the severity of a
failure, the framework may halt subsequent testing.

Q.7

Integration Testing ?

Integration Testing is defined as a type of testing where software modules are integrated logically
and tested as a group. A typical software project consists of multiple software modules, coded by
different programmers. Integration Testing focuses on checking data communication amongst these
modules. Hence it is also termed as

'I & T' (Integration and Testing), 'String Testing' and sometimes 'Thread Testing'.Although each
software module is unit tested, defects still exist for various reasons like

• A Module, in general, is designed by an individual software developer whose understanding and


programming logic may differ from other programmers. Integration Testing becomes necessary to
verify the software modules work in unity

• At the time of module development, there are wide chances of change in requirements by the
clients. These new requirements may not be unit tested and hence system integration Testing
becomes necessary.

• Interfaces of the software modules with the database could be erroneous

• External Hardware interfaces, if any, could be erroneous.

• Inadequate exception handling could cause issues.

*Approaches or integration:-

Software Engineering defines variety of strategies to execute Integration testing, viz.

• Big Bang Approach

• Incremental Approach: which is further divided into the following • Top Down Approach

• Bottom Up Approach

• Sandwich Approach - Combination of Top Down and Bottom Up

(*)Botton up and Top Down Integration?

1) In the bottom-up strategy, each module at lower levels is tested with higher modules until all
modules are tested. It takes help of Drivers for testing.
•Advantages-

• No time is wasted waiting for all modules to be developed unlike Big- bàng approach

• Fault localisation is easier.

•Disadvantages-

• Critical modules (at the top level of software architecture) which control the flow of application are
tested last and may be prone to defects.

• An early prototype is not possible

2) Top-down intregration -

In Top to down approach, testing takes place from top to down following the control flow of the
software system.

Takes help of stubs for testing.

Q.8) Validation testing ?Alpha and beta testing ?

Validation testing begins at the culmination (climax) of integration testing when individual
components have been exercised software is completely assembled as package and interfacing error
have been uncovered and correct. Testing focuses on the user visible action and user recognizable
output from system. Validation can be defined as that of the validation succeeds when software
functions in a manner that can be reasonably expected by the customer. These are known all about
the validation testing.

There are some validation criteria these criteria are as follow-

1) Software validation is achieved through the series of a test that demonstrate conformity with
some requirements.

2) A test plan outlines the classes of the test to be conducted and test procedure defines the specific
test cases.

3) Both the plan and procedure are designed to ensure that all function requirements should cover.
All behavioral characteristics are achieved and all the performance requirements are attained,
document should correct and usability and other requirement are met.

4) After the each validation test case has been conducted one of the two possible condition are exists

a) The function or performance behavior conforms to specifications and is accepted

b) Deviation from specification is uncovered and deficiency list is created

These are all the some validation criteria for implementing the validation testing in it.

*Configuration review-
An important element of validation process intent of the review is to ensure that all elements of the
software configuration have been properly developed and cataloged with the configuration review of
the validation testing. And it is sometimes called as the audit. These are all about the configuration
review and the validation testing.

(*)Alpha and beta testing :-

It is virtually impossible for a software developer to forces how the customer will really use program.
Instruction for use may be regularly used. When customer software is build for a one customer a
series of a acceptance test are conducted to enable the customer to validate the all requirement.
Now Acceptance test can range from an informal test drive to plan a and systematically executed
series of test. If software is developed as a product to be used by many customers it is impractical to
perform formal acceptance test for everyone. Most of the software product builders use a process
called as a alpha and the beta testing to uncover error that only end user seems able to find. These
are known all about the how to do the alpha and beta testing.

Now how it separate from each other these are as follow -

1)Alpha Testing :-

• Alpha testing is a conducted at a developer site by end user.

• Software is used in a natural setting with the developer “looking over the shoulder” of a typically
user and recording error.

• Alpha test are conducted in controlled environment.

2)Best testing:-

•It is a conducted at end user site.

•Developed is generally not present.

•Beta test is “live” application of software.

• The end user records all problems that are encountered during beta testing and report these to
developer at regular intervals which result in that problem reported during beta testing, software
engineer makes the modification and then prepare for release of the software product to entire
custom base.
Q.9) Debugging ?

Debugging is the process of fixing a bug in the software .It can be defined as the identifying,
analyzing and removing errors. This activity begins after the software fails to execute properly and
concludes by solving the problem and successfully testing the software. It is considered to be an
extremely complex and tedious task because errors need to be resolved at all stages of debugging.

Debugging Strategies:-

1. Study the system for the larger duration in order to understand the system. It helps debugger to
construct different representations of systems to be debugging depends on the need. Study of the
system is also done actively to find recent changes made to the software.

2. Backwards analysis of the problem which involves tracing the program backward from the location
of failure message in order to identify the region of faulty code. A detailed study of the region is
conducting to find the cause of defects.

3. Forward analysis of the program involves tracing the program forwards using breakpoints or print
statements at different points in the program and studying the results. The region where the wrong
outputs are obtained is the region that needs to be focused to find the defect.

4. Using the past experience of the software debug the software with similar problems in nature. The
success of this approach depends on the expertise of the debugger.

Q.10) What is Basis Path Testing ?

The basis path testing is same, but it is based on a White Box Testing method, that defines test cases
based on the flows or logical path that can be taken through the program. In software engineering,
Basis path testing involves execution of all possible blocks in a program and achieves maximum path
coverage with the least number of test cases. It is a hybrid of branch testing and path testing
methods.

The objective behind basis path in software testing is that it defines the number of independent
paths, thus the number of test cases needed can be defined explicitly (maximizes the coverage of
each test case).

Here we will take a simple example, to get a better idea what is basis path testing include

In the above example, we can see there are few conditional statements that is executed depending
on what condition it suffice. Here there are 3 paths or condition that needs to be tested to get the
output

Steps for Basis Path testing :-

The basic steps involved in basis path testing include

• Draw a control graph (to determine different program paths)

• Calculate Cyclomatic complexity (metrics to determine the number of independent paths)

• Find a basis set of paths


• Generate test cases to exercise each path

Advantages:-

• It helps to reduce the redundant tests

• It focuses attention on program logic

• It helps facilitates analytical versus arbitrary case design

• Test cases which exercise basis set will execute every statement in a program at least once.

Q.11) What is Risk ?

“Risk is future uncertain events with a protability of occurrence and a potential for loss”

Risk identification and management are the main concerns in every software project. Effective
analysis of software risks will help to effective planning and assignments of work.

In this article, I will cover what are the “types of risks”. In the next articles, I will try to focus on risk
identification, risk management, and mitigation.

Risks are identified, classified and managed before actual execution of the program. These risks are
classified in different categories.

Categories of Risks:-

1)Schedule Risk:-Project schedule get slip when project tasks and schedule risks are not addressed
properly .Schedule risks mainly affect a project and finally on company economy and may lead to
project failure.

2)Budget Risks:-

• Wrong budget estimation. •Cost overruns

• Project scope expansion

3)Operational Risks:-

Risks of loss due to improper process implementation failed system or some external events risks.

Causes of Operational risks:-

• Failure to address priority conflicts

• Failure to resolve the responsibilities

4)Technical Risks:-

Technical risks generally lead to failure of functionality and performance.

Causes of technical risks are:-

• Continuous changing requirements

• No advanced technology available or the existing technology is in initial stages.

5)Progammatic Risks:-
These are the external risks beyond the operational limits. These are all uncertain risks are outside
the control of the program.

These external events can be-

• Running out of the fund.

• Market development

• Changing customer product strategy and priority.

6)known risks:-

Known risks are those that can be uncovered after careful evaluation of the project plan, the
business and technical environment in which the project is being developed, and other reliable
information sources.

7)Predictable risks :-

Predictable risks are extrapolated from past project experience. (Staff turnover, poor Communication
with the costumer, etc.)

8)Unpredictable risks:-

Unpredictable risks are the joker in the deck. They can do occur, but they are extremely difficult to
identify in advance.

Q.12) Black Box Testing ?

It is also known as Behavioural Testing.It is a software testing method in which the internal
structure/design/implementation of the item being tested is not known to the tester. These tests can
be functional or non-functional, though

usually functional.

This method is named so because the software program, in the eyes of the tester, is like a black box;
inside which one cannot see. This method attempts to find errors in the following categories:

• Incorrect or missing functions

• Interface errors

• Errors in data structures or external database access

• Behavior or performance errors

• Initialization and termination errors

Black Box testing method is applicable to the following levels of software testing:

1. Integration Testing

2. System Testing

3. Acceptance Testing

method for black box testing.


(*)Boundary Value Analysis(BVA):-

Boundary Valuee Analysis is the most commonly used test case design method for black bo
testing .As all we know the most of errors occurs at boundary of the input values. This is one of the
techniques used to find the error in the boundaries of input values rather than the center of the
input value range.

2) Equivalence Class Partitioning:-

The equivalence class partition is the black box test case design technique used for writing test cases.
This approach is use to reduce huge set of possible inputs to small but equally effective inputs. This is
done by dividing inputs into the classes and gets one value from each class. Such method is used
when exhaustive testing is most wanted & to avoid the redundancy of inputs.In the equivalence
partitioning input are divided based on the input values:

• If input value is Range, then we one valid equivalence class & two invalid equivalence classes.

• If input value is specific set, then we one valid equivalence class & one invalid equivalence classes.

• If input value is number, then we one valid equivalence class & two invalid equivalence classes.

• If input value is Boolean, then we one valid equivalence class & one invalid equivalence classes.

Q.13) White Box Testing ?

White box testing (also known as Clear Box testing,Open. box Testing ,Glass Box Testing, Transparent
Box Testing, Code-Based Testing or Structural Testing) is a software testing method in which the
internal structure/design/implementation of the item being tested is known to the tester. The tester
chooses inputs to exercise paths through the code and determines the appropriate outputs.
Programming know-how and the implementation knowledge is essential. White box testing is testing
beyond the user interface and into the nitty-gritty of a system.

This method is named so because the software program, in the eyes of the tester, is like a
white/transparent box; inside which one clearly sees.

Example:-

A tester, usually a developer as well, studies the implementation code of a certain field on a
webpage, determines all legal (valid and invalid) AND illegal inputs and verifies the outputs against
the expected outcomes, which is also determined by studying the implementation code.

White Box Testing is like the work of a mechanic who examines the engine to see why the car is not
moving.

White Box Testing method is applicable to the following levels of software testing:

• Unit Testing: For testing paths within a unit.

• Integration Testing: For testing paths between units.


• System Testing: For testing paths between subsystems. However, it is mainly applied to Unit
Testing.

Advantages:-

• Testing can be commenced at an earlier stage. One need not wait for the GUI to be available.

• Testing is more thorough, with the possibility of covering most paths.

Disadvantages:-

• Since tests can be very complex, highly skilled resources are required, with a thorough knowledge
of programming and implementation.

• Test script maintenance can be a burden if the implementation changes too frequently.

• Since this method of testing is closely tied to the application being tested, tools to cater to every
kind of implementation/platform may not be readily available.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy