Subscribe by Email


Showing posts with label Software quality assurance. Show all posts
Showing posts with label Software quality assurance. Show all posts

Monday, September 12, 2011

How to define effective metrics? What is the use of quality metrics?

The goal of software engineering is to develop a product that is of high quality. Metrics that are derived from these measures indicates the effectiveness of individual. Metric is a standard for measurement. A metric is a measure that captures performance and allows comparisons and supports business strategy.

The use of quality metrics is to spot the performance trends, comparing alternatives and predicting the performance. However, the costs and benefits of a particular quality metric should be considered as collecting data will not necessarily result in higher performance levels.

Effective metrics should define performance in quantifiable entity and a capable system exists to measure the entity. Effective metrics allow for actionable responses if the performance is unacceptable.

Identifying effective metrics is a bit difficult. Ranges can be identified for an acceptable performance of a metric. It can be referred as breakpoints in case metrics are defined for services and targets, tolerances, or specifications for manufacturing.

Breakpoints are levels where there is a chance that the improved performance will change the behavior of the customer. A target is a desired value of a characteristic. A tolerance is an allowable deviation from target value.


Friday, August 12, 2011

What is software quality? What are McCall and ISO 9126 Quality factors?

To achieve a software of high quality is an ultimate goal. Software quality is assessed by internal and external quality criteria. External quality is critical to the user, while internal quality is meaningful to the developer only. Software quality is a mix of factors that vary across different applications and customers who request them.

McCall's Quality Factors
Software quality is affected by the factors that can be measured directly or indirectly. These include:
- During product operation, factors include correctness, reliability, usability, integrity and efficiency.
- During product transition, factors include portability, re-usability and inter-operability.
- During product revision, factors include maintainability, flexibility and test-ability.

ISO 9126 Quality Factors
This ISO was developed to identify quality attributes which includes:
- Functionality which includes the extent to which software is available for use indicated by sub attributes like suitability, accuracy, inter-operability, compliance and security.
- Reliability is amount of time software is available for use indicated by sub attributes like maturity, fault tolerance and recover-ability.
- Usability is the degree to which software is easy to use indicated by sub attributes like understand-ability, learn-ability and oper-ability.
- Efficiency is the extent to which software makes optimal use of resources indicated by sub attributes like time and resource behavior.
- Maintainability is an ease with which repair can be made to the software indicated by sub attributes like changeability, stability, testability.
- Portability is the ease with it can be transported from one environment to another indicated by sub attributes like adaptability, replace-ability.


Friday, May 6, 2011

What makes a good Software Test Engineer, SQA Engineer, Test Manager?

A good software test engineer has the following qualities:
- a software engineer should focus on having a high quality product.
- a software engineer should understand customer's needs and requirements.
- a software engineer should maintain a tactful and diplomatic relationship with developers.
- a software engineer should maintain a good relationship with non technical people.
- a software engineer should be able to have a judgment skill when needed.

A good Software Quality Assurance engineer has the following qualities:
- a software quality assurance engineer should focus on having a high quality product.
- a software quality assurance engineer should understand customer's needs and requirements.
- a software quality assurance engineer should maintain a tactful and diplomatic relationship with developers.
- a software quality assurance engineer should maintain a good relationship with non technical people.
- a software quality assurance engineer should be able to have a judgment skill when needed.
- a software quality assurance engineer should have a proper understanding of software development life cycle.
- a software quality assurance engineer should understand business approach and goals.
- a software quality assurance engineer should have good communications skills.
- a software quality assurance engineer should be able to find problem areas.

A good QA/Test Manager has the following properties
- he should have a good understanding of software development life cycle.
- he should have a good and healthy relation with the technical and non technical people.
- he should be able to increase his team's productivity and efficiency.
- he should be able to create enthusiasm about work among team members.
- he should be able to make correct and quick decisions.
- he should be good at handling pressure.
- he should have diplomatic skills.


Monday, March 28, 2011

What are different activities that comprise Software Quality Assurance?

To build a quality software, software quality assurance comprise of different activities. People involved are development team and software quality assurance team. The team of software quality assurance is responsible for quality assurance planning, overseeing, analyzing, record keeping, defects analysis and rework.

The activities encompassing software quality assurance are:
- Software Quality Assurance Plan is prepared by SQA team. They identify the evaluation to be performed, audits and reviews to be performed, standards that are applicable, procedures for error reporting and tracking, documents to be produced and amount of feedback required.
- SQA team checks if the selected software development process conform to the organizational policy and quality standards.
- SQA team monitor and track deviations from the software development process. It reviews software engineering activities.
- SQA team reviews, monitor and track defects found with each work products. Documentations are done to ensure that corrections have been made.
- The SQA team ensures that deviations in the software activities and work products are handled based on defined standard operating procedures.
- The SQA team reports deviations and non-compliance to standards to the senior management or stakeholders.

Software quality assurance plans saves time, money, increases productivity, enhances training, provides extra support.


What is Software Quality Assurance (SQA)? What are characteristics of a well-engineered software?

Software Quality Assurance(SQA) is a function of software quality that assures that the standards, processes, and procedures are appropriate for the project and are correctly implemented.
- It is a subset of software engineering that ensures that all deliverables and work products are meet, and they comply with user requirements and standards.
- Its goal is to detect defects before the software isdelivered as a final product to the end-users.
- It includes quality management approach.
- It includes effective methods and tools.
- It includes formal technical reviews.
- It includes a multi-tiered testing strategy.
- It includes control of software documentation.
- It includes a procedure to assure compliance with software development standards, and measuring and reporting mechanism.

How do we say that the software is well-engineered?

