CH05. L01. Test-organization

MaharaTech - ITI MOOCA
16 Nov 201707:43

Summary

TLDRThis video script delves into 'Test Management', highlighting the importance of test organization and the varying degrees of independence in testing teams. It explores six options for test team structure, from developers testing their own code to outsourcing to external experts. The script emphasizes the benefits of independent testers, such as unbiased bug detection, and their drawbacks, including potential isolation and bottleneck issues in the development process. It also discusses the roles of test managers and testers, the importance of test planning, and the factors influencing the choice of test team independence, such as project size, complexity, and testing level requirements.

Takeaways

  • πŸ“š The chapter focuses on 'Test Management', covering six main areas: Test organization, planning, monitoring, configuration, risk, and incident management.
  • πŸ‘₯ Test Organization & Independence is about how a test manager organizes the testing process and selects the right team to ensure success.
  • πŸ€” Key questions addressed include how to acquire testers and whether to build an independent testing team separate from developers.
  • πŸ”„ Discusses various testing scenarios ranging from developers testing their own code to having a fully independent testing team.
  • πŸ‘“ The importance of independence in testing is highlighted, with the potential issues of developers not finding their own mistakes.
  • πŸ”‘ Six options for assigning testers are presented, from in-house developers to outsourcing to external organizations for specialized, neutral, and experienced testing.
  • 🏒 The choice of testing independence depends on factors like project size, complexity, product type, and project risks.
  • πŸ›  The role of an independent tester includes acting as a new, unbiased perspective to catch bugs and ensure objectives and specifications are met.
  • πŸ”’ The drawbacks of independence include potential isolation and the risk of testers becoming a bottleneck in the development process.
  • πŸ‘©β€πŸ’Ό The test manager's role involves creating a work plan, supervising testing activities, and deciding on automation and tool requirements.
  • πŸ” Testers are responsible for executing the testing process, reviewing specifications, and ensuring the test environment is suitable for software testing.

Q & A

  • What are the main parts of 'Test Management' as mentioned in the script?

    -The main parts of 'Test Management' are Test organization, Test planning and Estimation, Test progress Monitoring and control, Configuration Management, Risk and Testing, and Incident Management.

  • What is the primary role of a test manager in the testing process?

    -The primary role of a test manager is to plan and organize the testing process, including choosing the test teams, to ensure the success of the testing process.

  • Why is it problematic for a developer to test their own code?

    -It is problematic because it is difficult for someone to find their own mistakes, as they may overlook errors they are accustomed to.

  • What are the different options for the testing process as described in the script?

    -The options range from the developer testing their own work, to having another developer from the same team test the code, to assigning an independent test team within the same organization, to having an independent tester from a business organization or user community, to assigning a specialized independent tester, and finally, outsourcing to an external organization.

  • What factors determine the choice of independence level for testers in a project?

    -The factors include the project's size, complexity, the type of product, project risks, and the type of testing needed, such as component, integration, system, or acceptance testing.

  • Why is it important to have an independent testing team for larger and more complex projects?

    -An independent testing team is important for larger and more complex projects because they can provide a neutral and objective testing process, ensuring that the software meets its objectives and specifications without being influenced by the developers' biases.

  • What are the benefits of having independent testers?

    -The benefits include a fresh perspective on finding bugs, focusing on the testing process objectives, and the ability to determine if the set objectives and specifications are fulfilled.

  • What are the drawbacks of having independent testers?

    -The drawbacks include potential isolation between the developer and tester, which can lead to communication gaps and testers being perceived as a bottleneck, especially in the waterfall model where they are at the end of the process.

  • What are the two important roles in the testing stage mentioned in the script?

    -The two important roles are the test manager, who creates the work plan and supervises testing activities, and the tester, who executes the testing process.

  • What responsibilities does a tester have during the test preparation process?

    -A tester's responsibilities include checking and applying the plan set by the manager, reviewing and analyzing specifications and requirements, creating test specifications, setting up the test environment, and reviewing work products done by other team members.

Outlines

00:00

πŸ“š Test Management Overview and Organizational Independence

This paragraph introduces the concept of 'Test Management' as a critical component of software development, divided into six key areas: Test organization, planning and estimation, progress monitoring, configuration management, risk and testing, and incident management. The focus is on Test Organization & Independence, discussing the importance of planning and organizing the testing process by selecting the appropriate test teams to ensure success. It raises the question of how to form a testing team and whether developers should test their own work or have a separate, independent testing team. The paragraph explores various options for the testing process, from developers testing their own code to outsourcing testing to an external organization. The size and complexity of the project, the type of product, and the level of testing required are highlighted as factors influencing the choice of testing independence. The benefits and drawbacks of independent testing, including objectivity and potential isolation between developers and testers, are also discussed.

