Software Engineer Testing
Software Engineer Testing
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
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:
● 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.
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.
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.
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
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.
Let’s take a look at a few of the most common benefits that teams see when outsourcing
software projects.
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.
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.
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.
Project Scheduling:
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
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
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.
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.
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.
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.
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
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.
● 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.
1. Preparation
2. Data Collection
3. Data Analysis
4. Feedback
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.
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.
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
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:
Let’s take a look at a few of the most common benefits that teams see when outsourcing
software projects.