Final Zayredin Assignment

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 26

ARBA MINCH UNIVERSITY INISTITUTE OF

TECHNOLOGY

SOFTWARE ENGINEERING TOOLS AND PRACTICE INDIVIDUAL


ASSIGNMENT SECTION B

NAME: Amanuel Adamu


ID: RAMIT/1573/10

SECTION: B
1. Discuss the following points in detail.

 Project management Fundamentals

Project Management Fundamentals


What is a Project?

Project is a temporary endeavor undertaken to create a unique product or service.

Projects are unique.

Projects are temporary in nature and have a definite beginning and end date.

Projects are completed when the project goals are achieved or it is determined the project is no
longer viable.

A successful project is one that meets or exceeds the expectations of your stakeholders.

How Unique?

Product characteristics are progressively elaborated.

The product or service is different in some way from other product or services.

How Temporary?

It has a definite beginning and end. effort.

It is not an ongoing effort such as in operations.

It ceases when objective has been attained.

The team is disbanded upon project completion.

What is Project Management?

Project Management is the application of knowledge, skills, tools and techniques to project
activities to meet project requirements.

Project management is accomplished through the use of the processes such as −

Initiating Monitor and Controlling

Executing Closing Planning


Project managers or the organization can divide projects into above phases to provide better
management control with appropriate links to the ongoing operations of the performing
organization. Collectively, these phases are known as the project life cycle.

Project managers deliver projects while balancing the following constraints −

Scope

Schedule

Quality

Resources

Customer Satisfaction

Risk

These all are so intertwined that a change in one will most often cause a change in at least one of
the others

What is Program Management?

A program consists of a group of related projects and Program management is the process of
managing multiple on going projects. An example would be that of designing, manufacturing
and providing support infrastructure for an automobile make.

Program management involves centrally managing and coordinating groups of related projects to
meet the objectives of the program.

In some cases Project Management is a subset of Program Management. The project manager
may report to the program manager in such cases. A portfolio consists of multiple programs.

What is Portfolio Management?

A portfolio is a collection of projects, and operations that are grouped together to facilitate
effective management of that work to meet strategic business objectives. Organizations manage
their portfolios based on specific goals.

Senior managers or senior management teams typically take on the responsibility of portfolio
management for an organization.

Portfolio management encompasses managing the collections of programs and projects in the
portfolio. This includes weighing the value of each project, or potential project, against the
portfolio's strategic objectives.
Why do we need Project Management?

We need project management to manage projects effectively and drive them to success. Project
Management starts with the decision to start a project upon weighing its need and viability. Once
a project starts, it is crucial to watch the project progress at every step so as to ensure it delivers
what all is required, in the stipulated time, within the allocated budget. Other drivers influencing
the need of project management are −

Exponential expansion of human knowledge

Global demand for goods and services

Global competition

Team is required to meet the demand with quality and standard.

Improved control over the project

Improved performance

Improved budget and quality

Project Management Skills

Many of the tools and techniques for managing projects are specific to project management.
However, effective project management requires that the project management team acquire the
following three dimensions of project management competencies −

Project Management Knowledge Competency − This refers to what the project management
team knows about project management.

Project Management Performance Competency − This refers to what the project management
team is able to do or accomplish while applying their project management knowledge.

Personal Competency − This refers to how the project management team behaves when
performing the project or activity.

Interpersonal Skills Management

The management of interpersonal relationships includes −

Effective communication − The exchange of information

Influencing the organization − The ability to "get things done"

Leadership − Developing a vision and strategy, and motivating people to achieve that vision and
strategy
●Software project management tasks

tasks
Software Project Management consists of many activities, that includes planning of the project,
deciding the scope of product, estimation of cost in different terms, scheduling of tasks, etc.

The list of activities are as follows:

1. Project planning and Tracking

2. Project Resource Management

3. Scope Management

4. Estimation Management

5. Project Risk Management

6. Scheduling Management

7. Project Communication Management

8. Configuration Management

Now we will discuss all these activities -

1. Project Planning: It is a set of multiple processes, or we can say that it a task that performed
before the construction of the product starts.

2. Scope Management: It describes the scope of the project. Scope management is important
because it clearly defines what would do and what would not. Scope Management create the
project to contain restricted and quantitative tasks, which may merely be documented and
successively avoids price and time overrun.