05:02

πŸ‘₯ Roles and Responsibilities in Team-based Testing

The second paragraph delves into the roles within a testing team, emphasizing the preference of many individuals to work in teams, which can alleviate pressure during large projects. It outlines two main roles: the test manager, responsible for creating and supervising the work plan, including time, cost, organization, control, and reporting of testing activities; and the tester, who executes the testing process. The paragraph discusses the responsibilities of a tester during the test preparation process, such as reviewing the plan, analyzing and reviewing specifications and requirements, creating test specifications, setting up the test environment, and reviewing work products from other team members. The importance of the final test data output, which is reported to the manager, is also highlighted, emphasizing the collaborative nature of the testing process and the progression of responsibilities from component and integration testing by developers to system and acceptance testing by the testers.

Mindmap

Keywords

πŸ’‘Test Management

Test Management is the overarching process of planning, coordinating, and controlling all test activities within a project. It is central to the video's theme as it sets the stage for discussing the various aspects of testing within a software development lifecycle. The script delves into six components of Test Management, emphasizing its importance in ensuring the success of the testing process.

πŸ’‘Test Organization & Independence

This concept refers to how testing teams are structured and operate within an organization. The video discusses the importance of independence in testing to avoid bias and to ensure that tests are conducted objectively. The script explores different levels of independence, from developers testing their own code to having a completely separate testing team.

πŸ’‘Test Teams

Test Teams are groups of individuals responsible for conducting tests to ensure software quality. The script highlights the importance of selecting the right people for these teams and the impact of their independence on the testing process. It also raises the question of whether developers should test their own work or if a separate team should be responsible for testing.

πŸ’‘Configuration Management

Configuration Management is a key aspect of Test Management that involves tracking and controlling changes to software configuration items. In the script, it is one of the six parts of Test Management, indicating its role in maintaining consistency and traceability throughout the testing process.

πŸ’‘Risk and Testing

This concept involves identifying potential risks that could affect the testing process and implementing strategies to mitigate them. The script mentions it as one of the components of Test Management, suggesting that understanding and managing risks are crucial for the successful planning and execution of tests.

πŸ’‘Incident Management

Incident Management is the process of identifying, analyzing, and resolving issues that arise during testing. The script includes it as part of Test Management, indicating its importance in ensuring that any problems discovered during testing are addressed promptly and effectively.

πŸ’‘Independence Levels

The script discusses various levels of independence in testing, ranging from developers testing their own code to outsourcing testing to external organizations. These levels of independence are crucial in determining the objectivity and effectiveness of the testing process.

πŸ’‘Project Size

The size of a project is a determining factor in deciding the level of independence required for testing. The script suggests that larger, more complex projects are more likely to benefit from having independent testers, as opposed to smaller projects where the development team might suffice.

πŸ’‘Specialized Testing

Specialized Testing refers to focusing on specific aspects of software quality, such as usability, security, or certification. The script mentions this as one of the options for assigning testers, highlighting the importance of specialized knowledge in certain testing scenarios.

πŸ’‘Outsourcing

Outsourcing is the practice of contracting external organizations to perform certain tasks, such as testing. The script discusses it as a potential option for assigning independent testers, especially for large projects or those requiring specialized neutrality and experience.

πŸ’‘Test Manager

A Test Manager is responsible for creating and overseeing the work plan for testing activities. The script describes the role of the Test Manager in detail, including setting timelines, costs, organization, and supervision of testing activities, which is integral to the success of the testing process.

πŸ’‘Tester

A Tester is an individual who executes the testing process on the software product. The script explains the responsibilities of a tester during the test preparation process, including reviewing plans, analyzing specifications, and ensuring the proper test environment is in place.

Highlights

Test Management is divided into 6 parts: Test organization, Test planning and Estimation, Test progress Monitoring and control, Configuration Management, Risk and Testing, Incident Management.

The importance of test organization and independence in planning and organizing the testing process for success.

Different options for building a testing team, from developers testing their own work to having a completely independent testing team.

The problems with developers testing their own code, such as difficulty in finding their own mistakes.

Assigning another developer from the same team to test code they didn't write as an alternative to self-testing.

The role of an independent test team from the same organization, specialized in the testing process and reporting to management.

The option of having an independent tester from a business organization or user community for an external perspective.

The use of specialized independent testers in specific fields such as usability, security, and certification testing.

Outsourcing testing to an external organization for specialization, neutrality, and experience.

The project size as a key factor in deciding the level of independence needed for testing, with larger projects benefiting more from independent testers.

