程序代写 IEEE 829 standard

This Photo by Unknown Author is licensed under CC BY-SA

Test Management

Copyright By PowCoder代写 加微信 powcoder

Software Projects
Benefits and drawbacks of independent testing.
Tasks of a test Manager and tester.
Test Strategy
Types of Strategies
Test Planning
Summarise the purpose and content of a test plan.
Test Strategy
Entry Criteria and Exit Criteria

Software Projects
PROJECT – organises work to achieve defined outcomes under
technical, financial, timescale and other constraints.
Difficult? Why?
is invisible, cannot see progress
is an intellectual product
–  can be changed relatively easy
is very complex and difficult to understand,
follows different economic patterns

The “laws” of Project Management
CASE STUDY – Endres and Rombach

“Adding people to a project late makes it later” (Brooke’s law)
http://www.cs.virginia.edu/~evans/greatworks/mythical.pdf
“Individual developer performance varies considerably” (Sackman’s second law)
“A multitude of factors influence developer productivity” (Nelson- Jones law)
“Development effort is a (non-linear) function of product size” (Boehm’s third law)
“Most cost estimates tend to be too low” (DeMarco-Glass law)
Add a footer

Project Management Tasks
Project manager needs to:
Add a footer

Establish and manage

project requirements and stakeholder expectations

project budgets and timescales and completion criteria for the project

Organise and manage

the work as it evolves

Identify and manage

technical people

The Project Plan
Must cover:
Add a footer

high level objectives and constraints

project organisation

risk analysis

hardware and software resource requirements

work content estimation and work breakdown structure

resource assignment and project scheduling

project constraints

Project Organisation
By Sub-systems
Add a footer

Distributed Business System Manager

Middleware

Client Interactive Software

Database Server

Application 1 Functions

Application N Functions

Distributed Business System Manager

Requirement Analysis

Server Programming

Client Programming

Requirements Gathering
Requirements need to be documented and their evolution managed during the development project
Requirements elicitation
scenarios, use cases
application bounding
Requirements specification
class diagrams, state charts
Requirements validation
prototype, review, test cases

Add a footer

Test Estimation Techniques

Metrics-based

Expert-based

Expert-based Estimation Technique
Tacit knowledge

In Expert-based Estimation Technique, estimates are not taken by a single person but all stakeholders, individual contributors , experts and experienced staff members collectively.  The idea is to draw on the collaborative wisdom of the team members to arrive at accurate test estimates.

Also known as bottom-up estimation because you start at the lowest level of hierarchical breakdown in the work breakdown structure (task) and let the duration, effort, dependencies, and resources for each task add up across all the tasks.

Metric-based Estimation Technique

Analysing metrics can be simple or complex.

Simple example could be “How many testers do we typically have per developer on a project?”

Complex metrics involve approaches involving mathematical models in a spreadsheet to study the historical data, such as number of tests run by a tester per day, number of defects found by a tester per day etc.