3. Estimation management: This is not only about cost estimation because whenever we start to
develop software, but we also figure out their size(line of code), efforts, time as well as cost.

4. Scheduling Management: Scheduling Management in software refers to all the activities to


complete in the specified order and within time slotted to each activity. Project managers define
multiple tasks and arrange them keeping various factors in mind.

For scheduling, it is compulsory -

Find out multiple tasks and correlate them.

Divide time into units.


5. Project Resource Management: In software Development, all the elements are referred to as
resources for the project. It can be a human resource, productive tools, and libraries.

Resource management includes:

Create a project team and assign responsibilities to every team member

Developing a resource plan is derived from the project plan.

Adjustment of resources.

6. Project Risk Management: Risk management consists of all the activities like identification,
analyzing and preparing the plan for predictable and unpredictable risk in the project.

Several points show the risks in the project:

The Experienced team leaves the project, and the new team joins it.

Changes in requirement.

Change in technologies and the environment.

Market competition.

7. Project Communication Management: Communication is an essential factor in the success of


the project. It is a bridge between client, organization, team members and as well as other
stakeholders of the project such as hardware suppliers.

From the planning to closure, communication plays a vital role. In all the phases, communication
must be clear and understood. Miscommunication can create a big blunder in the project.

8. Project Configuration Management: Configuration management is about to control the


changes in software like requirements, design, and development of the product.

2. Discuss the following points in detail.

 Software Project Planning

Project Planning

Software project planning is task, which is performed before the production of software actually
starts. It is there for the software production but involves no concrete activity that has any
direction connection with software production; rather it is a set of multiple processes, which
facilitates software production. Project planning may include the following:
Scope Management

It defines the scope of project; this includes all the activities, process need to be done in order to
make a deliverable software product. Scope management is essential because it creates
boundaries of the project by clearly defining what would be done in the project and what would
not be done. This makes project to contain limited and quantifiable tasks, which can easily be
documented and in turn avoids cost and time overrun.

During Project Scope management, it is necessary to -

Define the scope

Decide its verification and control

Divide the project into various smaller parts for ease of management.

Verify the scope

Control the scope by incorporating changes to the scope

Project Estimation

For an effective management accurate estimation of various measures is a must. With correct
estimation managers can manage and control the project more efficiently and effectively.

Project estimation may involve the following:

Software size estimation

Software size may be estimated either in terms of KLOC (Kilo Line of Code) or by calculating
number of function points in the software. Lines of code depend upon coding practices and
Function points vary according to the user or software requirement.

Effort estimation

The managers estimate efforts in terms of personnel requirement and man-hour required to
produce the software. For effort estimation software size should be known. This can either be
derived by managers’ experience, organization’s historical data or software size can be converted
into efforts by using some standard formulae.

Time estimation

Once size and efforts are estimated, the time required to produce the software can be estimated.
Efforts required is segregated into sub categories as per the requirement specifications and
interdependency of various components of software. Software tasks are divided into smaller
tasks, activities or events by Work Breakthrough Structure (WBS). The tasks are scheduled on
day-to-day basis or in calendar months.

Cost estimation

This might be considered as the most difficult of all because it depends on more elements than
any of the previous ones. For estimating project cost, it is required to consider -

Size of software, Software quality, Hardware, Additional software or tools, licenses etc.

Skilled personnel with task-specific skills

Travel involved, Communication, Training and support

Project Scheduling

Project Scheduling in a project refers to roadmap of all activities to be done with specified order
and within time slot allotted to each activity. Project managers tend to define various tasks, and
project milestones and arrange them keeping various factors in mind. They look for tasks lie in
critical path in the schedule, which are necessary to complete in specific manner (because of task
interdependency) and strictly within the time allocated. Arrangement of tasks which lies out of
critical path are less likely to impact over all schedule of the project.

For scheduling a project, it is necessary to -

Break down the project tasks into smaller, manageable form

Find out various tasks and correlate them

Estimate time frame required for each task

Divide time into work-units

Assign adequate number of work-units for each task

Calculate total time required for the project from start to finish

Resource management

All elements used to develop a software product may be assumed as resource for that project.
This may include human resource, productive tools and software libraries.

The resources are available in limited quantity and stay in the organization as a pool of assets.
The shortage of resources hampers the development of project and it can lag behind the schedule.
Allocating extra resources increases development cost in the end. It is therefore necessary to
estimate and allocate adequate resources for the project.
Resource management includes -

