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

SDL Assignment 2

The document is an assignment on software testing techniques. It begins by defining and comparing alpha and beta testing. It then provides a detailed description of white box testing, including its techniques like code coverage analysis and types of white box testing such as unit testing. It also defines software quality and explains McCall's quality factors - correctness, reliability, efficiency, integrity, usability, maintainability, testability, flexibility, portability, reusability and interoperability. Finally, it discusses change control and version control activities in software configuration management.

Uploaded by

Farooq Chaudhary
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)
96 views

SDL Assignment 2

The document is an assignment on software testing techniques. It begins by defining and comparing alpha and beta testing. It then provides a detailed description of white box testing, including its techniques like code coverage analysis and types of white box testing such as unit testing. It also defines software quality and explains McCall's quality factors - correctness, reliability, efficiency, integrity, usability, maintainability, testability, flexibility, portability, reusability and interoperability. Finally, it discusses change control and version control activities in software configuration management.

Uploaded by

Farooq Chaudhary
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/ 13

Name: Farooq Chaudhary

TE IT Roll No: 01

Assignment No. 2 (SDL)

1. Compare alpha and beta testing.

2. Describe in detail white box testing techniques.

WHITE BOX TESTING is testing of a software solution's internal structure, design, and
coding. In this type of testing, the code is visible to the tester. It focuses primarily on
verifying the flow of inputs and outputs through the application, improving design and
usability, strengthening security. White box testing is also known as Clear Box testing, Open
Box testing, Structural testing, Transparent Box testing, Code-Based testing, and Glass Box
testing. It is usually performed by developers.

It is one of two parts of the Box Testing approach to software testing. Its counterpart,
Blackbox testing, involves testing from an external or end-user type perspective. On the other
hand, Whitebox testing is based on the inner workings of an application and revolves around
internal testing.
The term "WhiteBox" was used because of the see-through box concept. The clear box or
WhiteBox name symbolizes the ability to see through the software's outer shell (or "box")
into its inner workings. Likewise, the "black box" in "Black Box Testing" symbolizes not
being able to see the inner workings of the software so that only the end-user experience can
be tested

White Box Testing Techniques

A major White box testing technique is Code Coverage analysis. Code Coverage analysis
eliminates gaps in a Test Case suite. It identifies areas of a program that are not exercised by
a set of test cases. Once gaps are identified, you create test cases to verify untested parts of
the code, thereby increasing the quality of the software product

There are automated tools available to perform Code coverage analysis. Below are a few
coverage analysis techniques

Statement Coverage:- This technique requires every possible statement in the code to be
tested at least once during the testing process of software engineering.

Branch Coverage - This technique checks every possible path (if-else and other conditional
loops) of a software application.

Types of White Box Testing

White box testing encompasses several testing types used to evaluate the usability of an
application, block of code or specific software package. There are listed below --

Unit Testing: It is often the first type of testing done on an application. Unit Testing is
performed on each unit or block of code as it is developed. Unit Testing is essentially done by
the programmer. As a software developer, you develop a few lines of code, a single function
or an object and test it to make sure it works before continuing Unit Testing helps identify a
majority of bugs, early in the software development lifecycle. Bugs identified in this stage are
cheaper and easy to fix.

Testing for Memory Leaks: Memory leaks are leading causes of slower running applications.
A QA specialist who is experienced at detecting memory leaks is essential in cases where you
have a slow running software application.

Apart from above, a few testing types are part of both black box and white box testing. They
are listed as below

White Box Penetration Testing: In this testing, the tester/developer has full information of the
application's source code, detailed network information, IP addresses involved and all server
information the application runs on. The aim is to attack the code from several angles to
expose security threats

White Box Mutation Testing: Mutation testing is often used to discover the best coding
techniques to use for expanding a software solution.

.
3. What is quality? Explain McCall’s quality factors.

Quality Factors
A quality factor represents a behavioural characteristic of a system. Following are the list of
quality factors:

1. Correctness:
Definition: Extent to which a program satisfies its specifications and fulfills the user’s
mission objectives
A software system is expected to meets the explicitly specified functional requirements and
the implicitly expected non-functional requirements.
If a software system satisfies all the functional requirements, the system is said to be correct.

2. Reliability
Definition: Extent to which a program can be expected to perform its intended function with
required precision
Customers may still consider an incorrect system to be reliable if the failure rate is very small
and it does not adversely affect their mission objectives.
Reliability is a customer perception, and an incorrect software can still be considered to be
reliable.

