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

Software Engineer Testing

The document discusses software outsourcing and project scheduling. It covers making a make-or-buy decision using a decision tree model and considering key factors like volume, costs of making vs. buying. It also discusses benefits of outsourcing like accessing skilled developers and reducing costs. Finally, it discusses project scheduling, tracking relationships between tasks and resources, and defining a task set for a software project.

Uploaded by

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

Software Engineer Testing

The document discusses software outsourcing and project scheduling. It covers making a make-or-buy decision using a decision tree model and considering key factors like volume, costs of making vs. buying. It also discusses benefits of outsourcing like accessing skilled developers and reducing costs. Finally, it discusses project scheduling, tracking relationships between tasks and resources, and defining a task set for a software project.

Uploaded by

bala sekaran
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

SPM&QA – UNIT - 3

Unit - III - Software Outsourcing and Project Scheduling

The Make-Buy decision - creating a decision tree, Software outsourcing - issues involved Project
Scheduling and Tracking - relationship between people and effort - defining a task set for the
software Project.

11 Marks

The Make - Buy decision

A decision table is a brief visual representation for specifying which actions to perform
depending on given conditions. The information represented in decision tables can also be
represented as decision trees or in a programming language using if-then-else and switch-case
statements.
A decision table is a good way to settle with different combination inputs with their
corresponding outputs and is also called a cause-effect table. The reason to call the cause-effect
table is a related logical diagramming technique called cause-effect graphing that is basically
used to obtain the decision table.
Importance of Decision Table:

● Decision tables are very much helpful in test design techniques.


● It helps testers to search the effects of combinations of different inputs and other
software states that must correctly implement business rules.
● It provides a regular way of starting complex business rules, that is helpful for
developers as well as for testers.
● It assists in the development process with the developer to do a better job.
Testing with all combinations might be impractical.
● A decision table is basically an outstanding technique used in both testing and
requirements management.
● It is a structured exercise to prepare requirements when dealing with complex
business rules.
● It is also used in model complicated logic.

Decision Table in test designing:

Blank Decision Table


CONDITIONS STEP 1 STEP 2 STEP 3 STEP 4
Condition 1
Condition 2
Condition 3
Condition 4

Decision Table: Combinations

CONDITIONS STEP 1 STEP 2 STEP 3 STEP 4


Condition 1 Y Y N N
Condition 2 Y N Y N
Condition 3 Y N N Y
Condition 4 N Y Y N

Advantage of Decision Table:

● Any complex business flow can be easily converted into test scenarios & test cases
using this technique.
● Decision tables work iteratively which means the table created at the first iteration is
used as input tables for the next tables. The iteration is done only if the initial table is
not satisfactory.
● Simple to understand and everyone can use this method to design the test scenarios &
test cases.
● It provides complete coverage of test cases which helps to reduce the rework on
writing test scenarios & test cases.
● These tables guarantee that we consider every possible combination of condition
values. This is known as its completeness property.

Creating a decision tree

A decision table is a brief visual representation for specifying which actions to perform
depending on given conditions. The information represented in decision tables can also be
represented as decision trees or in a programming language using if-then-else and switch-case
statements.

A decision table is a good way to settle with different combination inputs with their
corresponding outputs and is also called a cause-effect table. The reason to call the cause-effect
table is a related logical diagramming technique called cause-effect graphing that is basically
used to obtain the decision table.

Four Numbers You Should Know


When you are supposed to make a make-or-buy decision, there are four numbers you need
to be aware of. Your decision will be based on the values of these four numbers. Let's have a
look at the numbers now. They are quite self-explanatory.

1. The volume
2. The fixed cost of making
3. Per-unit direct cost when making
4. Per-unit cost when buying

Now, there are two formulas that use the above numbers. They are 'Cost to Buy' and 'Cost to
Make'. The higher value loses and the decision maker can go ahead with the less costly solution.

Cost to Buy (CTB) = Volume x Per-unit cost when buying

Cost to Make (CTM) = Fixed costs + (Per-unit direct cost x volume)

The Process

The make or buy decision can be in many scales. If the decision is small in nature and has
less impact on the business, then even one person can make the decision. The person can
consider the pros and cons between making and buying and finally arrive at a decision.

When it comes to larger and high impact decisions, usually organizations follow a
standard method to arrive at a decision. This method can be divided into four main stages as
below.

1. Preparation
Team creation and appointment of the team leader Identifying the
product requirements and analysis
Team briefing and aspect/area destitution

2. Data Collection
Collecting information on various aspects of make-or-buy decision Workshops on
weightings, ratings, and cost for both make-or-buy
3. Data Analysis
Analysis of data gathered

4. Feedback
Feedback on the decision made