Defining proper organization project by creating a project team and allocating responsibilities to
each team member

Determining resources required at a particular stage and their availability

Manage Resources by generating resource request when they are required and de-allocating them
when they are no more needed.

Project Risk Management

Risk management involves all activities pertaining to identification, analyzing and making
provision for predictable and non-predictable risks in the project. Risk may include the
following:

Experienced staff leaving the project and new staff coming in.

Change in organizational management.

Requirement change or misinterpreting requirement.

Under-estimation of required time and resources.

Technological changes, environmental changes, business competition.

Risk Management Process

There are following activities involved in risk management process:

Identification - Make note of all possible risks, which may occur in the project.

Categorize - Categorize known risks into high, medium and low risk intensity as per their
possible impact on the project.

Manage - Analyze the probability of occurrence of risks at various phases. Make plan to avoid
or face risks. Attempt to minimize their side-effects.

Monitor - Closely monitor the potential risks and their early symptoms. Also monitor the effects
of steps taken to mitigate or avoid them.

Project Execution & Monitoring

In this phase, the tasks described in project plans are executed according to their schedules.
Project Communication Management

Effective communication plays vital role in the success of a project. It bridges gaps between
client and the organization, among the team members as well as other stake holders in the project
such as hardware suppliers.

Communication can be oral or written. Communication management process may have the
following steps:

Planning - This step includes the identifications of all the stakeholders in the project and the
mode of communication among them. It also considers if any additional communication facilities
are required.

Sharing - After determining various aspects of planning, manager focuses on sharing correct
information with the correct person on correct time. This keeps every one involved the project up
to date with project progress and its status.

Feedback - Project managers use various measures and feedback mechanism and create status
and performance reports. This mechanism ensures that input from various stakeholders is coming
to the project manager as their feedback.

Closure - At the end of each major event, end of a phase of SDLC or end of the project itself,
administrative closure is formally announced to update every stakeholder by sending email, by
distributing a hardcopy of document or by other mean of effective communication.

After closure, the team moves to next phase or project.

Configuration Management

Configuration management is a process of tracking and controlling the changes in software in


terms of the requirements, design, functions and development of the product.

IEEE defines it as “the process of identifying and defining the items in the system, controlling
the change of these items throughout their life cycle, recording and reporting the status of items
and change requests, and verifying the completeness and correctness of items”.

Generally, once the SRS is finalized there is less chance of requirement of changes from user. If
they occur, the changes are addressed only with prior approval of higher management, as there is
a possibility of cost and time overrun.

 Software Project Management Plan


Software project manager prepare a document on the basis of decision finalized during the
project planning. This document is known as Software Project Management Plan Document or
SPMP document .

SPMP document is a well organized document that contains the project planning in detail.

It would have details about project objective, project estimates, project schedules, project
resources, project staffing, risk management plans, project monitoring, project control and other
miscellenous activities.

A SPMP document is prepared and organized in structure as shown below:

Introduction Objectives Functions Performance issues

Constraints Project estimates Historical data used

Estimation techniques details Cost, duration, effort estimates

Project Schedule Work breakdown Gantt and PERT chart

Project resource Manpower Hardware and Software

Highly skilled professionals Staff organization

Team formation and structure Management reporting Risk Management

Risk analysis Risk identification Risk abatement methods

Project tracking Project Control Miscellaneous


activities

All the above activities are documented in SPMP document by project manager.

3. Discuss the following points in detail.


 WBS and Schedule
A WBS is a logical decomposition (breaking into smaller pieces) and hierarchal representation of
work needed to execute a project. This decomposition of work is called a "work package." The
level of decomposition is based on the extent to which the project will need to be managed. If
additional visibility into the progress is needed, additional decomposition is recommended.

A WBS doesn't have a time component, predecessors or dependencies. So why bother creating a
WBS when you can create a project schedule instead? By developing a WBS, one can focus on
the deliverables and nothing but the deliverables. It allows an uncluttered focus on the work that
often gets lost in a project schedule whose focus is time and dependencies.
Project schedule

The project schedule is one of my favorite tools because it really gives a clear view of what's
happening when, as well as how long the project will take. It's the tool that communicates the
work that needs to be performed, the resources performing the work and the time frame in which
that work needs to be performed. It lists all of the tasks to complete the project and shows the
dependencies between each task. Its main purpose is to show the timeline, including start and
end dates for each task, and assign project team members to each task. This becomes an
invaluable checklist to help keep things on track.

 Work Breakdown Structure


