|
|
The following information is provided
by the American Society for Quality (ASQ):
|
The Certified Software Quality Engineer
understands software quality development and
implementation, software inspection,
testing, verification and validation; and
implements software development and
maintenance processes and methods.
|
|
|
Certification Requirements
Is this the right certification for you?
Here are the minimum expectations,
requirements, experience and exam specifics
for a Software Quality Engineer. If you
already know that this is the certification
you want to pursue, move on to exam
preparation.
Minimum Expectations of a
Software Quality Engineer - 2008
- Must possess a fundamental
understanding of quality philosophies,
principles, methods, tools, standards,
organizational and team dynamics,
interpersonal relationships,
professional ethics, and legal and
regulatory requirements.
- Must evaluate the impact of software
quality management principles on
business objectives and demonstrate
comprehensive knowledge of developing
and implementing software quality
programs, which include tracking,
analyzing, reporting, problem
resolution, process improvement,
training, and supplier management. Must
have a basic understanding of how and
when to perform software audits
including audit planning, approaches,
types, analyses, reporting results and
follow-up.
- Must understand systems architecture
and be able to implement software
development and maintenance processes,
quantify the fundamental problems and
risks associated with various software
development methodologies, and assess,
support, and implement process and
technology changes.
- Must be able to apply project
management principles and techniques as
they relate to software project
planning, implementation and tracking.
Must be able to evaluate and manage
risk.
- Must select, define and apply
product and process metrics and
analytical techniques, and have an
understanding of measurement theory and
how to communicate results.
- Must have a thorough understanding
of verification and validation
processes, including early software
defect detection and removal,
inspection, and testing methods (e.g.,
types, levels, strategies, tools and
documentation). Must be able to analyze
test strategies, develop test plans and
execution documents, and review customer
deliverables.
- Must have a basic understanding of
configuration management processes,
including planning, configuration
identification, configuration control,
change management, status accounting,
auditing and reporting. Must assess the
effectiveness of product release and
archival processes.
Education and/or Experience
You must have eight years of on-the-job
experience in one or more of the areas of
the Certified Software Quality Engineer Body
of Knowledge. A minimum of three years
of this experience must be in a
decision-making position. ("Decision-making"
is defined as the authority to define,
execute, or control projects/processes and
to be responsible for the outcome. This may
or may not include management or supervisory
positions.)
If you've ever been certified by ASQ as a
Quality Engineer, Quality Auditor,
Reliability Engineer, or Quality Manager,
experience used to qualify for certification
in these fields applies to certification as
a Software Quality Engineer.
If you have completed a degree* from a
college, university or technical school with
accreditation accepted by ASQ, part of the
eight-year experience requirement will be
waived, as follows (only one of these
waivers may be claimed):
- Diploma from a technical or trade
school–one year will be waived.
- Associate degree–two years waived.
- Bachelor's degree–four years waived.
- Master's or doctorate–five years
waived.
*Degrees or diplomas from educational
institutions outside the United States must
be equivalent to degrees from U.S.
educational institutions.
Examination
Each certification candidate is required
to pass a written examination that consists
of multiple choice questions that measure
comprehension of the Body of Knowledge.
The Software Quality Engineer examination is
a one-part, 160-question, four-hour exam and
is offered in English only.
Examinations are conducted twice a year,
in June and December, by local ASQ sections
and international organizations. All
examinations are open-book. Each participant
must bring his or her own reference
materials. Use of reference materials and
calculators is explained in the seating
letter provided to applicants.
Please Note: The Body of Knowledge
for certification is affected by new
technologies, policies and the changing
dynamics of manufacturing and service
industries. Changed versions of the
examination based on the current Body of
Knowledge are used at each offering.
|
|
|
Back to Top
Body of
Knowledge
The following is an outline of topics that
constitute the Body of Knowledge for
Software Quality Engineer. This new
BOK started with the exams on December 6,
2008. The topics in this Body of Knowledge
include additional detail in the form of
subtext explanations and the cognitive level
at which the questions will be written. This
information will provide useful guidance for
both the Examination Development Committee
and the candidates preparing to take the
exam. The subtext is not intended to limit
the subject matter or be all-inclusive of
what might be covered in an exam. It is
intended to clarify the type of content to
be included in the exam. The descriptor in
parentheses at the end of each entry refers
to the highest cognitive level at which the
topic will be tested. A more comprehensive
description of cognitive levels is provided
at the end of this page.
- General Knowledge (16
questions)
- Quality principles
- Benefits of software
quality
Describe the benefits that
software quality engineering can
have at the organizational
level. (Understand)
- Organizational and
process benchmarking
Use benchmarking at the
organizational, process, and
project levels to identify and
implement best practices.
(Apply)
- Ethical and Legal
Compliance
- ASQ Code of Ethics
Determine appropriate behavior
in situations requiring ethical
decisions, including identifying
conflicts of interest,
recognizing and resolving
ethical issues, etc. (Evaluate)
- Legal and regulatory
issues
Define and describe the impact
that issues such as copyright,
intellectual property rights,
product liability, data privacy,
the Sarbanes-Oxley Act, etc.,
can have on software
development. (Understand)
- Standards and models
Define and describe the following
standards and assessment models: ISO
9000 standards, IEEE software
standards, and the SEI Capability
Maturity Model Integrated (CMMI).
(Understand)
- Leadership skills
- Organizational
leadership
Use leadership tools and
techniques, such as
organizational change
management, knowledge-transfer,
motivation, mentoring and
coaching, recognition, etc.
(Apply)
- Facilitation skills
Use various approaches to manage
and resolve conflict. Use
negotiation techniques and
identify possible outcomes. Use
meeting management tools to
maximize performance. (Apply)
- Communication skills
Use various communication
elements (e.g., interviewing and
listening skills) in oral,
written, and presentation
formats. Use various techniques
for working in multi-cultural
environments, and identify and
describe the impact that culture
and communications can have on
quality. (Apply)
- Team Skills
- Team management
Use various team management
skills, including assigning
roles and responsibilities,
identifying the classic stages
of team development (forming,
storming, norming, performing,
adjourning), monitoring and
responding to group dynamics,
and working with diverse groups
and in distributed work
environments. (Apply))
- Team tools
Use decision-making and
creativity tools, such as
brainstorming, nominal group
technique (NGT), multi-voting,
etc. (Apply)
- Software Quality Management
(26 questions)
- Quality Management
System
- Quality goals and
objectives
Design quality goals and
objectives for programs,
projects, and products that are
consistent with business
objectives. Develop and use
documents and processes
necessary to support software
quality management systems.
(Create)
- Customers and other
stakeholders
Describe and distinguish between
various stakeholder groups, and
analyze the effect their
requirements can have on
software projects and products.
(Analyze)
- Planning
Design program plans that will
support software quality goals
and objectives. (Evaluate)
- Outsourcing
Determine the impact that
acquisitions, multi-supplier
partnerships, outsourced
services, and other external
drivers can have on
organizational goals and
objectives, and design
appropriate criteria for
evaluating suppliers and
subcontractors. (Analyze)
- Methodologies
- Cost of quality
(COQ)
Analyze COQ categories
(prevention, appraisal, internal
failure, external failure) and
their impact on products and
processes. (Evaluate)
- Process improvement
models
Define and describe elements of
lean tools and the six sigma
methodology, and use the
plan-do-check-act (PDCA) model
for process improvement. (Apply)
- Corrective action
procedures
Evaluate corrective action
procedures related to software
defects, process
nonconformances, and other
quality system deficiencies.
(Evaluate)
- Defect prevention
Design and use defect prevention
processes such as technical
reviews, software tools and
technology, special training,
etc. (Evaluate)
- Audits
- Audit types
Define and distinguish between
various audit types, including
process, compliance, supplier,
system, etc. (Understand)
- Audit roles and
responsibilities
Identify roles and
responsibilities for audit
participants: client, lead
auditor, audit team members and
auditee. (Understand)
- Audit process
Define and describe the steps in
conducting an audit, developing
and delivering an audit report,
and determining appropriate
follow-up activities. (Apply)
- Systems and Software
Engineering Processes (27 questions)
- Lifecycles and process
models
Evaluate various software
development lifecycles (iterative,
waterfall, etc.) and process models
(V-model, Feature Driven
Development, Test Driven
Development, etc.) and identify
their benefits and when they should
be used. (Evaluate)
- Systems architecture
Identify and describe various
architectures, including embedded
systems, client-server, n-tier, web,
wireless, messaging, collaboration
platforms, etc., and analyze their
impact on quality. (Analyze)
- Requirements engineering
- Requirements types
Define and describe various
types of requirements, including
feature, function, system,
quality, security, safety,
regulatory, etc. (Understand)
- Requirements
elicitation
Describe and use various
elicitation methods, including
customer needs analysis, use
cases, human factors studies,
usability prototypes, joint
application development (JAD),
storyboards, etc. (Apply)
- Requirements
analysis
Identify and use tools such as
data flow diagrams (DFDs),
entity relationship diagrams
(ERDs), etc., to analyze
requirements. (Apply)
- Requirements management
- Participants
Identify various participants
who have a role in requirements
planning, including customers,
developers, testers, the quality
function, management, etc.
(Understand)
- Requirements
evaluation
Assess the completeness,
consistency, correctness and
testability of requirements, and
determine their priority.
(Evaluate)
- Requirements change
management
Assess the impact that changes
to requirements will have on
software development processes
for all types of lifecycle
models. (Evaluate)
- Bidirectional
traceability
Use various tools and techniques
to ensure bidirectional
traceability from requirements
elicitation and analysis through
design and testing. (Apply)
- Software analysis,
design, and development
- Design methods
Identify the steps used in
software design and their
functions, and define and
distinguish between software
design methods such as
object-oriented analysis and
design (OOAD), structured
analysis and design (SAD), and
patterns. (Understand)
- Quality attributes
and design
Analyze the impact that
quality-related elements
(safety, security, reliability,
usability, reusability,
maintainability, etc.) can have
on software design. (Analyze)
- Software reuse
Define and distinguish between
software reuse, reengineering,
and reverse engineering, and
describe the impact these
practices can have on software
quality. (Understand)
- Software development
tools
Select the appropriate
development tools to use for
modeling, code analysis, etc.,
and analyze the impact they can
have on requirements management
and documentation. (Analyze)
- Software development
methods
Define and describe principles
such as pair programming,
extreme programming, cleanroom,
formal methods, etc., and their
impact on software quality.
(Understand)
- Maintenance management
- Maintenance types
Describe the characteristics of
corrective, adaptive,
perfective, and preventive
maintenance types. (Understand)
- Maintenance strategy
Describe various factors
affecting the strategy for
software maintenance, including
service-level agreements (SLAs),
short- and long-term costs,
maintenance releases, product
discontinuance, etc., and their
impact on software quality.
(Understand)
- Project Management (24
questions)
- Planning, scheduling,
and deployment
- Project planning
Use forecasts, resources,
schedules, task and cost
estimates, etc., to develop
project plans. (Apply)
- Project scheduling
Use PERT charts, critical path
method (CPM), work breakdown
structure (WBS), Scrum,
burn-down charts, and other
tools to schedule and monitor
projects. (Apply)
- Project deployment
Use various tools, including
milestones, objectives achieved,
task duration, etc., to set
goals and deploy the project.
(Apply)
- Tracking and controlling
- Phase transition
control
Use phase transition control
tools and techniques such as
entry/exit criteria, quality
gates, Gantt charts, integrated
master schedules, etc. (Apply)
- Tracking methods
Calculate project-related costs,
including earned value,
deliverables, productivity,
etc., and track the results
against project baselines.
(Apply)
- Project reviews
Use various types of project
reviews such as phase-end,
management, and retrospectives
or post-project reviews to
assess project performance and
status, to review issues and
risks, and to discover and
capture lessons learned from the
project. (Apply)
- Program reviews
Define and describe various
methods for reviewing and
assessing programs in terms of
their performance, technical
accomplishments, resource
utilization, etc. (Understand)
- Risk management
- Risk management
methods
Use risk management techniques
(assess, prevent, mitigate,
transfer) to evaluate project
risks. (Evaluate)
- Software security
risks
Evaluate risks specific to
software security, including
deliberate attacks (hacking,
sabotage, etc.), inherent
defects that allow unauthorized
access to data, and other
security breaches, and determine
appropriate responses to
minimize their impact.
(Evaluate)
- Safety and hazard
analysis
Evaluate safety risks and
hazards related to software
development and implementation
and determine appropriate steps
to minimize their impact.
(Evaluate)
- Software Metrics and
Analysis (24 questions)
- Metrics and measurement
theory
- Terminology
Define and describe metrics and
measurement terms including
reliability, internal and
external validity, explicit and
derived measures, etc.
(Understand)
- Basic measurement
theory and statistics
Define the central limit
theorem, and describe and use
mean, median, mode, standard
deviation, variance, and range.
Apply appropriate measurement
scales (nominal, ordinal, ratio,
interval) in various situations.
(Apply)
- Psychology of
metrics
Describe how metrics and
measuring affect the people
whose work is being measured and
how people affect the ways in
which metrics are used and data
are gathered. (Understand)
- Process and product
measurement
- Software metrics
Use metrics to assess various
software attributes such as
size, complexity, number of
defects, the amount of test
coverage needed, requirements
volatility, and overall system
performance. (Apply)
- Process metrics
Measure the effectiveness and
efficiency of software using
functional verification tests
(FVT), cost, yield, customer
impact, defect detection, defect
containment, total defect
containment effectiveness
(TDCE), defect removal
efficiency (DRE), process
capability and efficiency, etc.
(Apply)
- Metrics reporting
tools
Use various metric
representation tools, including
dashboards, stoplight charts,
etc., to report results
efficiently. (Apply)
- Analytical techniques
- Sampling
Define and distinguish between
sampling methods (e.g., random,
stratified, cluster) as used in
auditing, testing, product
acceptance, etc. (Understand)
- Data collection and
integrity
Describe the importance of data
integrity from planning through
collection and analysis, and
apply various techniques to
ensure its quality, accuracy,
completeness, and timeliness.
(Apply)
- Quality analysis
tools
Describe and use classic quality
tools (flowcharts, Pareto
charts, cause and effect
diagrams, control charts,
histograms, etc.) and
problem-solving tools (affinity
and tree diagrams, matrix and
activity network diagrams, root
cause analysis, etc.) in a
variety of situations. (Apply)
- Software Verification and
Validation (V&V) (27 questions)
- Theory
- V&V methods
Select and use V&V methods,
including static analysis,
structural analysis,
mathematical proof, simulation,
etc., and analyze which tasks
should be iterated as a result
of modifications. (Analyze)
- Software product
evaluation
Use various evaluation methods
on documentation, source code,
test results, etc., to determine
whether user needs and project
objectives have been satisfied.
(Analyze)
- Test planning and design
- Test strategies
Select and analyze test
strategies (test-driven design,
good-enough, risk-based,
time-box, top-down, bottom-up,
black-box, white-box,
simulation, automation, etc.)
for various situations.
(Analyze)
- Test plans
Develop and evaluate test plans
and procedures, including
system, acceptance, validation,
etc., to determine whether
project objectives are being
met. (Create)
- Test designs
Select and evaluate various test
designs, including fault
insertion, fault-error handling,
equivalence class partitioning,
boundary value, etc. (Evaluate)
- Software tests
Identify and use various tests,
including unit, functional,
performance, integration,
regression, usability,
acceptance, certification,
environmental load, stress,
worst-case, perfective,
exploratory, system, etc.
(Apply)
- Tests of supplier
components and products
Determine appropriate levels of
testing for integrating
third-party components and
products. (Apply)
- Test coverage
specifications
Evaluate the adequacy of
specifications such as
functions, states, data and time
domains, interfaces, security,
and configurations that include
internationalization and
platform variances. (Evaluate)
- Code coverage
techniques
Identify and use techniques such
as branch-to-branch, condition,
domain, McCabe's cyclomatic
complexity, boundary, etc.
(Apply)
- Test environments
Select and use simulations, test
libraries, drivers, stubs,
harnesses, etc., and identify
parameters to establish a
controlled test environment in
various situations. (Analyze)
- Test tools
Identify and use utilities,
diagnostics, and test management
tools. (Apply)
- Reviews and inspections
Identify and use desk-checks, peer
reviews, walk-throughs, Fagan and
Gilb inspections, etc. (Apply)
- Test execution
documentation
Review and evaluate documents such
as defect reporting and tracking
records, test completion metrics,
trouble reports, input/output
specifications, etc. (Evaluate)
- Customer deliverables
Assess the completeness of customer
deliverables, including packaged and
hosted or downloadable products,
license keys and user documentation,
marketing and training materials,
etc. (Evaluate)
- Software Configuration
Management (16 questions)
- Configuration
infrastructure
- Configuration
management team
Describe the roles and
responsibilities of a
configuration management group.
(Understand)
[NOTE: The roles and
responsibilities of the
configuration control board
(CCB) are covered in area
VII.C.2.]
- Configuration
management tools
Describe these tools as they are
used for managing libraries,
build systems, defect tracking
systems, etc. (Understand)
- Library processes
Describe dynamic, static, and
controlled processes used in
library systems and related
procedures, such as
check-in/check-out, merge
changes, etc. (Understand)
- Configuration
identification
- Configuration items
Describe configuration items
(documentation, software code,
equipment, etc.), identification
methods (naming conventions,
versioning schemes, etc.), and
when baselines are created and
used. (Understand)
- Software builds
Describe the relationship
between software builds and
configuration management
functions, and describe methods
for controlling builds
(automation, new versions,
etc.). (Understand)
- Configuration control
and status accounting
- Item, baseline, and
version control
Describe processes for
documentation control, tracking
item changes, version control,
etc., that are used to manage
various configurations, and
describe processes used to
manage configuration item
dependencies in software builds
and versioning. (Understand)
- Configuration
control board (CCB)
Describe the roles and
responsibilities of the CCB and
its members and the procedures
they use. (Understand)
[NOTE: The roles and
responsibilities of the
configuration management team
are covered in area VII.A.1.]
- Concurrent
development
Describe the use of
configuration management control
principles in concurrent
development processes.
(Understand)
- Status accounting
Discuss various processes for
establishing, maintaining, and
reporting the status of
configuration items.
(Understand)
- Configuration audits
Define and distinguish between
functional and physical
configuration audits and how they
are used in relation to product
specifications. (Understand)
- Product release and
distribution
- Product release
Review product release processes
(planning, scheduling, defining
hardware and software
dependencies, etc.) and assess
their effectiveness. (Evaluate)
- Archival processes
Review the source and release
archival processes (backup
planning and scheduling, data
retrieval, archival of build
environments, retention of
historical records, offsite
storage, etc.) and assess their
effectiveness. (Evaluate)
Levels of
Cognition
based on Bloom’s Taxonomy – Revised
(2001)
In addition to content
specifics, the subtext for each topic in
this BOK also indicates the intended
complexity levelof the test
questions for that topic. These levels are
based on “Levels of Cognition” (from Bloom’s
Taxonomy – Revised, 2001) and are presented
below in rank order, from least complex to
most complex.
Remember
Recall or recognize terms, definitions,
facts, ideas, materials, patterns,
sequences, methods, principles, etc.
Understand
Read and understand descriptions,
communications, reports, tables, diagrams,
directions, regulations, etc.
Apply
Know when and how to use ideas, procedures,
methods, formulas, principles, theories,
etc.
Analyze
Break down information into its constituent
parts and recognize their relationship to
one another and how they are organized;
identify sublevel factors or salient data
from a complex scenario.
Evaluate
Make judgments about the value of proposed
ideas, solutions, etc., by comparing the
proposal to specific criteria or standards.
Create
Put parts or elements together in such a way
as to reveal a pattern or structure not
clearly there before; identify which data or
information from a complex set is
appropriate to examine further or from which
supported conclusions can be drawn.
|
|
|
Back to Top
|