By following the above structured process, the organization can make an informed decision on
make-or-buy. Although this is a standard process for making the make-or-buy decision, the
organizations can have their own varieties.
SOFTWARE OUTSOURCING

Outsourcing software development is a business strategy of delegating software


development projects to an external software outsourcing company instead of executing it within
in-house capabilities.

This could look like outsourcing some or part of a software development project. It
could also involve continuous, direct management of the project. Or, it could involve offloading
the majority of the project management to the hired company.

The benefits of software projects outsourcing:


It’s important to understand why you are looking to outsource software development
services. When you’re clear on your why, you can hire a team that will fit with your goals.

Let’s take a look at a few of the most common benefits that teams see when outsourcing
software projects.

1. Access highly-skilled developers


Outsourcing software projects allows you to access highly-skilled software developers
with the exact skills you’re after. You can avoid investing in time-consuming internal upskilling.

When you outsource a software project, you have the flexibility to source top talent from
anywhere in the world. You aren’t constrained to an internal talent pool - or even a talent pool
within your local area or country.
2. Reduce costs
Hiring developers comes with a lot of overhead. Sometimes it’s worth it, but for some
projects, staffing up an in-house team is simply too expensive.

Software outsourcing companies allow you to quickly gather all necessary software
development specialists and the on-demand model.

You can reduce costs by avoiding all those pesky onboarding, training, and upskilling
costs. You’ll also reduce costs by outsourcing software development in more affordable global
regions such as Eastern Europe.

3. Speed up development
Let’s face it, you want to get to market fast. You likely have a lot of internal pressure to
deliver quickly.

Staffing up an in-house team can be expensive, but it can also be very time-consuming.
It’s simply impractical if you want to deliver a project quickly.

With the right outsourced software development agency, you can get a project off the
ground in a matter of days or weeks. Development speeds can also be adjusted based on how
many full-time or part-time team members are put on the project. In many cases, you can
drastically control delivery timelines by adjusting the team size.

The models for software outsourcing:

There are many software development outsourcing models you can use depending on
your needs. There is no right or wrong model across the board. What will work best for you will
depend on things such as your project scope, project objectives, team structure, and team
availability (or lack of).

The two main models for software project outsourcing are Managed team model and Project-based
model.

1. Managed team model


In the managed team model, project ownership is shared between the client and the
outsourced agency. Think about this model as part way between software team augmentation
and the project-based model we’ll talk about below
Typically the hired team reports to the client’s PM, CTO, or other project owner. Exact
delegation of project management will be determined by the teams early on, but the idea is to
equally share ownership of the project.

2. Project-based model
The project-based model is a more hands-off approach. The outsourced agency takes on
full responsibility for the project. They own the development cycle from beginning to end.

In this model, the outsourced team will not report to you. You’ll be heavily involved
upfront in defining the specifications, but after that, your involvement will be more limited.

Issues involved Project Scheduling and Tracking

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 they arrange them keeping various factors in mind.

They look for tasks that lie in a critical path in the schedule, which are necessary to
complete in a 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 the overall
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.

Tracking Project

Project Tracking is a method of project management for following the progress (or lack
thereof) of activities involved in projects. Potential issues can be spotted and solved by team
members and leaders.

Tracking projects from the beginning, dealing with problems quickly, and proactively
making decisions is what successful project managers do.

Managing all tasks and activities involved, handling multiple files involved, and most
importantly, the people who make up the team make this incredibly challenging.

● Periodic project status meetings with each team member reporting progress and
problems
● Evaluation of results of all work product reviews
● Comparing actual milestone completion dates to scheduled dates
● Comparing actual project task start-dates to scheduled start-dates
● Informal meeting with practitioners to have them asses subjectively progress to date
and future problems
● Use earned value analysis to assess progress quantitatively

Issues involved Project Scheduling and Tracking

Project scheduling and tracking are important aspects of project management, and there
are several issues involved in these processes that can impact project success. Here are some of
the key issues:

1. Time management: One of the biggest issues in project scheduling and tracking is managing
time effectively. This involves setting realistic deadlines, allocating resources appropriately, and
ensuring that everyone involved in the project is aware of the timeline and their role in meeting
it.

2. Resource allocation: Another important issue is resource allocation. This involves ensuring
that the right people, equipment, and materials are available when needed, and that they are
being used effectively and efficiently.

3. Scope management: Scope management involves defining the project's objectives and
ensuring that the project stays on track to achieve those objectives. This requires careful planning
and monitoring to ensure that the project does not expand beyond its original scope, which can
lead to delays and cost overruns.

4. Communication: Effective communication is critical to project scheduling and tracking.