Breakdown Structure (WBS) is the tool that utilizes this technique and is one of the most
important project management documents. It singlehandedly integrates scope, cost and schedule
baselines ensuring that project plans are in alignment. The building blocks of a schedule start
with a Work Breakdown Structure (WBS). The WBS is a hierarchical reflection of all the work
in the project in terms of deliverables. In order to produce these deliverables, work must be
performed.

 Scheduling
The project schedule is the tool that communicates what work needs to be performed, which
resources of the organization will perform the work and the timeframes in which that work needs
to be performed. The project schedule should reflect all of the work associated with delivering
the project on time. Without a full and complete schedule, the project manager will be unable to
communicate the complete effort, in terms of cost and resources, necessary to deliver the project.

4. Discuss the following points in detail.

 Risk and Change Management

Change management in software development involves tracking and managing changes to


artifacts, such as code and requirements. It's critical for effective application development.

Manage Change

Manage and track change requests, bug reports, source code files, and other digital assets.

Report on Change

Management expects to see reports on the impact of changes to requirements or code.


Trace Changes

Changes happen in the development lifecycle. Trace them back to requirements and source code.
And compare historical data with baselines.

Control Change

Take control of change management. Create a process that works again and again.

What Is Risk Management In Software Engineering?

Risk management means risk containment and mitigation. First, you’ve got to identify and plan.
Then be ready to act when a risk arises, drawing upon the experience and knowledge of the
entire team to minimize the impact to the project.

Risk management includes the following tasks:

Identify risks and their triggers

Classify and prioritize all risks

Craft a plan that links each risk to a mitigation

Monitor for risk triggers during the project

Implement the mitigating action if any risk materializes

Communicate risk status throughout project

Identify and Classify Risks

 Software Risks
Software risk encompasses the probability of occurrence for uncertain events and their potential
for loss within an organization. Risk management has become an important component of
software development as organizations continue to implement more applications across a
multiple technology, multi-tiered environment. Typically, software risk is viewed as a
combination of robustness, performance efficiency, security and transactional risk propagated
throughout the system.

5. Discuss the following points in detail.


 Risk Management
Risk Management is the system of identifying addressing and eliminating these problems before
they can damage the project.

We need to differentiate risks, as potential issues, from the current problems of the project.
Different methods are required to address these two kinds of issues.

For example, staff storage, because we have not been able to select people with the right
technical skills is a current problem, but the threat of our technical persons being hired away by
the competition is a risk.

Risk Management

A software project can be concerned with a large variety of risks. In order to be adept to
systematically identify the significant risks which might affect a software project, it is essential
to classify risks into different classes. The project manager can then check which risks from each
class are relevant to the project.

There are three main classifications of risks which can affect a software project:

1. Project risks

2. Technical risks

3. Business risks

1. Project risks: Project risks concern differ forms of budgetary, schedule, personnel, resource, and
customer-related problems. A vital project risk is schedule slippage. Since the software is intangible, it is
very tough to monitor and control a software project. It is very tough to control something which cannot
be identified. For any manufacturing program, such as the manufacturing of cars, the plan executive can
recognize the product taking shape.

2. Technical risks: Technical risks concern potential method, implementation, interfacing, testing, and
maintenance issue. It also consists of an ambiguous specification, incomplete specification, changing
specification, technical uncertainty, and technical obsolescence. Most technical risks appear due to the
development team's insufficient knowledge about the project.

3. Business risks: This type of risks contain risks of building an excellent product that no one need,
losing budgetary or personnel commitments, etc.

 Change Control management

Change control is the process through which all requests to change the approved
baseline of a project, programmer or portfolio are captured, evaluated and then
approved, rejected or deferred.
6. Discuss the following points in detail.
 Software Quality Assurance
Software quality assurance (SQA) is a process which assures that all software engineering
processes, methods, activities and work items are monitored and comply against the defined
standards. These defined standards could be one or a combination of any like ISO 9000, CMMI
model, ISO15504, etc.

SQA incorporates all software development processes starting from defining requirements to
coding until release. Its prime goal is to ensure quality.

 QA Activities
Major Software Quality Assurance Activities:

1. SQA Management Plan:

Make a plan how you will carry out the SQA through out the project. Think which set of
software engineering activities are the best for project. check level of SQA team skills.

2. Set The Check Points:

SQA team should set checkpoints. Evaluate the performance of the project on the basis of
collected data on different check points.

3. Multi testing Strategy:

Do not depend on single testing approach. When you have lot of testing approaches available use
them.

4. Measure Change Impact:

The changes for making the correction of an error sometimes re introduces more errors keep the
measure of impact of change on project. Reset the new change to change check the compatibility
of this fix with whole project.

5. Manage Good Relations:

In the working environment managing the good relation with other teams involved in the project
development is mandatory. Bad relation of SQA team with programmers team will impact
directly and badly on project. Don’t play politics.
 Team Management
Team management refers to the various activities which bind a team together by bringing the
team members closer to achieve the set targets . For the team members, their team must be their
priority and everything else should take a back seat. They should be very focused on their goals.

7. Discuss the following points in detail.


 Introduction to software quality assurance (terms like faults, errors,
debugging and quality standards).
Several organizations, national and international institutes are involved in the development of
SQA standards. The below mentioned are the main organizations and institutes involved in it :

1. IEEE 2. DOT 3. ISO

4. ANSI 5. EIA 6. IEC

SQA Standards are basically divided into Two Categories:

1. Software Quality Assurance Standard, which are known as Quality Management Standards .

Example: ISO 9000-3, CMM (Capability Maturity Model).

They focus on the organization’s infrastructure, SQA system, requirements leaving the choice of
tools and methods of testing to an organization. Their standard objective is “what” to achieve. It
assures that organizations achieve an acceptable quality of software.

2. Software Project Development Process standards which are known as Project Process
Standards.

Example: ISO/IEC 12207 IEEEStd 1012-1998.

They focus on methodologies that must be implemented in software development and


maintenance. It focuses on “how” to perform. It includes design documentation requirements,
steps to be taken, software testing to be performed and design review and review issues.

8. Discuss the following points in detail.


 Principles of software validation and Software verification

 Software Testing (unit testing, regression testing, system testing,


integration testing)
Software Testing
Software Testing is a method to check whether the actual software product matches expected
requirements and to ensure that software product is Defect free. It involves execution of
software/system components using manual or automated tools to evaluate one or more properties
of interest. The purpose of software testing is to identify errors, gaps or missing requirements in
contrast to actual requirements.

Unit Testing: This software testing basic approach is followed by the programmer to test the
unit of the program. It helps developers to know whether the individual unit of the code is
working properly or not.

Integration testing: It focuses on the construction and design of the software. You need to see
that the integrated units are working without errors or not.

System testing: In this method, your software is compiled as a whole and then tested as a whole.
This testing strategy checks the functionality, security, portability, amongst others.

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.

9. Discuss the following points in detail.

 White-box and black box testing (state transition, equivalent


partitioning, static and dynamic testing etc.)
White Box Testing

White Box Testing is software testing technique in which internal structure, design and coding of
software are tested to verify flow of input-output and to improve design, usability and security.
In white box testing, code is visible to testers so it is also called Clear box testing, Open box
testing, Transparent box testing, Code-based testing and Glass box testing.

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, White
box testing in software engineering 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.

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.

Black Box Testing is a software testing method in which the functionalities of software
applications are tested without having knowledge of internal code structure, implementation
details and internal paths. Black Box Testing mainly focuses on input and output of software
applications and it is entirely based on software requirements and specifications. It is also known
as Behavioral Testing.

Types of Black Box Testing

There are many types of Black Box Testing but the following are the prominent ones -

Functional testing - This black box testing type is related to the functional requirements of a
system; it is done by software testers.

Non-functional testing - This type of black box testing is not related to testing of specific
functionality, but non-functional requirements such as performance, scalability, usability.

Regression testing - Regression Testing is done after code fixes, upgrades or any other system
maintenance to check the new code has not affected the existing code.

Static Testing is a type of software testing in which software application is tested without code
execution. Manual or automated reviews of code, requirement documents and document design
are done in order to find the errors. The main objective of static testing is to improve the quality
of software applications by finding errors in early stages of software development process.
Static testing involves manual or automated reviews of the documents. This review is done
during an initial phase of testing to catch Defect early in STLC. It examines work documents and
provides review comments. It is also called Non-execution testing or verification testing.