- A software should be easy to use by the user.
- A software should have the capability to be able to execute on different platforms.
- A software should be able to transfer from one system to another.
- A software should be able to evolve and adapt to changes over time.
- A software should be reliable, secure and safe.
- A software should be capable of using resources efficiently.

A software has quality if it is fit for use, i.e., it is working properly. It should conform to explicitly stated user's external characteristics, explicitly documented quality standards and implicit characteristics.


Tuesday, June 15, 2010

International Standard Organization ISO 9001:2000 Clause 5

Clause 5: Management Responsibility


Clause 5.1: management Commitment
The measurable quality objectives that are meant to meet customer requirements should be defined and communicated the quality objectives to employees.
Clause 5.2: Customer Focus
The management has to ensure that the customer's requirements are well understood and the customer is well satisfied with the product.
Clause 5.3: Quality Policy
The quality policy reflects the commitment of the management. The quality of the policy has to be signed by the Chief Executive Officer of the organization.

Clause 5.4: Planning


Clause 5.4.1: Quality Objectives
Quality objectives such as increasing productivity, reducing defects etc. has to be defined by the management based on the quality policy of the management.
Clause 5.4.2: Quality management system planning
A quality management system has to be planned by the management to meet the quality objectives. The details of the processes are to be defined.

Clause 5.5: Responsibility, Authority and Communication


Clause 5.5.1: Responsibility and Authority
The quality management system makes it compulsory that a proper and a clear organization chart is drawn, indicating the reporting structure and the responsibilities and authorities of each individual.
Clause 5.5.2: Management Representative
The management representative should be appointed who has the responsibility and authority to implement the quality management system.
Clause 5.5.3: Internal Communication
To avoid lack of communication among team members, a proper procedure for internal communication should be established so that all the employees are in unison.

Clause 5.6: Management Review


Clause 5.6.1: General
Quality policy, quality objectives and quality manual should be periodically reviewed to discuss the effectiveness and possible improvements.
Clause 5.6.2: Review Inputs
The inputs have to be obtained from customers, external auditors, and internal auditors.
Clause 5.6.3: Review output
The outputs will be the action points needed for effective quality management system implementation. This is done after the management review.


Tuesday, June 1, 2010

Evolutionary Development Model - A software development life cycle model

The waterfall model is viable for software products that do not change very much once they are specified. But for software products that have their feature sets redefined during development because of user feedback and other factors, the traditional waterfall model is no longer appropriate.
- The Evolutionary EVO development model divides the development cycle into smaller, incremental waterfall models in which users are able to get access to the
product at the end of each cycle.
- Feedback is provided by the users on the product for the planning stage of the next cycle and the development team responds, often by changing the product, plans, or process.
- These incremental cycles are typically two to four weeks in duration and continue until the product is shipped.

Benefits of Evolutionary Development Model


- Benefit not only business results but marketing and internal operations as well.
- Use of EVO brings significant reduction in risk for software projects.
- EVO can reduce costs by providing a structured, disciplined avenue for experimentation.
- EVO allows the marketing department access to early deliveries, facilitating development of documentation and demonstrations.
- Short, frequent EVO cycles have some distinct advantages for internal processes and people considerations.
- The cooperation and flexibility required by EVO of each developer results in greater teamwork.
- Better fit the product to user needs and market requirements.
- Manage project risk with definition of early cycle content.
- Uncover key issues early and focus attention appropriately.
- Increase the opportunity to hit market windows.
- Accelerate sales cycles with early customer exposure.
- Increase management visibility of project progress.
- Increase product team productivity and motivation.


Tuesday, September 22, 2009

Software Quality Assurance - SQA

Software Quality Assurance (SQA) is defined as a planned and systematic approach to the evaluation of the quality of and adherence to software product standards, processes, and procedures. SQA includes the process of assuring that standards and procedures are established and are followed throughout the software acquisition life cycle. Compliance with agreed-upon standards and procedures is evaluated through process monitoring, product evaluation, and audits. Software development and control processes should include quality assurance approval points, where an SQA evaluation
of the product may be done in relation to the applicable standards.

STANDARDS AND PROCEDURES :
Establishing standards and procedures for software development is critical, since these provide the framework from which the software evolves. Standards are the established criteria to which the software products are compared. Procedures are the established criteria to which the development and control processes are compared.
Standards and procedures establish the prescribed methods for developing software; the SQA role is to ensure their existence and adequacy. Proper documentation of standards and procedures is necessary since the SQA activities of process monitoring, product evaluation, and auditing rely upon unequivocal definitions to measure project compliance.

SQA ACTIVITIES :
Software quality assurance is composed of a variety of tasks associated with two different constituencies - the software engineers who do technical work and an SQA group that has responsibility for quality assurance planning, oversight, record keeping, analysis, and reporting. Product evaluation and process monitoring are the SQA activities that assure the software development and control processes.
Product evaluation is an SQA activity that assures standards are being followed. Product evaluation assures that the software product reflects the requirements of the applicable standard(s) as identified in the Management Plan.
Process monitoring is an SQA activity that ensures that appropriate steps to carry out the process are being followed.
A fundamental SQA technique is the audit, which looks at a process and/or a product in depth, comparing them to established procedures and standards. Audits are used to review management, technical, and assurance processes to provide an indication of the quality and status of the software product.

ROLE OF AN SQA GROUP :
- Prepares an SQA plan for a project.
- Participates in the development of the project's software process description.
- Reviews software engineering activities to verify compliance with defined software process.
- Audits designated software work products to verify compliance with those defined as part of software process.
- Ensures that deviations in software work and work products are documented and handled according to a document procedure.
- Records any noncompliance and reports to senior management.


Facebook activity