This includes keeping all stakeholders informed about project progress, changes in timelines, and
any issues that arise along the way.
5. Risk management: There are always risks involved in any project, and effective project
scheduling and tracking involves identifying and mitigating those risks. This can include
anticipating potential problems, developing contingency plans, and monitoring the project
closely to identify and address any issues that arise.

6. Stakeholder management: Project scheduling and tracking also involves managing


stakeholder expectations and ensuring that all stakeholders are satisfied with the project's
progress and outcomes. This requires effective communication and collaboration with all
stakeholders, including clients, team members, and external partners.

Overall, effective project scheduling and tracking requires careful planning, attention to
detail, and strong communication and collaboration skills. By addressing these issues
proactively, project managers can ensure that their projects stay on track and deliver the desired
outcomes on time and within budget.

Relationship between people and effort

The relationship between people and effort in software project management and quality
assurance is a critical one.

The success of a software project depends on the skills, expertise, and effort of the team
members involved, and quality assurance is an essential part of ensuring that the project meets
the desired quality standards. Here are some ways in which people and effort are related in
software project management and quality assurance:

1. Team composition: As mentioned earlier, the success of a software project depends on the
skills and expertise of the team members. Similarly, the success of quality assurance efforts
depends on the knowledge and experience of the team members. The project manager needs to
ensure that the team responsible for quality assurance is composed of
individuals with the necessary skills and knowledge to ensure that the software meets the desired
quality standards.

2. Effort estimation: Accurately estimating the amount of effort required for quality assurance
is crucial to ensuring that the software meets the desired quality standards. This requires an
understanding of the team's capabilities, as well as the complexity of the project and the scope of
work involved.

3. Resource allocation: Once the effort required for quality assurance has been estimated, the
project manager needs to allocate resources appropriately to ensure that the software meets the
desired quality standards. This involves balancing the workload of team members to ensure that
everyone is working effectively and efficiently.

4. Motivation and engagement: The success of quality assurance efforts also depends on the
motivation and engagement of the team members. The project manager needs to ensure that the
team members responsible for quality assurance are motivated and engaged, and that they have
the support and resources they need to complete their work effectively.

5. Team communication and collaboration: Effective communication and collaboration


among team members are critical to the success of both software project management and quality
assurance efforts. The project manager needs to ensure that team members responsible for
quality assurance are working together effectively and that they have the support and resources
they need to communicate and collaborate efficiently.

Overall, people and effort are closely related in software project management and quality
assurance. The success of both depends heavily on the skills, expertise, and effort of the team
members involved. The project manager needs to ensure that the team responsible for quality
assurance is composed of individuals with the necessary skills and knowledge, and that they
have the resources and support they need to complete their work effectively and efficiently.

Additionally, effective communication and collaboration among team members are


essential to ensuring the success of both software project management and quality assurance
efforts.
Defining a task set for the software Project.
Defining a task set is an essential step in software project management and quality
assurance. A task set is a list of all the tasks that need to be completed to successfully deliver the
software project and ensure its quality. Here are the steps to define a task set for a software
project:

1. Understand the project requirements: The first step is to review the project scope
statement, project charter, and any other project documentation to get a clear understanding of
what needs to be delivered.

2. Consider the project methodology: The project methodology you are using will
impact the way you define your task set. For example, if you are using an agile methodology,
you may need to break down your tasks into sprints.

3. Break down the project into smaller tasks: Once you have a clear understanding of
the project requirements, the next step is to break down the project into smaller, more
manageable tasks. Identify all the different activities that need to be completed to deliver the
project.

4. Identify dependencies: Identify any dependencies between the tasks. This involves
identifying which tasks need to be completed before others can start.

5. Estimate effort and duration: Estimate the effort and duration required to complete
each task. Consider factors such as the complexity of the task, the skills required, and any
potential risks or issues.

6. Define quality criteria: Consider the quality criteria that need to be met. This may
include factors such as performance, security, usability, and reliability.

7. Prioritize tasks: Prioritize the tasks based on their importance and urgency. Consider
factors such as the criticality of the task to the project, any dependencies on other tasks, and any
potential risks or issues.

8. Identify milestones: Identify milestones that mark key points in the project timeline.
This may include milestones such as completing a specific set of features or functionality or
delivering the final product.
9. Assign tasks to team members: Assign the tasks to team members based on their
skills and expertise. Consider factors such as the experience of the team member, their workload,
and any potential conflicts with other tasks.

10. Use project management software: Project management software can be a helpful
tool for defining and managing your task set. This software can help you to break down the
project into smaller tasks, assign tasks to team members, and track progress.

11. Monitor and track progress: Monitor and track the progress of each task to ensure
that they are being completed on time and to the desired quality. Regularly review the task set
and make any necessary adjustments based on changes to the project scope or any issues that
arise.