Examples of Work documents-

Requirement specifications Design document Source Code

Test Plans Test Cases Test Scripts

Help or User document Web Page content

What is Dynamic Testing?

Under Dynamic Testing , a code is executed. It checks for functional behavior of software
system, memory/ cpu usage and overall performance of the system. Hence the name "Dynamic"

The main objective of this testing is to confirm that the software product works in conformance
with the business requirements. This testing is also called an Execution technique or validation
testing.

Dynamic testing executes the software and validates the output with the expected outcome.
Dynamic testing is performed at all levels of testing and it can be either black or white box
testing.

10.Discuss the following points in detail.


 Control flow oriented test construction techniques, McCabe Cyclomatic
complexity
Control Flow Testing

Control flow testing is a testing technique that comes under white box testing. The aim of this
technique is to determine the execution order of statements or instructions of the program
through a control structure. The control structure of a program is used to develop a test case for
the program. In this technique, a particular part of a large program is selected by the tester to set
the testing path. It is mostly used in unit testing. Test cases represented by the control graph of
the program.

. ...

Cyclomatic complexity is a software metric used to indicate the complexity of a program . It is a


quantitative measure of the number of linearly independent paths through a program's source
code . It was developed by Thomas J. McCabe, Sr. in 1976.
Cyclomatic complexity is computed using the control-flow graph of the program: the nodes of
the graph correspond to indivisible groups of commands of a program, and a directed edge
connects two nodes if the second command might be executed immediately after the first
command. Cyclomatic complexity may also be applied to individual functions , modules ,
methods or classes within a program.

One testing strategy, called basis path testing by McCabe who first proposed it, is to test each
linearly independent path through the program; in this case, the number of test cases will equal
the Cyclomatic complexity of the program.

 Data flow oriented test construction techniques

What is Data Flow Testing?

Data flow testing is a family of test strategies based on selecting paths through the program's
control flow in order to explore sequences of events related to the status of variables or data
objects. Dataflow Testing focuses on the points at which variables receive values and the points
at which these values are used.

Advantages of Data Flow Testing:

Data Flow testing helps us to pinpoint any of the following issues:

A variable that is declared but never used within the program.

A variable that is used but never declared.

A variable that is defined multiple times before it is used.

De allocating a variable before it is used.

11.Discuss the following points in detail.


 Exploratory Testing
What is an Exploratory Testing?

During testing phase where there is severe time pressure, Exploratory testing technique is
adopted that combines the experience of testers along with a structured approach to testing.

Exploratory testing often performed as a black box testing technique, the tester learns things that
together with experience and creativity generate new good tests to run.

Benefits:

Following are the benefits of Exploratory Testing:


Exploratory testing takes less preparation.

Critical defects are found very quickly.

The testers can use reasoning based approach on the results of previous results to guide their
future testing on the fly.

Drawbacks:

Following are the Drawbacks of Exploratory Testing:

Tests cannot be reviewed.

It is difficult to keep track of what tests have been tested.

It is unlikely to be performed in exactly the same manner and to repeat specific details of the
earlier tests

 Code and Fix programming paradigm (test plan, test case design
specification, etc.)
Programming paradigms are a way to classify programming languages based on their features.
Languages can be classified into multiple paradigms.

Some paradigms are concerned mainly with implications for the execution model of the
language, such as allowing

side effects, or whether the sequence of operations is defined by the execution model. Other
paradigms are concerned mainly with the way that code is organized, such as grouping a code
into units along with the state that is modified by the code. Yet others are concerned mainly with
the style of syntax and grammar.

12.Discuss the following points in detail.


 The Plan-based approach
The Plan-driven methodologies are known as "Heavy-weight" methodologies or "Traditional"
methodologies.

Three of the most prominent plan-driven methodologies are the Personal Software Process
(PSP), Team Software Process (TSP), and Rational Unified Process (RUP).

A software development process is the process by which user needs are translated into a software
product. The process involves translating user needs into software requirements, transforming
the software requirements into design, implementing the design in code, testing the code, and
sometimes installing and checking out the software for operational use. Note: these activities
might overlap or be performed iteratively.
Personal Software Process (PSP), Team Software Process (TSP), and Rational Unified Process
(RUP), all of which use the incremental model, are described below.

Models

Incremental model

