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