Tải bản đầy đủ (.pdf) (112 trang)

Bài giảng Certified Software Quality Manager (CSQM)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (780.26 KB, 112 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>Module 1 – Managing Software Quality </b>

<b>Software Quality - Software quality is the ability of a set of inherent </b>

characteristics of a product, service, product component or process to fulfill customer’s requirement.

From a management and controlling perspective, quality is the degree to which a set of inherent characteristics fulfills requirements.

<b>What is managing software quality? </b>

It is a set of coordinated activities to direct and control an organization in order to continually improve the effectiveness and efficiency of its performance. It is concerned with ensuring that required level of quality is achieved in a software.

It involves defining appropriate quality standards and procedures and ensuring that these are followed. Software quality management aim is to develop a 'quality culture' where quality is seen as everyone's responsibility.

<b>Concept of software quality management - </b>

Software quality management integrates the various internal processes within the organization and intends to provide a process approach for project execution. A process based software quality management enables the organizations to

identify, measure, control and improve the various core business processes that will ultimately lead to improved business performance.

Software quality management system in its basic concept is quite simple. It seeks to recognize the external quality related requirements specified in licenses to trade, guidelines, specified customer requirements, and the chosen management system standards.

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

Ensure that all requirements have been documented within the management system in the appropriate location in terms of defined specific system

<b>1.1 Software Quality defined </b>

<b>Definition of Software Quality - Software Quality is the degree of conformance </b>

to explicit or implicit requirements and expectations.

• Software quality measures how well software is designed, quality of design, and how well the software conforms to that design quality of conformance, although there are several different definitions. It is often described as the 'fitness for purpose' of a piece of software.

 The totality of functionality and features of a software product that bear on its ability to satisfy stated or implied needs.

• Software requirements are the foundations from which quality is measured.

• Specified standards define a set of development criteria that guide the manager is software engineering.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Following factors are used to measure software development quality. Each

attribute can be used to measure the product performance. These attributes can be used for Quality Assurance as well as Quality Control.

This question of reason for being is distinct from security, look and feel and reliability concerns which are important but are not the concerned with the main function or value add of the software.

<b>Usability - </b>

Usability includes looking at, capturing, and stating requirements based around user interface issues, e.g. issues such as accessibility, interface aesthetics, and consistency within the user interface.

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>Efficiency - </b>

Measured in terms of time required to complete any task given to the system. For example, system should utilize processor capacity, disk space and memory

efficiently. If system is using all the available resources, then user will get

degraded performance failing the system for efficiency. If system is not efficient then it cannot be used in real time.

<b>Integrity or Security- </b>

Integrity comes with security. System integrity or security should be sufficient to prevent unauthorized access to system functions, preventing information loss, ensure that the software is protected from virus infection, and protecting the privacy of data entered into the system.

Software reuse is a good cost efficient and time saving development way.

Different code libraries classes should be generic enough to use easily in different

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

application modules. Dividing application into different modules so that modules can be reused across the application.

<b>Interoperability - </b>

• Interoperability of one system to another should be easy for product to exchange data or services with other systems. Different system modules should work on different operating system platforms, different databases and protocols conditions.

• Applying above quality attributes standards we can determine whether system meets the requirements of quality or not

<b>1.2 SQA and Testing defined and distinguished </b>

Why is Quality Assurance so important? -

We have three basic points why we need quality assurance. These points benefit the project from a developer’s perspective and as a customer.

It creates an opportunity to monitor and to continually improve the development process until the final product simultaneously meets the development firm and the customer’s standards.

QA is crucial to making sure that standards and procedures are followed. To ensure the founding problems are fixed.

<b>What is Assurance? - </b>

Assurance is nothing but a positive declaration on a product or service, which gives confidence. It is certainty of a product or a service, which it will work well. It gives a guarantee that the product will work without any problems as per the expectations or requirements.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>What is Quality Assurance? - </b>

 Quality Assurance popularly known as QA, is an activity to ensure that an organization is providing the best possible product or service to customers.  Quality Assurance focuses on improving the processes to deliver Quality

Products to the customer. An organization has to ensure, that processes are efficient, and effective as per the quality standards defined for software products.

 Quality Assurance is a set of activities for ensuring quality in the processes by which products are developed.

 Quality Assurance aims to prevent defects with a focus on the process used to make the product. It is a

 proactive quality process.

 Quality Assurance is to improve development and test processes so that defects do not arise when the

 product is being developed.

 Establish a good quality management system and the assessment of its adequacy. Periodic

 conformance audits of the operations of the system.

 Prevention of quality problems through planned and systematic activities including documentation.

 Everyone on the team involved in developing the product is responsible for quality assurance.

<b>Quality assurance has a defined cycle called PDCA Cycle or Deming Cycle. </b>

Plan - Organization should plan and establish the process related objectives and determine the processes that are required to deliver a high quality end product. Act – Implement actions that are necessary to achieve improvements in the processes.

Do – Development and testing of processes and also “do” changes in the processes.

Check – Monitoring of processes, modify the processes, and check whether it meets the predetermined objectives.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>It Will improve customer satisfaction — </b>

With all software development, there is the potential that customers may find some kind of issue every now and again. If QA has been monitored efficiently the good news is that it will only take a limited time to rework.

<b>Reduced cost of development— </b>

Once we locate defects which are fixable at the beginning of a phase rather than after the client uses the final product it means we can easily pinpoint the

problems and rework our design as well our codes to ensure QA throughout the development process.

<b>Reduced cost of maintenance — </b>

The majority of project defects do not necessarily happen during code

development but can be located and defined even earlier. That's why we think that QA should integrate from the beginning.

<b>Definition of Quality Control - Quality Control is concerned with the software </b>

product being developed. It measures and controls the quality of the software as it is being developed.

 Quality Control ensures that the approaches, techniques, methods and processes are designed in the project are following correctly. QC activities monitor and verify that the project deliverables meet the defined quality standards.

 Quality Control is a reactive process and is detection in nature. It recognizes the defects. Quality Control has to complete after Quality Assurance.

 Quality Control ensures that the final product is error free and satisfactory.  Quality Control can also be referred as testing.

 The Quality Control system identifies and addresses product errors or defects.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>Software Quality Control is a set of activities for ensuring quality in software products. </b>

<b>It includes the following activities - </b>

<b>Formulating the Quality management plan - </b>

The quality management plan is tracked as a live plan throughout the software development life cycle.

• It helps in planning checkpoints for work products and the development process.

• It is also tracks changes made to the development process based on the result of the checkpoints.

• The quality management plan identifies the quality aspects of the software product to be developed.

<b>Applying Software Engineering - </b>

Application of software engineering techniques helps the software designer to achieve high quality specification.

• The designer gathers information using techniques. Using the information gathered, the designer prepare projects estimation.

<b>Conducting Formal Technical Reviews - </b>

Formal technical review in conducted to assess the quality and design of the prototype.

• It is meeting with the technical staff to discuss the quality requirement of a software product.

• Final technical reviews help in detecting errors at an early phase of development.

• This prevents errors from percolating down to the later phases.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Applying a Multi-Tiered Testing Strategy - </b>

Software Testing is very important task of software quality activity, which aims errors detection.

• Unit Testing is the first level of testing. The subsequence level of testing are integration and system testing.

• There are various testing strategies followed by organization. Sometimes, developers perform unit testing and integration testing and testers

perform functional and system testing.

• Sometimes beta testing with selected clients is also conducted to test the product before final release.

<b>Enforcing Process Adherence - </b>

This emphasizes the need for process adherence during product development. The development process should also adhere to procedures defined for product development. Hence, this is a combination of two tasks namely,

<b>Product Evaluation - </b>

• Product evaluation ensures that the standards laid down for a project are followed. During product evaluation, the compliance of the software product to the existing

• standards are verified. Project evaluation ensures that the software product reflects the requirements identified in the project management plan.

• Process monitoring ensures that appropriate steps to follow the product development procedures carried out. Software quality monitors process by comparing the actual steps carried out with the steps in the documented procedures.

These tasks ensure that the project related procedures and standards are followed. They also ensure that

products and processes confirm to standards and procedures. Audits ensure that product evaluation and process monitoring are performed.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>Controlling Change – </b>

• The change control mechanism ensures software quality by formalizing requests for change, evaluating the nature of change, and controlling the impact of change. Change control mechanism is implemented during the development and maintenance stages.

<b>Measuring Impact of Change – </b>

• Changes in the product or process are measured using software quality metrics. Software quality metrics help in estimating the cost and resource requirements of a project.

Metrics enables managers and developers to monitor the activities and proposed changes throughout the software development life cycle and initiate corrective actions.

<b>Perform SQA Audits - </b>

Software quality assurance audits scrutinize the software development process by comparing it to the established processes.

• This ensures that proper control is maintained over the documents required during software development life cycle.

• Audits also ensure that the status of an activity performed by the developers is reflected in the status report of the developer.

<b>Keeping Records and Reporting- </b>

Keeping records and reporting ensures the collection and circulation of information relevant to software quality assurance activities are reported and complied for future reference.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>What is Software Review? - </b>

Software review is an effective way of filtering errors in a software product. • This means the cost of fixing a defect rises dramatically if it is found late in the development life cycle of the product.

• Software reviews is used as a filter at various points of software development. Reviews conducted at each of these phases, analysis, design, coding and testing reveal areas of improvement in the product.

• Reviews also indicate those areas that do not need any improvement. You can use software review to achieve consistency and uniformity across products. review also make the task of product creation more manageable.

<b>Inspection - Inspection improves the reliability, availability, and maintainability of </b>

a software product. Anything readable that is produced during software development can be inspected.

• The readable material can be requirements specifications, design documents and models, test plans, system documentation and user. • Inspection can be combined with structured, systematic testing to provide

a powerful tool for creating defect free programs.

<b>Walkthrough - In a walkthrough, author presents their developed artifact to an </b>

audience of peers. Peers question and comment on the artifact to identify as many defects as possible.

<b>• It involves no prior preparation by the audience. Usually involves minimal documentation of either the process or any arising issues. </b>

<b>Peer review - Peer review is a process used for checking the work performed by </b>

one's equals or peers to ensure it meets specific criteria.

• Peer review is used in working groups for many professional

occupations because itis thought that peers can identify each other's errors quickly and easily, speeding up the time that it takes for mistakes to be identified and corrected.

• The report is prepared with the list of issues that needs to be addressed.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>1.3 The difference between QA and QC Difference between QA and QC - </b>

• QA is a set of activities for ensuring quality in the processes by which products are developed.

• QA aims to prevent defects with a focus on the process used to make the product. It is a proactive quality process.

• The goal of QA is to improve development and test processes so that defects do not arise when the product is being developed.

• Verification is an example of QA.

• QC is a set of activities for ensuring quality in products. The activities focus on identifying defects in the actual products produced.

• QC aims to identify and correct defects in the finished product. Quality control, therefore, is a reactive process.

• Whereas the goal of QC is to identify defects after a product is developed and before it's released.

• Validation or Software Testing is an example of QC.

• Establish a good quality management system and the assessment of its adequacy. Periodic conformance audits of the operations of the system. • Prevention of quality problems through planned and systematic activities

quality, process and service.

• Quality control is usually the responsibility of a specific team that tests the product for defects.

• QC is a corrective tool.

• Statistical Tools and Techniques can be applied in both QA and QC. When they are applied to processes process inputs and operational parameters, they are called Statistical Process Control and it becomes the part of QA.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

• All people who are involved in the developing software application as responsible for the quality assurance.

• Quality assurance is a staff function Quality assurance identifies weakness in processes to improve them.

• When statistical tools and techniques are applied to finished products process outputs, they are called as statistical quality control sqc and comes under qc.

• Only the testing team is responsible for quality control. • Quality control is a line function.

• Quality control identifies defects to be fixed.

<b>1.4 The Software Quality Assurance function </b>

<b>Software Quality Assurance function - Basically there are three types of </b>

functions, these are named as defining quality, measuring quality, and improving quality.

<b>The QA triangle effectively illustrates the synergy between these three QA functions. </b>

Each core function actually represents a constellation of activities, as explained below. The triangle shape indicates that rather than a unique sequence of steps that initiate.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

QA activities, all core functions need to take place in a balanced manner for a QA strategy to be effective.

The greatest impact on quality of care results only when all three functions are implemented in a coordinated fashion. In this database, the focus is on issues relevant to the measurement of quality.

<b>Defining Quality - Defining quality means developing expectations or standards of quality. Standards can be developed for inputs, processes, or outcomes i.e. expected outputs, results or impact. </b>

 A good standard is reliable, realistic, valid, clear, and measurable. Standards of quality can be developed for each of the nine dimensions of quality shown below, which cover widely recognized attributes of quality.  Improving Quality -Uses quality improvement methods e.g. problem

solving, process redesign or re- engineering to close the gap between the current and the expected level of quality or defined by the standards. This core function applies quality management tools and principles to –

 Identify or determine what one wants to improve.  Analyze the system.

 Develop a system and test or implement the changes to see if they really yield improvement and based on the results of testing, decide whether to abandon, modify, or implement the solutions.

<b>Measuring Quality -Measuring quality consists of quantifying the current level of performance or compliance with expected standards. </b>

• This process requires identifying indicators of performance, collecting data, and analyzing information.

• Measuring quality is inextricably linked with defining quality because the indicators for measuring quality are related to the specific definition or standard of quality under study.

• When standards define quality, measuring quality requires assessing the level of compliance with standards. Hence, measuring quality is easier with

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

a clear definition or standard, because the indicators are directly derived from the expression of the standards. Likewise, measuring quality leads directly to identifying areas for improvement or enhancement.

The QA team must be realistic about what data the team can readily collect at the facility level or across the system. A simple performance monitoring system with a limited number of indicators related to the improvement goal is usually very effective.

Measurement strategies, such as special surveys, self- assessment, audits, and supervision visits, must be carefully designed so that those stakeholders ultimately controlling the quality of care takes full ownership of the quality improvement process.

The team in charge of making improvements should fully participate in defining standards, identifying indicators, and developing a measurement strategy.

<b>1.5 The role of Software Quality Manager </b>

Role of Software Quality Manager -

• Define and implement the overall QA strategic approach.

• Define and implement the overall QA tactical/operational approach. • Define and implement an efficient QA operating model to align with the

company's business goals.

• Manage teams across multiple geographic locations, releases and projects.

• Manage and maintain the QA team budget.

• Build the QA area/team, QA team structure, and QA roles and responsibilities based on the projects the QA group would be responsible to deliver.

• Build a strong QA team through better recruitment, retention, training, and performance evaluation.

• Set the overall QA test strategy that includes all the various types of testing being performed by the QA team.

• Determine the scope of the overall QA team based on all the business demand, run the business maintenance work, resource capacity and skill set.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

• Provide input from a testing perspective to the delivery release roadmap and project schedule plan, capacity, and deployment to production schedule.

• Maintain the QA team's capacity planning, utilization and assignment allocations, etc.

• Create and maintain the overall QA Project Plan and Statement of Work. • Identify overall QA milestones, external milestones, dependencies,

issues, risks and assumptions.

• Assign release/project work to the various QA teams.

• Ensure release/project testing commitments are met for the entire QA team.

• Develop and maintain strong working relationships with all the areas engaged with the overall QA team.

• Resolve escalated issues and risks with firm mitigation plans and escalate outstanding issues if required.

• Identify needs for implementing new processes and analyze project trends to improve and optimize existing processes. Ensure both new and existing processes are being followed.

• Identify areas of improvement increase speed, quality and gain efficiencies.

• Identify the various tools needed by the QA team and help customize these various tools based on testing needs.

• Identify and help build the Automation model, framework and approach.

• Identify and help build the Regression Test Bed.

• Create and maintain the QA team member skill set database. • Provide leadership and guidance to build and maintain a high

performance environment.

• Provide specific training, coaching, direction and mentoring to the QA team members.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>Module -2 Skill Set of Software Quality Manager Skill Set of Software Quality Manager – </b>

<b>Being a good QA engineer- </b>

A good QA Manager is first of all a good QA engineer. It requires additional skill, though.

<b>Effective communication – </b>

A QA Manager must be an extremely good communicator. This includes - • Report global status and risk analysis to top management.

• Capability to communicate with technical and non-technical people.

• Having the diplomacy to say "no" when global quality is not acceptable for release Part of the communication is also the not so well appreciated

"meetings". Meetings are useful to a good organization, though.

<b>Having and spreading the "customer-focus" vision - </b>

• To have the QA engineers efficient in their work, they must have the desire to see customers happy.

• Leaving some time to people to let them learn by themselves.

<b>Bringing out creativity in others - </b>

• Organizing brainstorm sessions on a regular basis.

• Discussing a lot with QA engineers to lead them to have the "idea" instead of exposing directly the idea i. e. if you've got it before them. A good QA manager teaches the "way of thinking" before anything else

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

• Explaining any decision, you take so that the team get the intellectual process that led to that decision.

• Working in group team.

<b>Motivating people - </b>

• Be motivated yourself.

• Share your motivation to the others.

• The result of QA activities is immediately seen by the end-user which is quite valorizing.

• Seeing a "manual operation" becoming a completely automated job is demonstrating how talented people can use machines to improve life. • Thoroughly testing a feature, A is often more complex than developing the

feature A. It's then a challenging (so enhancive) task.

<b>Team building - </b>

A "dream" team is a team where all people are technically very good in their job but also like to work together and appreciate each other’s.

• Organize events and activities.

• Have some chats together on the working hours about non-technical subjects when the whole team is present.

• Have QA people cooperating more with other teams.

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>Decision making - </b>

In QA manager there is "manager", which means that this includes making decisions.

• Not being overwhelmed by stress.

• Not hesitating to recognize a mistake soon-it is much better than trying to work around for years the issue.

• Taking innovative or risky initiatives.

• Not hesitating to change the processes at risk to destabilize some people if you think it is necessary.

<b>Managing Software Quality Throughout the Lifecycle </b>

• To create these outputs namely the Quality Plan various tools and techniques are used.

• These tools and techniques are huge topics and Quality Experts dedicate years of research on these topics.

• We would briefly introduce these tools and techniques in this article.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Quality Assurance - </b>

The input to the Quality Assurance processes is Quality Plan created during Planning.

Quality Audits and various other techniques are used to evaluate the

performance of the project. This helps us to ensure that the Project is following the Quality Management Plan.

The tools and techniques used in the Planning Process such as Design of Experiments, Cause and Effect Diagrams may also be used here, as required.

<b>Quality Control - </b>

Quality Management Plan.

Quality Standards defined for the Project.

Actual Observations and Measurements of the Work done or in Progress. The Quality Control processes use various tools to study the work done. If the work done is found unsatisfactory it may be sent back to the development team for fixes. Changes to the development process may be done if necessary.

<b>Benefits of Quality Management - </b>

• Assure Good Manufacturing Practice and Regulatory Compliance. • Improve product quality.

• Eliminate recurring product issues.

• Reduce development cycles by avoiding prior development/product issues. • Single database to associate quality issues with product data records.

• Enhance visibility of quality issues across all teams.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>Requirements Management and Engineering </b>

<b>What is requirements management? Requirements management is a process </b>

which includes gathering, analyzing, prioritizing, agreeing, defining and controlling all customer business requirements continuously throughout a software project.

• The most fundamental aspect of requirements management is the need to communicate effectively.

• If one stakeholder alters a requirement in some way, the project manager needs to identify how that change is going to impact the requirements of others involved in the project and communicate those changes to them.

<b>The Five Stages of Requirements Management </b>

• Requirements management is often viewed as a five-step development process

• The project manager and key stakeholders will evaluate the requirements during each step of the process.

<b>Step 1 – Investigation </b>

• Typically, the first step will be that of fact-finding or investigation.

Participants identify their goals and examine the requirements necessary for meeting those goals.

• They evaluate the resources that they have for meeting the requirements, identify any obstacles that may exist and propose solutions. During this early stage of requirements management, much of what is being structured is tentative, and all parties are aware of this.

• It is inevitable that requirements will shift as the process moves forward, so this investigative phase of requirements management is just a starting point.

<b>Step 2 – Feasibility </b>

• The next stage of requirements management involves the feasibility of the project in terms of cost

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

• This helps to shape the project as it moves forward toward design and development

• The project manager and stakeholders must determine exactly what is required to ensure the project is viable from an economic standpoint. • The team must address questions concerning whether or not the

organization has the technological capabilities and expertise to achieve the project's goals or whether additional resources will be required.

<b>Step 3 – Design </b>

• After the investigation and feasibility stages, the project then moves forward to the design phase. This is where tangible goals start to come to fruition.

• There will inevitably be some changes to the requirements that will need to be communicated and subsequently addressed by those responsible for various aspects of the design.

• An important part of requirements management is determining if these changes will affect the cost or scope of the project.

<b>Step 4 – Construction and Testing </b>

• Once the design has been approved, a prototype or working model is typically constructed and put through a series of tests. This helps the team ensure that the project will be able to progress according to schedule and stay within budget.

• The project requirements are often adjusted and refined during the testing stage of requirements management and must be documented accordingly.

<b>Step 5 – Release </b>

• Once the product is finally approved, itis released.

• As the product enters into use, there is still the need for ongoing requirements management related to proposed upgrades, add-ons, improvements, marketing, sales, and the like.

• These will be documented and addressed during the investigation phase of the next release.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>The need for Requirements Management - </b>

 The development of complex systems presents many challenges to system engineers.

• Even the development of a small system requires an understanding of all the needs of the user, together with the ability to communicate cause and justification for any changes.

 Therefore, a process of management and control of this information is needed.

<b>The purpose of Requirements Management - </b>

• The foremost purpose of Requirements Management is the ability to ensure that the delivered system satisfies the needs of the users.

<b>Requirements Management - </b>

The aim of the Requirements Management process is the development of an item or system, which exactly meets the needs of the user, within a time scale, and for a price that satisfies the user.

• The advantage of the use of Requirements Management is the reduction in problems that may occur if a process is not followed.

• The following list of problems are some of those that may, and often do, occur when requirements are not managed.

• The needs of the user are not met. • Unimportant work is done.

• Non-required functions are developed. • Time and money wasted.

• Increased likelihood of bugs or errors.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

so cripples the resulting system if done wrong. No other part is as difficult to rectify later.

• Requirements are statements of what the system must do, how it must behave, the properties it must exhibit, the qualities it must possess, and the constraints that the system and its development must satisfy.

• A condition or capability needed by a user to solve a problem or achieve an objective.

• A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document.

Requirements engineering emphasizes the use of systematic and repeatable techniques that ensure the completeness, consistency, and relevance of the system requirements. Specifically, requirements engineering encompasses requirements elicitation, analysis, specification, verification, and management.

• Requirements elicitation is the process of discovering, reviewing,

documenting, and understanding the user's needs and constraints for the system.

• Requirements analysis is the process of refining the user's needs and constraints

• Requirements specification is the process of documenting the user's needs and constraints clearly and precisely.

• Requirements verification is the process of ensuring that the system requirements are complete, correct, consistent, and clear.

• Requirements management is the process of scheduling, coordinating, and documenting the requirements engineering activities.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>Change Control and Release Management Change Control - </b>

• Change control is a systematic approach to managing all changes made to a product or system. The purpose is to ensure that no unnecessary changes are made, that all changes are documented, that services are not

unnecessarily disrupted and that resources are used efficiently.

• The change control process is usually conducted as a sequence of steps proceeding from the submission of a change request. Typical IT change requests include the addition of features to software applications, the installation of patches, and upgrades to network equipment.

<b>Six-step process for a software change request. </b>

<b>Documenting the change request- When the client requests the change, that </b>

request is categorized and recorded, along with informal assessments of the importance of that change and the difficulty of implementing it.

<b>Formal Assessment - </b>

The justification for the change and risks and benefits of making or not making the change are evaluated. If the change request is accepted, a development team will be assigned. If the change request is rejected, that fact is documented and communicated to the client.

<b>Planning - </b>

The team responsible for the change creates a detailed plan for its design and implementation, as well as a plan for rolling back the change should it be deemed unsuccessful.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>Six-step process for a software change request. Designing and testing - </b>

The team designs the program for the software change and tests it. If the change is deemed successful, the team requests approval and a date for implementation.

<b>Implementation and review - </b>

The team implements the program and stakeholders review the change.

<b>Final assessment - </b>

If the client is satisfied that the change was implemented satisfactorily, the

change request is closed. If the client is not satisfied, the project is reassessed and steps may be repeated.

<b>Release Management - </b>

Release Management is the process responsible for planning, scheduling, and controlling the build, in addition to testing and deploying Releases. Release Management ensures that IS&T delivers new and enhanced IT services required by the business, while protecting the integrity of existing services.

<b>Six-step process for a software change request. Objectives of release management - </b>

• Increase the number of successful releases, including reducing the number of releases with unexpected outcomes.

• Decrease the number of incidents caused by releases. Create a single documented process for managing all Releases.

• Maintain a single repository for recording all Releases through the lifecycle. • Ensure that the process is adopted, adhered to, and escalated to

management if there are compliance issues.

• Improve coordination between IS&T groups to ensure smooth and timely delivery of IT services.

• Improve productivity by establishing standard release processes and tooling.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

• Ensure that auditable Release controls are established and documented. • Streamline the procedures so that there is an appropriate balance between

the complexity of the Release and the required controls.

<b>Assuring quality during development Why assuring quality matters? - </b>

Improved quality assurance could help countries achieve their goal of ensuring high quality provision in tertiary education and preparing their populations for participation in the knowledge economy.

• The transition from elite to mass participation in tertiary education has increased the burden on national budgets.

• The move towards the New Public Management (NPM) approach requires policy makers to demonstrate the effectiveness of public spending.

• Governments have agreed to provide more autonomy to tertiary education institutions, so as to improve TEIs' central management in exchange for quality assurance.

• New private educational offerings have called for better protection of consumers.

• Quality provision in TEIS is important to attract students and secure revenues in competitive environments.

• The role of tertiary education in training knowledge workers contributes to economic growth.

• Ensuring quality in tertiary education beyond the elite segments also important for employment and social cohesion.

• The shift towards the new economy has increased students and employer’s expectations of tertiary education.

• The growing internationalization of tertiary education calls for a closer monitoring of cross-border education quality.

• Quality assurance can be defined as the process of establishing stakeholder confidence that provision input, process and outcomes fulfils expectations and measures up to threshold minimum requirements.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>Best Practices in software Testing </b>

<b>Best practices for an effective Software Testing - </b>

There are 10 best practices for an effective software testing, these are as below -

<b>Process - </b>

• It is critical that the organization defines a process that is robust and certified by experts in order to initiate the software assurance quality culture.

• The process will serve as a guideline that may evolve over time. Most importantly, it should be made official and should be followed through. Improvements will be made until a mature process is established.

<b>Managerial Commitment - </b>

• Managerial commitment should stem from the CIO to ensure alignment from each of the development managers, as well as from the development areas of each country.

• Everyone must be aware of the value that is added by testing & QA to the business. The process, therefore, must account for the value of the

solutions that it offers to the organization.

<b>Personal Experience - Hiring someone as a tester that lacks necessary </b>

experience is a common mistake.

• It is vital to acknowledge that the position requires experience in both the business and in software development in general.

<b>Deliverables - As part of the software development and testing processes, it is </b>

necessary to define deliverables, such as requirements, a testing plan, and testing cases.

• These will guarantee that testers can effectively follow-up throughout the project from the software quality perspective.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b>Tools Usage - </b>

• Both the use of tools for tracking and managing defects, as well as the creation of test cases and execution, are essential for increasing the maturity of the testing and QA process. The process may begin without tools, but they are a requisite for increasing execution maturity.

• Tools are using for tracking and managing defects, as well as the creation of test cases and execution, are essential for increasing the maturity of the testing and QA process. The process may begin without tools, but they are a requisite for increasing execution maturity.

<b>Metrics - </b>

Metrics use to Developing and creating metrics to track the software quality in its current state, as well as to compare the improvement with previous versions, will help increase the value and maturity of the testing process

• E.g. the number of components with errors in the software or the total number of components in the software or the number of errors detected in the testing phase or total number of errors detected.

<b>Testing Environment -Implementation of appropriate testing environments that </b>

allow developers to reproduce the system execution in production environments is crucial to the creation and execution of the corresponding test cases.

<b>Test Data - </b>

• The testing environment required for day-to-day operation should provide or ensure availability of the necessary data to enable the corresponding test execution.

• Even if you have developed the appropriate testing environments,

developers need to access specific data required to execute the associated test cases.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<b>Change Management - </b>

• Like any other production environment, the testing environment should properly track changes in configuration, ensuring not only controlled results, but that the tests are run in environments that closely resemble those of the real production environment.

<b>Developer Awareness - </b>

• It is critical to have an awareness process that includes management commitment at each and every business unit and for associated developers.

• The goal is to demonstrate that testing activities add value to their daily work.

<b>Module - 3 Best practices in SQM What is software inspection? - </b>

Inspection Determine the suitability of a work product for its intended use, but beyond that search for anomalies by examination through educated inspectors.

• Additionally, required roles are the Author and the Reader. The roles are explicitly separated and cannot be assumed by one person.

• Inspection reporting forms, Inspection check lists, Hardware product specifications, Hardware performance data. Some of these inputs are optional. The reporting form is mandatory as well as the inspection check list.

• The outputs are a formal inspection report, a formal defect summary and a defect list with classified defects. The emphasis is on providing a standard output of found errors which also would allow statistical evaluations.

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>Moderator - </b>

Leads the inspection, schedules meetings, controls the meetings, reports

inspection results, and follows up on rework issues. Moderators should be trained in how to conduct inspections, including how to keep participants with strong technical skills but low social skills from killing each other.

<b>Author - </b>

Created or maintains the work product being inspected. The author may answer questions asked about the product during the inspection, and he also looks for defects. The author cannot serve as moderator, reader, or recorder.

<b>Reader - </b>

Reader describes the sections of the work product to the team as they proceed through the inspection. The reader may paraphrase what is happening in the product, such as describing what a section of code is supposed to do, but he does not usually read the product verbatim.

<b>Best practices in software inspection - Planning - </b>

The moderator selects the inspection team, obtains materials to be inspected from the author, and distributes them an d any other relevant documents to the inspection team in advance. We leave the responsibility for requesting an

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

inspection to the author, but you should establish some entry criteria for assessing readiness of a product for inspection.

<b>Overview meeting - </b>

This meeting gives the author an opportunity to describe the important features of the product to the inspection team. It can be omitted if this information is already known to the other participants.

participants, the meeting should be rescheduled.

<b>Best practices in software inspection - Causal analysis - </b>

An important long-term benefit of an inspection program is the insight it can provide into the kinds of defects being created and process changes you can make to prevent them.

<b>Rework - </b>

The author is responsible for resolving all issues raised during the inspection. This does not necessarily mean making every change that was suggested, but an explicit decision must be made about how each issue or defect will be dealt with.

<b>Follow-up - </b>

To verify that the necessary rework has been performed properly, the moderator is responsible for following up with the author.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<b>Defect Tracking and Reporting </b>

<b>What is defect tracking and reporting? - </b>

Bug tracking is a process used by quality assurance personnel and programmers to keep track of software problems and resolutions.

• A bug tracking system is normally put in place to store information about reported bugs. This type of issue-tracking system provides a clear,

centralized overview of development requests and their corresponding states.

• Defect tracking is a fundamental and critical part of application lifecycle management.

• Defect tracking can be tedious, yet comparing tracked defects can also help testers improve their work.

• Bug tracking enables users to enter bug reports directly into a system that logs and tracks them.

<b>• Analysis - </b>

How should testers evaluate unexpected system behavior, including suspected false positives and false negatives? Testers will need to have the diagnostic knowledge to determine the correctness of the test output.

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<b>Defect Prevention </b>

<b>What is defect prevention? - </b>

Defect prevention is one of the important activity in any software project. It is QA process to identify the root causes of defects and improve the process to avoid introducing defects, which help to improve the quality of the software product.

• In defect prevention phase, testers are involved in the studying and reviewing requirement specification document.

• Basically this is an art to review the requirement documents. While

studying these documents testers run into different queries or misleading or unclear requirements.

• Tester and other team member needs to come up with such type of

queries and get resolved from stakeholders. So based on queries raised by team, stakeholder provide inputs and provide changed or updated

requirement specification document.

• Along with testers, developers play an important role in this phase. In this phase developer involved in some activities like reviewing requirement, code review, static code analysis, unit testing etc.

• Generally, in order to complete the project on time developer often ignores the uncertainty in specification documents or developer fail to understand the requirement. Such ambiguities are implemented in the code makes more bugs for tester to identify.

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

• If tester finds these ambiguities upfront in the requirement specification review phases, then it catches upfront. While cost of such defects are smallest and benefit of fixing defects in defect prevention stage is significantly lower than the fixing in later stages.

• As a result, it reduces cost overall time, cost & resources required big time. Such a way testers are help team in the defect prevention phase.

<b>Process Improvements Models (CMMI, SIX Sigma) </b>

<b>What is Process Improvement? - </b>

Process improvement is the proactive task of identifying, analyzing and improving upon existing business processes within an organization for optimization and to meet new quotas or standards of quality.

• It often involves a systematic approach which follows a specific method low but there are different approaches to be considered.

• Some examples are benchmarking or lean manufacturing, each of which each focuses on different areas of improvement and uses different methods to achieve the best results.

• Processes can either be modified or complemented with sub-processes or even eliminated for the ultimate goal of improvement.

• Process Improvement an ongoing practice and should always be followed up with the analysis of tangible areas of improvement. When implemented successfully, the results can be measured in the enhancement of product quality, customer satisfaction, customer loyalty, increased productivity, development of the skills of employees, efficiency and increased profit resulting in higher and faster return on investment.

• When we take a problem-solving approach or simply try to fix what's broken, we may never discover or understand the root cause of the

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

difficulty. Murphy's Law comes into play and our efforts to "fix" things may actually make things worse.

• However, when we engage in true process improvement, we seek to learn what causes things to happen in a process and to use this knowledge to reduce variation, remove activities that contribute no value to the product or service produced, and improve customer satisfaction.

• A team examines all of the factors affecting the process: the materials used in the process, the methods and machines used to transform the materials into a product or service, and the people who perform the work.

<b>CMMI stands for Capability Maturity Model Integration. </b>

• CM MI is a framework of best practices. The current version, CM MI-DEV, describes best practices in managing, measuring and monitoring software development processes.

The CM Ml model does not describe the processes themselves; it describes the characteristics of good processes, thus providing guidelines for companies developing or honing their own sets of processes.

<b>"how do we know?". </b>

• How do we know what we are good at?. • How do we know if we're improving?.

• How do we know if the process we use is working well?.

• How do we know if our requirements change process is useful?. • How do we know if our products are as good as they can be?.

• The CM Ml also helps us identify and achieve measurable business goals, build better products, keep customers happier, and ensure that we are working as efficiently as possible.

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

• CM MI is comprised of a set of "Process Areas." Each Process Area is intended be adapted to the culture and behaviors of your own company. • The CM Ml is not a process, it is a book of 'what' not a book of 'how' and

does not define how your company should behave.

• More accurately, it defines what behaviors need to be defined. In this way, CM MI is a "behavioral model" and well as a "process model."

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<b>What is Six Sigma? - </b>

Six Sigma is a methodology for pursuing continuous improvement in customer satisfaction and profit. It is a management philosophy attempting to improve effectiveness and efficiency.

Six Sigma is a highly disciplined process that helps us focus on developing and delivering near- perfect products and services.

<b>Features of Six Sigma - </b>

• Six Sigma's aim is to eliminate waste and inefficiency, thereby increasing customer satisfaction by delivering what the customer is expecting.

• Six Sigma follows a structured methodology, and has defined roles for the participants.

• Six Sigma is a data driven methodology, and requires accurate data collection for the processes being analyzed.

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

Six Sigma is about putting results on Financial Statements.

Six Sigma is a business-driven, multi-dimensional structured approach for -

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<b>Benefits of Six Sigma - </b>

• Generates sustained success.

• Sets a performance goal for everyone.

• Enhances value to customers.

• Accelerates the rate of improvement.

• Promotes learning and cross-pollination.

• Executes strategic change.

<b>Lean Software Process </b>

<b>What is Lean Software Process? - </b>

• Lean software process is a translation of lean manufacturing and lean IT principles and practices to the software development domain.

• A pro-lean subculture is emerging from within the Agile community. Lean is most popular with startups that want to penetrate the market, or test their idea and see if it would make a viable business.

• Lean is based on two fundamental principles - first, one must take a

systemic view to improvement and second, one must do this by looking at the flow of work though the system.

• The first is a shift from managing people to improving the systems within which people work. The second is a shift from focusing on productivity directly to removing delays in workflow to increase productivity.

</div>

×