With the Incremental Model, the system is analysed, designed, developed, and tested in
increments which are clearly defined. In other words the project is broken down into a series of
builds. The core functionality is dealt with in the first increment and with the final increment the
complete project is released. It emphasises a building block approach which means that an
operational system is produced more quickly.

Complete requirements may be gathered up front or the project may begin with general
objectives which are refined with each iteration. The requirements are prioritised, the higher a
requirements 's priority the earlier it is to be included in an increment. Thus, new functionality
added should not be more important than that which exists in the current build

The process can be illustrated as in figure 1.

..

Iteration

Each iteration can be seen as a mini project with its own lifecycle (this could be waterfall, for
example). The end product of each iteration is an executable system which is integrated and
tested. An iteration usually lasts for a predefined, relatively short period of time (generally a
number of weeks.

Advantages

Operational portion ready early in project.

Rapid return on investment

Allows for gradual introduction of new product to client.

Early and regular feedback from clients.

Early discovery of high risks

Accommodates changes

Disadvantages
Each new build has to be incorporated into the existing build without breaking it.

Clients have more opportunity to attempt to change requirements than with, for example, the
waterfall method.

Waterfall model

Successful software project rate has increased considerably since 70’s. This is explainable by
standard and accepted methods of process management in companies. Lifecycle model
development began in 70’s with suggested waterfall lifecycle model as a pioneer in software
development. This model was proposed by Winston W. Royce and was successfully employed in
the industry during these years.

Waterfall model has a linear structure characteristic. This linear structure defines the sequentially
of tasks where task should be completed before the next task can be started, thus following non-
iterative principle. Plan driven development mirrors the approach by waterfall model where steps
in the development are planned out from the beginning until the project completion. Waterfall
lifecycle model development is broken down into five steps:

Requirement analysis: development team meets project stakeholders to identify needs and
establish requirements to satisfy project goals. Requirement analysis initially is a feasibility
study that identifies functional and non-functional requirements with its constraints.
Documentation is generated.

Design: development team converts requirements into representation of architectural model.


Prototypes are created with functional algorithms and data structures. Creating accurate design in
this stage is vital because after completing design stage, development team doesn’t go back to
the design previous stage. Design is finalised and overall of the project outcome depends on it.

Coding and implementation: design is transformed into software.

Testing: software domain is tested for bugs. Different sets of tools are available for testers and
developers to detect and fix defects in the software.

Maintenance: stage where product is updated (patched), to meet changing needs and
environments. Fixing undetected bugs during testing stage and defects that might arise during
updates.

 The Agile approach


Agile Model

The meaning of Agile is swift or versatile." Agile process model " refers to a software
development approach based on iterative development. Agile methods break tasks into smaller
iterations, or parts do not directly involve long term planning. The project scope and
requirements are laid down at the beginning of the development process. Plans regarding the
number of iterations, the duration and the scope of each iteration are clearly defined in advance.

Each iteration is considered as a short time "frame" in the Agile process model, which typically
lasts from one to four weeks. The division of the entire project into smaller parts helps to
minimize the project risk and to reduce the overall project delivery time requirements. Each
iteration involves a team working through a full software development life cycle including
planning, requirements analysis, design, coding, and testing before a working product is
demonstrated to the client.

Phases of Agile Model:

Following are the phases in the Agile model are as follows:

1. Requirements gathering 2. Design the requirements

3. Construction/ iteration 4. Testing/ Quality assurance

5. Deployment 6. Feedback

13.Discuss the following points in detail.


 Personal Software Process (PSP)
Personal software process

The Personal Software Process is a structured software development process that is intended to
help software engineers understand and improve their performance , by using a " disciplined ,
data -driven procedure" . The PSP was created by Watts Humphrey to apply the underlying
principles of the Software Engineering Institute ’ s Capability Maturity Model to the software
development practices of a single developer. It claims to give software engineers the process
skills necessary to work on a Team Software Process team . " Personal Software Process " and "
PSP " are registered service marks of the Carnegie Mellon University .

The Personal Software Process ( PSP ) is a structured software development process that is
designed to help software engineers better understand and improve their performance by
bringing discipline to the way they develop software and tracking their predicted and actual
development of the code. It clearly shows developers how to manage the quality of their
products, how to make a sound plan, and how to make commitments. It also offers them the data
to justify their plans. They can evaluate their work and suggest improvement direction by
analyzing and reviewing development time, defects, and size data. The PSP was created by
Watts Humphrey to apply the underlying principles of the Software Engineering Institute 's (SEI)
Capability Maturity Model (CMM) to the software development practices of a single developer.
It claims to give software engineers the process skills necessary to work on a team software
process (TSP) team.
 Team Software Process (TSP)
In combination with the personal software process (PSP), the team software process ( TSP )
provides a defined operational process framework that is designed to help teams of managers and
engineers organize projects and produce software for products that range in size from small
projects of several thousand lines of code (KLOC) to very large projects greater than half a
million lines of code. The TSP is intended to improve the levels of quality and productivity of a
team's software development project, in order to help them better meet the cost and schedule
commitments of developing a software system. [1][2][3][4]

The initial version of the TSP was developed and piloted by Watts Humphrey in the late 1990s
[5] and the Technical Report [6] for TSP sponsored by the U.S. Department of Defense was
published in November 2000. The book by Watts Humphrey, [7] Introduction to the Team
Software Process , presents a view of the TSP intended for use in academic settings, that focuses
on the process of building a software production team, establishing team goals, distributing team
roles, and other teamwork-related activities.

14.Discuss the following points in detail.


 Process Improvement
Process improvement is the ongoing process of identifying, analyzing and improving current
processes within an organization, ensuring your business is operating at optimal levels to meet
standards, quality benchmarks and quotas. While it usually follows a specific methodology, there
are different approaches to process improvement, the most common being a variety of lean
manufacturing techniques that each focus on specific areas of improvement. During a process
improvement analysis, processes can be modified, added to by using sub-processes or eliminated
if deemed unnecessary.

What Is the Purpose of Process Improvement?

Process improvement can be likened to trying to get into better shape; you might start by
researching a diet plan and finding a gym or trainer to help you nail down a workout routine. At
first, it's easy and exciting to make this change in your life as you start losing weight, feeling
better and noticing some real changes. Then, you slowly start slipping into your old ways; you
sleep in one morning or eat fast food for lunch a couple of times a week. Gradually, you fall back
into your old habits.

Process improvement can follow a similar pattern; you analyze your current processes and come
up with an idea that could potentially improve your organization in multiple ways. Your plan
gets approved, and the changes are implemented. Soon, you notice everything is falling back into
the old way of doing things.
 Access the status of a software process
Measuring software development status has not kept pace with the evolution of software
development technologies, specifically programming languages and software development
methodologies. A meta-analysis revealed 1) the inability of current metrics to address software
status, 2) multiple problems with source lines of code (SLOC): lack of consensus on counting
rules, wide variations in code counts provided by code counting tools, wide variations due to
programming style and programming language, 3) lack of support from standards and reports,
and 4) limited applicability of current metrics to progress/status of each of the life cycle phases.
Given such a wide range of issues, it is time to seriously challenge how software status is
currently assessed and reported. There is a gap in current measurement mechanisms related to
assessing and reporting software status that needs to be filled.