3. Efficiency:
Definition: Amount of computing resources and code required by a program to perform a
function
Efficiency concerns to what extent a software system utilizes resources, such as computing
power, memory, disk space, communication bandwidth, and energy.
A software system must utilize as little resources as possible to perform its functionalities.

4. Integrity:
Definition: Extent to which access to software or data by unauthorized persons can be
controlled
A system’s integrity refers to its ability to withstand attacks to its security.
In other words, integrity refers to the extent to which access to software or data by
unauthorized persons or programs can be controlled.

5. Usability:
Definition: Effort required to learn, operate, prepare input, and interpret output of a program
A software is considered to be usable if human users find it easy to use.
Without a good user interface a software system may fizzle out even if it possesses many
desired qualities.

6. Maintainability:
Definition: Effort required to locate and fix a defect in an operational program
Maintenance refers to the upkeep of products in response to deterioration of their components
due to continuous use of the products.
Maintenance refers to how easily and inexpensively the maintenance tasks can be performed.
For software products, there are three categories of maintenance activities : corrective,
adaptive and perfective maintenance.

7. Testability:
Definition: Effort required to test a program to ensure that it performs its intended functions
Testability means the ability to verify requirements. At every stage of software development,
it is necessary to consider the testability aspect of a product.
To make a product testable, designers may have to instrument a design with functionalities
not available to the customer.

8. Flexibility:
Definition: Effort required to modify an operational program
Flexibility is reflected in the cost of modifying an operational system.
In order to measure the flexibility of a system, one has to find an answer to the question: How
easily can one add a new feature to a system.
9. Portability
Definition: Effort required to transfer a program from one hardware and/or software
environment to another
Portability of a software system refers to how easily it can be adapted to run in a different
execution environment.
Portability gives customers an option to easily move from one execution environment to
another to best utilize emerging technologies in furthering their business.

10. Reusability
Definition: Extent to which parts of a software system can be reused in other applications
Reusability means if a significant portion of one product can be reused, maybe with minor
modifications, in another product.
Reusability saves the cost and time to develop and test the component being reused.

11. Interoperability :
Definition: Effort required to couple one system with another
Interoperability means whether or not the output of one system is acceptable as input to
another system, it is likely that the two systems run on different computers interconnected by
a network.
An example of interoperability is the ability to roam from one cellular phone network in one
country to another cellular network in another country.

4. Explain change control and version control activities in SCM.

Software Configuration Management


● Software Configuration Management is a set of activities carried out for identifying,
organising, and controlling changes throughout the lifecycle of computer software
● During the development of software change must be managed and controlled in order
to improve quality and reduce error. Hence software configuration management is a
quality assurance activity that is applied throughout the software process.
● To manage and control Software Configuration Item (SCI), each should be separately
named and organized using object oriented approaches.
● The SCM process defines a series of tasks that have four primary objectives:
1. To identify all items that collectively define the software configuration
(Identification).
2. To manage changes to one or more of these items (Change Control).
3. To facilitate the construction of different versions of an application (Version
Control).
4. To ensure that software quality is maintained over time (Configuration Audit).
● Following fig shows the layers of SCM process.
Version Control
● Version Control Combines procedures and tools to manage different version of
configuration objects that are created during the software process.
● A version control system implements or is directly integrated with four major
capabilities:
1. A project database that stores all relevant configuration objects,
2. A version management capability that stores all version of configuration
object,
3. A make facility that enables the software engineer to collect all relevant
configuration objects, and
4. Construct a specific version of the software.
● A number of version control systems establish a set – a collection of all changes (to
some baseline configuration) that are required to create a specific version of the
software.
● “Changes set” captures all changes to all files in the configuration along with reason
for changes and details of who made the changes and when.
● A number of named change set can be identified for an application or system. This
enables a software engineer to construct a version of the software by specifying the
changes set (by name) that must be applied to the baseline configuration.
● To accomplish this, a system modelling approach is applied. The system model
contains
1. A template that include a component hierarchy and build order for the
component that describe how the system must be constructed,
2. Construction rules, and
3. Verification rules.
Change Control
● Change control is manual step in software lifecycle. It combines human procedures
and automated tools.
○ Change control process is illustrated in following figure 2.
○ Change request submitted and evaluated to assess technical merit, potential
side effects, overall impact on other configuration object and system function,
and project cost of change.
● The result of the evaluation are presented as a change report, which is used by the
change control authority(CCA) – A person or group who make final decision on the
status and priority of the change.
● An engineering change order (ECO) is generated for each approved change. The ECO
describes the change order to be made, the constraints that must be respected, and the
criteria for view and audit.
● The object to be changed can be placed in a directory that is controlled by software
engineer making the change. As an alternative, the object to be changed can be
“checked out” of the project database, change is made, and appropriate SQA activities
are applied.
● The object are then “checked in” to the database and appropriate version control
mechanism are used to create the next version of the software.
● Checked in and Checked out mechanism require two important elements
● Access Control
● Synchronization Control
○ The Access control mechanism gives the authority to the software engineer to
access and modify the specific configuration object.
○ The Synchronization control mechanism allows to make parallel changes or
the change made by two different people without overwriting each other’s
work.
Version Control and change control system often implements an issue tracking (also called
bug tracking) capability that enables the team to record and track the status of all outstanding
issues associated with each configuration object.

