Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
January 2014 Alain Chacun – all rights reserved 1
Software Development Life Cycle
QA&Testing
January 2014 Alain Chacun – all rights reserved 2
Introduction:
Entities have to meet success in their Information Communication Technology
(ICT) projects in the allocated budget and timeline.
Success means successful go-live and end-users/client satisfaction.
There are 4 success factors to be considered:
Budget
Timeline
Successful go-live
End-users/client satisfaction
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 3
In 2011, the Standish Group Research revealed in the Chaos Report that:
Only about 37% of ICT projects are completed on-time and on-budget
About 21% are cancelled before completion
About 42% of ICT projects are challenged, meaning over time and over
budget.
The same Chaos Report has identified the TOP5 causes of failure (projects
cancelled or challenged):
Incomplete requirements / Poor articulation of users requirements
Lack of user involvement / Failure to involve users appropriately
Lack of resources / Poor project management
Lack of attention to the human and organizational aspects of IT / inadequate
attention to business needs and goals
Unrealistic expectations
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 4
For an ICT project, it has to be considered the Total Cost Ownership (TCO)
that represents all the costs of implementation for the software, hardware,
training… but also the production costs and the medium/long term expenses
such as upgrade, replacement / decommissioning.
Outside of the medium/long term and production TCO, the TCO for the
implementation is dramatically increased for the challenged ICT projects, up to
4 times the initial budget.
The TOP5 causes of failures have to be solved:
Incomplete requirements / Poor articulation of users requirements
Lack of user involvement / Failure to involve users appropriately
Lack of resources / Poor project management
Lack of attention to the human and organizational aspects of IT / inadequate
attention to business needs and goals
Unrealistic expectations
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 5
1) Incomplete requirements / Poor articulation of users requirements
How to? Static testing versus dynamic testing
Some control checks have to be defined at different milestones of the Software
Development Life Cycle (SDLC) to validate the consistency of the requirements
all along the specification phase.
2) Lack of user involvement / Failure to involve users appropriately
How to? End users and sponsor
Involve users in the project and in the process of decision.
The role of the sponsor must not be limited to the budget safe keeper but must
be also the one motivating the change and involving the end-users.
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 6
3) Lack of resources / Poor project management and unrealistic expectations
How to? Planning, budget, resources and realism
Make a planning of deliverables realistic according to the budget and available
resources
4) Lack of attention to the human and organizational aspects of IT / inadequate
attention to business needs and goals
How to? AS IS and TO BE, listen the people
Define and understand how the end users work, define and understand what
has to be improved, removed and added in the organization
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 7
Define best practices means also to bring some methodologies.
But methodologies does not mean that the entity has to adopt a rigid
framework.
Methodology adoption for an entity must be a correct balancing between best
practices and culture of the entity. A methodology is also adaptable to the
specific constraints of the entity and the project.
The adoption of a methodology must be done gradually according to a
planning defining tasks and goals at short, medium and long term.
An approach similar to CMMI can help to gradually acquire best practices.
CMMI is made of 5 levels, initial (1), managed (2), defined (3), quantitatively
managed (4) and optimizing (5).
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 8
Source http://resources.sei.cmu.edu/asset_files/TechnicalReport/2010_005_001_15287.pdf
Software Development Life Cycle – QA & Testing
LEVEL DETAILS
1 • Processes are usually ad hoc and chaotic.
• No stable environment to support processes.
• Success depends on the competence of the people in the organization and not on the use of proven processes.
• Project frequently exceed budget and schedule.
• Organizations are characterized by a tendency:
To overcommit
To abandon their processes in a time of crisis
To be unable to repeat their successes
2 • Processes are planned and executed in accordance with policy.
• Projects employ skilled people who have adequate resources to produce controlled outputs
• Stakeholders are monitored, controlled and evaluated for their adherence to the process descriptions
• Process discipline helps to ensure that existing practices are retained during times of stress.
• Projects are performed and managed according to their documented plans.
• Status of the work products are visible to management at defined points (e.g., at major milestones, at the completion of major tasks).
• Commitments are established among relevant stakeholders and are revised as needed.
• Work products are appropriately controlled.
• Work products and services satisfy their specified process descriptions, standards, and procedures.
3 • Processes are understood, described in standards, procedures, tools, and methods.
• Organization’s set of standard processes is the basis for maturity level 3 and is established and improved over time. • Processes are used to establish consistency across the organization. Projects establish their defined processes by tailoring the organization’s set of standard
processes (*) according to tailoring guidelines. (*) organization’s set of standard processes A collection of definitions of the processes that guide activities in an organization. These process descriptions cover the fundamental process elements (and their relationships to each other such as ordering and interfaces) that should be
incorporated into the defined processes that are implemented in projects, work groups, and work across the organization. A standard process enables consistent development and maintenance activities across the organization and is essential for long-term stability and improvement.
4 • Organization and projects establish quantitative objectives for quality and process performance and use them as criteria in managing projects.
• Quantitative objectives are based on the needs of the customer, end users, organization, and process implementers.
• Quality and process performance is understood in statistical terms and is managed throughout the life of projects.
5 • The organization improves its processes based on a quantitative understanding of its business objectives and performance needs.
• The organization’s quality and process performance objectives are established, continually revised to reflect changing business objectives and
organizational performance, and used as criteria in managing process improvement.
• The organization uses a quantitative approach to understand the variation inherent in the process and the causes of process outcomes.
• The effects of deployed process improvements are measured using statistical and other quantitative techniques and compared to quality and
process performance objectives.
January 2014 Alain Chacun – all rights reserved 9
Return on investment (ROI):
The cost to define best practices is largely cover with the risk inherent to
incorrect specification that does not respond to the end user needs.
The later a defect is found, the more expensive the resolution will be.
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 10
We can identify 3 types of entities showing some interest in QA & testing:
Emergency approach: the entity has projects at risk and is willing to bring
some QA & Testing to control the projects
Hesitant approach: the entity wishes to improve the Software Development
Life Cycle (SDLC) but does not know how to do it or hesitant regarding the
changes in the organisation, there is sometimes no overall commitment with
end users, IT stakeholders and management
Volunteer approach: the entity wishes to improve the SDLC and has no
restraint to move forward, has commitment from the overall end users, IT
stakeholders and management
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 11
For reminder, how to improve the maturity?
•Know the competitors, market trends
•Plan the future of the business in the short, medium and long term
•Define and validate the business case
•Identify the AS IS and the TO BE
•Define the investments required to support these new challenges
•Strengthen the sponsor role
•Check/verify top bottom consistency of user requirements, functional
specifications, architecture and code
•Identify and benchmark the external solutions proposed by providers without
miss-considering the internal solutions
•Imply users upstream of the project in the process of decision
•Never under estimate the workload effort and resource needs in order to
obtain the budget
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 12
QA & testing role in the SDLC
User requirements
Timeline
Functional specifications
Project Initiation Document
Specification phase / static testing Dynamic testing
Coding
SIT
Technical designs UT
QA & Test team has to be involved early in the SDLC If the QA & test team is involved in the
SDLC once the code is delivered, it is too
late as the discrepancies between the
requirements have not been identified
UAT Test
Strategy
Test
Planning Review/test
Review/test
Review/test
Review/test
Software Development Life Cycle – QA & Testing
January 2014 Alain Chacun – all rights reserved 13
?
Software Development Life Cycle – QA & Testing