What is so hard about measuring software, you may think?
OK, so why don’t you try counting the number of lines of strncat.
/* Strncat() appends up to count characters from string src to string dest, and then appends a terminating null character. If copying takes place between objects that overlap, the behavior is undefined. */
char *strncat (char *dest, const char *src, size_t count)
char *temp = dest;
if (count) {
while (*dest)
while ((*dest++ = *src++))
if (–count==0)
*dest = ‘\0’;
return temp;

What number did you come up with? What rules did you decide to use? In experiments with students, the answers range from 11 to 19, with occasional counts over 100 if the data definitions are included. As with most everything, it depends on how you count and what the rules are. Did you count comment lines? Did you count lines with just a “g”? If instead, we have a well-specified model that tells us “the rules,” then, counting lines becomes simple, and the students all arrive at the same answer.

Challenge of Measurement
So many things that we want to measure seem so “unmeasurable.” How do you measure the complexity of a program?
What does complexity even mean?
How do you measure productivity?
If someone can write 100 lines of code in two hours to program a function, but the software has five bugs in it, is it reasonable productivity?
And what is that productivity?
Better yet, if someone else can program the same function in one line of code, in one hour, what is their productivity?
Whose productivity is better?
Software measurement is difficult—it is abstract and difficult to visualize and touch. It is also a relatively new discipline: we still are learning.

Agile Estimation

Scheduling and monitoring
Work breakdown gives activities needed
in what sequence?
with what dependencies
–  milestones and deliverables
Gantt chart
–  when activities and milestones happen
PERT chart
–  sequence of activities, critical paths
can scaffold round dependencies
Should we use contingencies?

Sample gantt chart
usually many more much smaller tasks than this!

person-days per month

design and
residual analysis

coding and unit
testing/debugging

testing, integration
and debugging

project management
technical lead

Timesheets
TIMESHEET for Company Xxx
Person name:

Project name:

Hours worked per day

Total week

Milestones achieved
description
normal hours
task complete
public holiday

annual leave

sick leave

Software tools
Standard office tools
collect historical information in a database
use a spreadsheet for planning
–  three dimension – people/activities and time
–  assignments and load balancing
many commercial tools
smaller ones inadequate
some available as a service
and some open source

Project management needs appropriate standards and tools

Independent Testing

Testers are not the only one doing testing. Who else?
Developers, business analysts, users and customers also do testing tasks for different reasons at different times.
Why we have separate team of testers?
Since testing is an assessment of quality, and since assessment may not always be perceived as positive, many organisations strive to create an organisational climate where testers can deliver an independent, objective assessment of quality.
Levels of independence
Potential benefits of independence
Potential drawbacks of independence
Independence Varies

Levels of Independence

Absence of Independence

Integrated Tester/group of testers

Independent and outside the development team

Potential Benefits of Independence
Attitude of professional pessimism.
Honest opinions without any pressure from the team members.
Separate budget allocation for testing objectives.
Separate career path for testers in senior roles.
Testers maintain their independence.
Testers gain a good knowledge of the product and understanding of the features in the product.
Testers build a strong relationship with the business stakeholders and developers.
Testers can leverage other testers outside the Agile team for tooling or specialised support.
Testers can maintain their independence.
Testers can provide an objective and unbiased evaluation of the software.

Independent Testers
Independent Testers with focus on Agile Projects

An independent testers brings a sceptical attitude of professional pessimism.
An independent tester who reports to senior management may be able to report his or her results honestly and without concern for reprisals that might result from pointing out problems in co-workers’ or worst the manager’s work.
An independent test team often has a separate budget, which helps ensure the proper level of money is spent on tester training, testing tools, test equipment and so on.
Some organisations also might have a separate career path for testers in senior roles.

Potential drawback of test Independence
Communication issues, isolation from teams and consequently from the broader view of quality.
Can be sensed as bottleneck and a source of delay.
Developers might not do their unit testing properly.
Independent testers may not have all the information to make informed decisions about quality.

Testers face time pressures to test features developed over the entire iteration in a very short period of time.
Testers do not have knowledge of the product and lack understanding of the features in the product.
Testers have not had the opportunity to build a relationship with the business stakeholders and developers, which can lead to communication and interaction problems.
This method defeats the objective of Agile development.

Independent Tester
Independent Testers with focus on Agile Projects

So, if independent testing is not always good, what should the companies do?
They need to have a good balance between independence and familiarity.

Independence Varies

For each project, ask whether to use an independent test team based on the project, application domain and the level of risks with other factors.

Often more independence is most effective at the higher levels, for example, system and user acceptance testing.

Test Manager

This Photo by Unknown Author is licensed under CC BY

The person responsible for project management of testing activities and resources, and evaluation of a test object.

The person who directs, controls, administers, plans and regulates the evaluation of a test object.

Test Manager’s Responsibilities

Initial Collaboration At the outset, collaboration with the stakeholders, devise test objectives, organisational test objectives and test strategies
Planning Of testing activities based on test objectives and risks. Selection of test approaches, estimating time, effort, and cost, acquiring resources, defining test levels, types, and test cycles and planning of defect management.
Coordination Of test plan with stakeholders, project managers, project owners, or any other who may get affected by the project or testing.
Share The testing perspective with other project activities such as integration planning.
Lead, Guide, & Monitor The SDLC
Prepare and Deliver Test reports, test summary reports based on the information from testers.

Who is a tester?
A skilled professional who is involved in the testing of a component or system.
This Photo by Unknown Author is licensed under CC BY-SA-NC

Tester’s Responsibilities

Reviewing Test plans with the perspective of a tester.
Analysing, reviewing, and assessing User stories and acceptance criteria, specifications, and models.
Identifying and documenting Test conditions, and test cases.
Designing, setting up The test environments
Designing and implementing Test cases and procedures including automated tests.

Test Planning

Summarise the purpose and content of a test plan.
Test Strategy and Test approach
Entry Criteria and Exit Criteria
Test execution Schedule
Factors influencing the test effort

This Photo by Unknown Author is licensed under CC BY-SA

For next: Test Monitoring and Control
Metrics of Testing
Configuration Management
Risk and Testing
Defect Management

What is a Test Plan?
Project plan for the testing work to be done.
Documentation describing the test objectives to be achieved and the means and the schedule for achieving them, organized to coordinate testing activities.
Why a test plan?
Guides our thinking
To communicate to others
To help manage future changes

Test Plan on as per IEEE 829 standard

https://www.guru99.com/what-everybody-ought-to-know-about-test-planing.html

the product

Design the Test Strategy

Define the Test Objectives

Define Test Criteria

Resource Planning

Plan Test Environment

Schedule & Estimation

Determine Test the Product
What is in scope and what is out of scope for this testing effort?
For example, if your product under test is a retail website.
Who will use the website?
What it will be used for?
How will it work?
What are software/ hardware the product uses?

Test Strategy
Documentation that expresses the generic requirements for testing one or more projects running within the organisation, providing how the testing will be performed and is aligned with the test policy.
Basically, it has to create:
The project’s testing objectives and the means to achieve them
Determines testing effort and costs

This Photo by Unknown Author is licensed under CC BY-SA-NC

Major Types of Test Strategies
Analytical strategy
Model based strategy
Methodical strategy
Standards compliant or Process compliant strategy
Reactive strategy
Consultative strategy
Regression averse strategy

Analytical Strategy
Tests are performed determined by analyzing some factor:

Risk based testing

Performing a risk analysis using project documents and stakeholder input, then planning, estimating, designing, and prioritising the tests are based on the risks.

Requirements based testing

requirements are analyzed to derive the test conditions. Then tests are designed, implemented and executed to meet those requirements.

Model based strategy
Examples could be state transition diagrams, data flow, control flow, decision tables, business process models etc.
Models showing input and outputs as expected.

Testing team chooses an existing or expected situation and creates a model for it, taking into account inputs, outputs, processes and possible behaviour.

Tests are designed based on some model of the test object.

Methodical strategy
Common characteristic of adherence to a pre-planned, systematized approach.

This strategy follow a predefined quality standard (like ISO25000), or fairly stable checklists or simply a set of test conditions.

Standard checklists can exists for specific types of testing, application domains.

Standards or process compliant strategy
An external standard is used to analyse, design and implement tests.

Regression-averse strategy
Here the most important factor is that the system’s performance does not deteriorate or get worse when it is changed and enhanced.
They usually have a common set of procedures- usually automated that allow them to detect regression defects.
In this strategy, the test reacts and evolve based on what is found while test execution occurs, rather than being designed before test execution starts.
Reactive strategy

Consultative strategy (Directed)
This testing strategy uses consultations from key stakeholders as input to decide the scope of test conditions as in the case of user directed testing.
This Photo by Unknown Author is licensed under CC BY-SA-NC

Test strategy selection

Objectives

Regulations

Entry and Exit Criteria
The factors to consider in such decisions are called entry and exit criteria or in Agile development,
Definition of ready and
Definition of done –
when determining the approach and planning the testing are:
How do we know we are ready to start a given test activity?
How do we know we are finished?
At what point can you safely start a particular test level?
When are you confident it is complete?

Entry Criteria

Availability of testable requirements

Availability of complete or partially testable code

Appropriately defined and approved requirements

Access to sufficient and desired test data

Availability of staff for testing tasks.

Setting up of test environment with all the necessary resources like tools and devices

Exit Criteria

The number planned, prepared, run etc.

Achieved a defined level of coverage.

How many found, resolved, estimation of remaining.

Important quality characteristics are adequate.

Cost of finding next defect is more than in moving to next level of testing

Schedule implications, initially planned.

Undesirable outcomes for shipping too late.

Software Projects

Benefits and drawbacks of independent testing.

Tasks of a test Manager and tester.

Test Strategy

Types of Strategies

Test Planning

Summarise the purpose and content of a test plan.

Test Strategy

Entry Criteria and Exit Criteria

Strategy Development Goal Marketing Vision Planning Business Concept

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com