5. Describe the various phases of generic project lifecycle.


1. Initiation

First, you need to identify a business need, problem, or opportunity and brainstorm ways that
your team can meet this need, solve this problem, or seize this opportunity. During this step,
you figure out an objective for your project, determine whether the project is feasible, and
identify the major deliverables for the project.
Instead of waiting to have the project strategy decided for you, Moira Alexander advocates
for a mental switch from being a project "manager" to becoming a project "leader":
"Project managers must be able to sell business leaders on the intrinsic value they offer to the
business at a strategic level when they are at the table from the start of strategic planning
instead of after the fact decision-making. Project managers effectiveness is drastically muted
when offering a "fix-it" or "workaround" once high-level directional business decisions are
made without their expertise."

Clearly, it's worth it to do what it takes to make your voice heard early—before the strategy is
set in stone.

2. Planning

Once the project is approved to move forward based on your business case, statement of
work, or project initiation document, you move into the planning phase.

During this phase of the project management life cycle, you break down the larger project
into smaller tasks, build your team, and prepare a schedule for the completion of assignments.
Create smaller goals within the larger project, making sure each is achievable within the time
frame. Smaller goals should have a high potential for success.

3. Execution

You’ve received business approval, developed a plan, and built your team. Now it’s time to
get to work. The execution phase turns your plan into action. The project manager’s job in
this phase of the project management life cycle is to keep work on track, organize team
members, manage timelines, and make sure the work is done according to the original plan.

4. Closure

Once your team has completed work on a project, you enter the closure phase. In the closure
phase, you provide final deliverables, release project resources, and determine the success of
the project. Just because the major project work is over, that doesn’t mean the project
manager’s job is done—there are still important things to do, including evaluating what did
and did not work with the project.

6. What is business case? State the steps in developing the business case.

The business case captures the reasoning for initiating a project or task. It is the information
needed for authorisation of the project.
A business case captures the reasoning for initiating a project or task. It is often presented in a
well-structured written document, but may also sometimes come in the form of a short verbal
argument or presentation.
The logic of the business case is that, whenever resources such as money or effort are
consumed, they should be in support of a specific business need.
Business case depends on business attitude and business volume.
Business cases can range from comprehensive and highly structured, as required by formal
project management methodologies, to informal and brief.
Information included in a formal business case could be the background of the project, the
expected business benefits, the options considered, the expected costs of the project, a gap
analysis and the expected risks.

Reasons for creating a business case:

Business cases are created to help decision-makers ensure that:


The proposed initiative will have value and relative priority compared to alternative
initiatives based on the objectives and expected benefits laid out in the business case.

The performance indicators found in the business case are identified to be used for proactive
realisation of the business and behavioural change.
Key elements of the Business Case report:

A good business case report, which brings confidence and accountability into the field of
making investment decisions, is a compilation of all information collected during enterprise
analysis and the business case process. The key purpose is to provide evidence and
justification for continuing with the investment proposition. Here is a recommended
structure:

1 Preface
2 Table of Contents
3 Executive Briefing
1.1 Recommendation
1.2 Summary of Results
1.3 Decision to be Taken
d Introduction
i. Business Drivers
ii. Scope
iii. Financial Metrics

e Analysis
i. Assumptions
ii. Cash Flow Statement (NPV)
iii. Costs
iv. Benefits
v. Risk
vi. Strategic Options
vii. Opportunity Costs

f Conclusion, Recommendation, and Next Steps

g Appendix
Solution given below :)

You might also like