The need for more than one level of testing in complex and safety-critical systems.

The limitations of relying on development staff for testing due to difficulty in finding their own bugs.

The benefits of an independent testing team in providing a complete, neutral testing process with all relevant details and rules.

The drawbacks of independence, such as isolation and potential bottlenecks in the testing process.

The project manager's choice of testing independence depends on factors like project size, complexity, product type, and project risks.

The importance of the type of testing needed (component, integration, system, acceptance) in determining the level of independence.

The role of a test manager in creating the work plan, setting time and cost, organizing and controlling testing activities, and deciding on automation needs.

The role of testers in executing the testing process, reviewing specifications and requirements, creating test specifications, and working in the test environment.

The responsibilities of testers during the test preparation process, including reviewing the plan, analyzing and reviewing requirements, and creating test specifications.

The importance of the test environment in software testing, including the necessary hardware, software, and machine types.

The process of reviewing work products done by team members and the final test data output, with a report provided to the manager.

Transcripts

play00:04

In chapter 5,

play00:06

w e will mainly tackle

play00:08

"Test Management",which

play00:09

is mainly divided into 6 parts:

play00:10

Test organization

play00:12

Test planning and Estimation

play00:14

Test progress Monitoring and control

play00:18

Configuration Management

play00:20

Risk and Testing

play00:22

Incident Management.

play00:24

Let's start with the first part which is

play00:26

Test Organization & Independence.

play00:28

In this part, we will know how the test

play00:30

manager plans and organizes the testing process,

play00:32

by choosing the test teams

play00:34

to participate in it, in order to

play00:36

guarantee the testing process success.

play00:38

Here,we have an important question:

play00:40

How to get testers?

play00:42

and How to build a team?

play00:44

Will we get testers and build

play00:46

an independent testing team?

play00:48

or will the developers

play00:50

test their own work?

play00:52

In fact there are many options

play00:54

and different scenarios for testing process

play00:56

in order to achieve the testing objective.

play00:58

These options varies gradually

play01:00

from the total independence

play01:02

on the developer to completely test

play01:04

his own work,

play01:06

or to gradually move till we

play01:08

separate the developer's work

play01:10

from the tester's.

play01:12

In this case, we will have an independent testing team,

play01:14

which is responsible for this task.

play01:16

Let's see how it varies gradually.

play01:18

The first and the fastest option,

play01:20

is that the developer

play01:22

who wrote the code is the one who test it.

play01:24

This one has many problems,

play01:26

as no can find his own mistakes.

play01:28

That's why they say,

play01:30

"it's different from one eye to another"

play01:32

The Second option is to assign another developer

play01:34

from the same team to test a code which

play01:36

he didn't write. As for the third option:

play01:38

It is to assign an independent test team

play01:40

from the same organization,

play01:42

specialized in testing process

play01:44

and when they finish testing,

play01:46

they should submit a report to the project management

play01:48

or the executive management.

play01:50

The fourth option is to have

play01:52

an independent tester from any

play01:54

business organization or user community.

play01:56

For the fifth option, it

play01:58

is to assign an independent tester

play02:00

who is specialized in only one

play02:02

definite field, Such as:

play02:04

usability testers, security testers,

play02:06

certification testers.

play02:08

The sixth and last option, is

play02:10

the last thing we can resort to, to assign

play02:12

an independent tester out of the organization.

play02:14

That's what we call "outsourcing"

play02:16

Sometimes we head to

play02:18

an external organization to conduct

play02:20

a testing process for our software

play02:22

as a kind of specialization, neutrality and experience.

play02:26

So what is the option that we will depend on

play02:30

from the previous 6 options?

play02:32

The project size is mainly what defines this

play02:36

The larger project,

play02:38

the more important to have an independent testers.

play02:40

For example:

play02:42

The complex and safety critical systems

play02:44

not only that,

play02:46

but also in this type of projects

play02:48

we may need to apply more than

play02:50

one level of testing.

play02:52

Here, we should take care of an important point.

play02:54

Although the development staff

play02:56

can participate in testing process,

play02:58

but we can't depend on them.

play03:00

Because, as we previously mentioned,

play03:02

it's difficult for the one who wrote the code

play03:04

to find its own bugs.

play03:06

Therefore, the testing process will lose its objective

play03:08

and will not be effective.

play03:10

In such cases, the independent testing team is

play03:14

the best choice as it makes them

play03:16

ask and set a complete

play03:18

testing process with all relative details

play03:20

and rules neutrally. This is all done with the support

play03:22

of the top management. After we got introduced to

play03:24

the independent testers' forms,