15.Discuss the following points in detail.

 SCRUM

Scrum is a framework utilizing an agile mindset for developing, delivering, and sustaining
complex products, [1] with an initial emphasis on software development , although it has been
used in other fields including research, sales, marketing and advanced technologies. [2] It is
designed for teams of ten or fewer members, who break their work into goals that can be
completed within time-boxed iterations, called sprints, no longer than one month and most
commonly two weeks. The Scrum Team assess progress in time-boxed daily meetings of 15
minutes or less, called daily scrums. At the end of the sprint, the team holds two further
meetings: the sprint review which demonstrates the work done to stakeholders to elicit feedback,
and sprint retrospective which enables the team to reflect and improve.

Scrum is a framework that helps teams work together. Much like a rugby team (where it gets its
name) training for the big game, scrum encourages teams to learn through experiences, self-
organize while working on a problem, and reflect on their wins and losses to continuously
improve.

While the scrum I’m talking about is most frequently used by software development teams, its
principles and lessons can be applied to all kinds of teamwork. This is one of the reasons scrum
is so popular. Often thought of as an agile project management framework, scrum describes a set
of meetings, tools, and roles that work in concert to help teams structure and manage their work.

 Team Management
Team management refers to the various activities which bind a team together by bringing the team
members closer to achieve the set targets . For the team members, their team must be their priority and
everything else should take a back seat. They should be very focused on their goals.

You might also like