By following these steps, you can ensure that your task set is comprehensive, well-
defined, and focused on delivering a high-quality software product that meets the project
requirements.

2 Marks

Define the Make - Buy decision

A decision table is a brief visual representation for specifying which actions to perform
depending on given conditions. The information represented in decision tables can also be
represented as decision trees or in a programming language using if-then-else and switch-case
statements.
A decision table is a good way to settle with different combination inputs with their
corresponding outputs and is also called a cause-effect table. The reason to call the cause-effect
table is a related logical diagramming technique called cause-effect graphing that is basically
used to obtain the decision table.

Explain about the Importance of Decision Table:

● Decision tables are very much helpful in test design techniques.


● It helps testers to search the effects of combinations of different inputs and other
software states that must correctly implement business rules.
● It provides a regular way of starting complex business rules, that is helpful for
developers as well as for testers.
● It assists in the development process with the developer to do a better job.
Testing with all combinations might be impractical.

Give some Advantage of Decision Table

● Any complex business flow can be easily converted into test scenarios & test cases
using this technique.
● Decision tables work iteratively which means the table created at the first iteration is
used as input tables for the next tables. The iteration is done only if the initial table is
not satisfactory.
● Simple to understand and everyone can use this method to design the test scenarios &
test cases.
● It provides complete coverage of test cases which helps to reduce the rework on
writing test scenarios & test cases.
● These tables guarantee that we consider every possible combination of condition
values. This is known as its completeness property.

Give some Importance of Decision Table.

● Decision tables are very much helpful in test design techniques.


● It helps testers to search the effects of combinations of different inputs and other
software states that must correctly implement business rules.
● It provides a regular way of starting complex business rules, that is helpful for
developers as well as for testers.

● It assists in the development process with the developer to do a better job.


Testing with all combinations might be impractical.
● A decision table is basically an outstanding technique used in both testing and
requirements management.
● It is a structured exercise to prepare requirements when dealing with complex
business rules.
● It is also used in model complicated logic

Explain the Process involved in creating a decision tree

1. Preparation
2. Data Collection
3. Data Analysis
4. Feedback

Define Software outsourcing


Outsourcing software development is a business strategy of delegating software
development projects to an external software outsourcing company instead of executing it within
in-house capabilities.

This could look like outsourcing some or part of a software development project. It
could also involve continuous, direct management of the project. Or, it could involve offloading
the majority of the project management to the hired company.
Give some models for software outsourcing:

There are many software development outsourcing models you can use depending on
your needs.

There is no right or wrong model across the board. What will work best for you will
depend on things such as your project scope, project objectives, team structure, and team
availability (or lack of). The two main models for software project outsourcing are Managed
team model and Project-based model.

1. Managed team model


3. Project-based model

Define 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 they arrange them keeping various factors in mind.

Give some necessary steps needed in Project Scheduling

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.

Define Tracking Project .

Project Tracking is a method of project management for following the progress (or lack
thereof) of activities involved in projects. Potential issues can be spotted and solved by team
members and leaders.
Tracking projects from the beginning, dealing with problems quickly, and proactively
making decisions is what successful project managers do.

Give some Issues involved in Project Scheduling and Tracking

Project scheduling and tracking are important aspects of project management, and there
are several issues involved in these processes that can impact project success. Here are some of
the key issues:

1. Time management
2. Resource allocation
3. Scope management
4.Communication
5. Risk management
6. Stakeholder management

Define Relationship between people and effort

The relationship between people and effort in software project management and quality
assurance is a critical one.

The success of a software project depends on the skills, expertise, and effort of the team
members involved, and quality assurance is an essential part of ensuring that the project meets
the desired quality standards.

Give some ways in which people and effort are related in software project

Here are some ways in which people and effort are related in software project
management and quality assurance:
1. Team composition
2. Effort estimation
3. Resource allocation
4. Motivation and engagement
5. Team communication and collaboration
Explain about defining a task set for the software Project.

Defining a task set is an essential step in software project management and quality
assurance. A task set is a list of all the tasks that need to be completed to successfully deliver the
software project and ensure its quality.

List the steps involved in defining a task set for a software project

Here are the steps to define a task set for a software project:

1. Understand the project requirements


2. Consider the project methodology
3. Break down the project into smaller tasks
4. Identify dependencies
5. Estimate effort and duration
6. Define quality criteria
7. Prioritize tasks
8. Identify milestones
9. Assign tasks to team members
10. Use project management software
11. Monitor and track progress

The benefits of software projects outsourcing

Let’s take a look at a few of the most common benefits that teams see when outsourcing
software projects.

1. Access highly-skilled developers


2. Reduce costs
3. Speed up development

You might also like