play03:26

Lets know more about their benefits and drawbacks .

play03:30

The first point is that the independent

play03:32

tester is as a new eye which sees

play03:34

the software and catches its own bugs

play03:36

in a non-aligned way.

play03:38

As he focuses on the objective of

play03:40

the testing process.

play03:42

So this is reason why they can determine, through

play03:44

the work they have, whether

play03:46

the objectives and the specifications which were set

play03:50

in the beginning are fulfilled or no.

play03:52

As there are positive points in assigning independent

play03:54

testers, there are negative ones;like,

play03:56

"The isolation". The full

play03:58

separation between the developer and the tester

play04:00

during working made them two teams

play04:02

not just one. Each

play04:04

has his own definite task.

play04:06

For example, if we use the waterfall model,

play04:08

we will find that testers are always

play04:10

like the bottleneck.

play04:12

because their role is at the end of the process.

play04:14

and if there is any changes required, which

play04:16

can cause the delay of the project's delivery,

play04:18

they are always the one to blame.

play04:20

Let's summarize what we've said:

play04:22

The project manager's choice for

play04:24

the level of Independence will always

play04:26

relay on different factors, such as

play04:28

the project 's size. We may not need

play04:30

an independent tester if the project size

play04:32

is small. while if it is large,

play04:34

we will need for sure a specialized

play04:36

team to do this process.

play04:38

Also the complexity of the project

play04:40

may force us to get

play04:42

a specialized company to do the testing process.

play04:44

There are also type of the product

play04:46

and the project risks,

play04:48

which have a large effect on deciding

play04:50

the need to an independent tester.

play04:52

Last but not least, the type of the test level,

play04:54

what type of testing we need

play04:56

whether component, integration,

play04:58

system or acceptance.

play05:00

The answer to this question is important

play05:02

in identifying the level of independence.

play05:04

Till now, we've learned who are

play05:06

the independent testers, and what are

play05:08

benefits and drawback of their existence.

play05:10

So,let's agree that eveyone

play05:12

prefer to work in teams.

play05:14

However, according to a scientific study,

play05:16

a large portion of people

play05:18

prefer working in teams.

play05:20

This can help them in reducing

play05:22

pressure they feel during the large projects they do.

play05:26

In testing stage, the career progression of

play05:28

the team is divided into 2 important roles:

play05:30

the role of a test manager:

play05:32

his role is to create the work plan

play05:34

which he should set time, cost,

play05:36

how it will be organized and

play05:38

controlled, and how he will supervise

play05:40

the testing activities;

play05:42

starting from the design stage,

play05:44

through implementation, execution

play05:46

and reporting results.

play05:48

He also decides

play05:50

what the team should do

play05:52

and what needs automation.

play05:54

For example,

play05:56

he starts to determine

play05:58

what are the tools that the team will need

play06:00

at the end of the stage. He

play06:02

also writes the reports about

play06:04

the whole test object.

play06:06

Sometimes, other members of the team

play06:08

can do his role, according to the work place.

play06:10

such as: the manager of a test group can be

play06:14

a project manager, a development manager

play06:16

and Quality assurance manager.

play06:20

The second role is:the tester

play06:22

who actually execute the testing process

play06:24

to the project object.

play06:26

The developers, they are the ones responsible for

play06:28

the component and integration testing.

play06:30

After that comes the tester's role

play06:32

to start the testing stage of the system

play06:34

and finally the acceptance testing.

play06:36

So what is the responsibility of a tester

play06:38

during the test preparation process?

play06:42

1- They should check the plan that has been set y

play06:44

the manager and start applying it.

play06:46

2- They have to keep an eye on

play06:48

all the files of specifications and requirements

play06:52

which are required to be analyzed

play06:54

and reviewed. Through this step,

play06:56

we do the test specifications creation.

play07:00

In addition, what is the suitable

play07:02

environment to test a software which is called

play07:04

the test environment. What is

play07:06

the hardware or the software

play07:08

or what type of machines we will need

play07:10

to be tested. In addition to that; reviewing

play07:12

the work product done by another member of the team

play07:16

i.e. if a tester get work files back to the developer

play07:20

to be modified.

play07:22

once he finishes these modifications,

play07:24

The new tester should review

play07:26

not only the modified parts,

play07:28

but also check the review comments which we mentioned

play07:30

on them before.

play07:32

The last and most important point

play07:34

is the final test data output,

play07:36

of which a report is provided to the manager

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Test ManagementSoftware TestingTeam BuildingIndependence LevelsQuality AssuranceProject SizeComplex SystemsRisk MitigationTest AutomationTest EnvironmentCareer Progression