Software Quality Assurance

In process quality metrics

In process quality metrics means individual stages, rather than the final testing stage. In some organization in process quality metrics means tracking defect arrival during formal machine testing as well as it cover various parameters in each phase of the development cycle.

It is less formally defined than end product metrics and their practices.

Following are the some basic metrics can be used in in-process metrics:
A] Defect Density During Machine Testing

B] Defect Arrival Pattern During Machine Testing

C] Phase-Based Defect Removal Pattern

D] Defect Removal Effectiveness

A] Defect Density During Machine Testing:-
It is the number of confirmed defects detected in software during a specified period of development divided by the size of the software

Higher defect rates found during testing is an indicator that the software has experienced higher error insertion during its development process.

B] Defect Arrival Pattern During Machine Testing:-
The pattern of defect arrivals studies number of defect arrives during testing of software. Defect can occur during and after the software development process and it may have pattern of defect.

It can be calculated in Mean Time to Repair (MTTR), Mean time Between Failure (MTBF), Mean Time to Failure (MTTF) etc

C] Phase-Based Defect Removal Pattern:-
It summarizes the relationships among three metrics

1] Defect injection

2] Defect removal, and

3] Effectiveness

It is an extension of the test defect density metric.

D] Defect Removal Effectiveness:-
Defect Removal Effectiveness relates to the ability to remove defects introduced to a system by a project during the project life cycle.

It can be calculated or expressed as

DRE = (total defects found during the project/total defects introduced by the project)x 100

Posted by Kumar in Software Quality Assurance, 0 comments

Software Quality Assurance Question Bank

As per the Savitribai Phule Pune University Master of Computer Application (MCA) syllabus following are the chapter wise questions designed for you. I hope it will help you to review syllabus contents and achieve good marks.

Chapter No:- 1 Software Quality Assurance Fundamentals
Long Answer Question
1] What is quality assurance (QA) and software quality assurance (SQA). Explain activities of
SQA in detail

2] Explain quality factors (Mc Calls) in details

Short Note Question
1] Define QA, QC and SQA

2] Building blocks of SQA

3] Quality metrics

Chapter No:- 2 Software Reliability
Long Answer Question
1] Define software reliability. Explain models of software reliability in detail

2] Define software reliability. Explain reliability techniques in detail

Chapter No:- 3 Software Verification & Validation Activities
Long Answer Question
1] Explain V and V in detail

2] Write checklist for “Online University Result System”

3] Case study on checklist

Short Note Question
1] Software inspection

2] Automated static analysis

3] Clean room software development

4] V and V

Chapter No:- 4 Software Quality Assurance Plan:
Long Answer Question
1] Explain steps to develop and implement a Software Quality Assurance

Short Note Question
1] ISO standards

2] CMM

3] Malcom Balridge

4] Six sigma

Chapter No:- 5 Software Quality Assurance Metrics
1] How to measure software quality metrics

2] Metrics used in software maintenance

3] Examples on metrics program

Short Note
1] In process quality metrics

Chapter No: – 6 Software Quality Metrics Methodology
1] Explain software quality metrics methodology in detail

2] Explain fundamentals in measurement theory

Short Note
1] Software quality indicator

2] Measurement theory

Chapter No: – 7 Software Quality Infrastructure Components
1] Preventive and corrective actions

2] Configuration management

3] Supporting quality devices

4] Procedure and work instruction

Posted by Kumar in Software Quality Assurance, 0 comments

How to Establish Software Quality Requirements

Software Quality Requirements are concern with all user specified functional  and non functional requirements. Quality of product is defined when functions are meet with requirements. Following are the list of software quality requirements are used to improve software quality during software development
1] Consistency: – The absence of clear contradiction within data

2] Correctness: – It extent to which data is up to date

3] Completeness: – All necessary values and data should be present as per system point of view
and user perspective

4] Precision: – It measures the degree of information needed in a stated context of use

5] Accuracy: – The degree to which a value confirms to its actual or specified values. It can be
stated in terms of
A] Syntactical accuracy
B] Semantic accuracy

6] Security:- Data to be accessed and interpreted by only authorized users

7] Availability:- Data should be always retrievable

8] Recoverability: – Maintain and preserve a specified values and physical and logical integrity,
even in the event of failure

9] Understandability: – Real meaning of data is easy for users to understand

10] Manageability:- Capability of data to be stored properly from a functional point of view

11] Efficiency: – Degree of capability of data processing and performance under stated condition

12] Changeability: – Easy to modified its type or values for changes in technological environment as per requirement or user specified functionality

13] Portability: – Capability of data to be moved from one platform to another. It is also called as ‘interoperability ‘

Posted by Kumar in Software Quality Assurance, 0 comments

How to Measur Software Quality Metrics

A software metric is a standard of measure of a degree to which a software system or process possesses some property. A measurement is one way to understand how well a process is working and what a process is doing.

Software metrics can be classified into three categories:
I] Product metrics

II] Process metrics and

III] Project metrics

I] Product metrics:-
Describe the characteristics of the product such as size, complexity, design features, performance, and quality level.
Mean time to failure

Defect density

Customer problems

Customer satisfaction.

II] Process metrics:-
Can be used to improve software development and maintenance.
Examples include the
Effectiveness of defect removal during development

Pattern of testing defect arrival

The response time of the fix process

III] Project metrics:-
Describe the project characteristics and execution
Examples include the
Number of software developers

The staffing pattern over the life cycle of the software

Cost

Schedule

Productivity

Above Software Quality Metrics are measured in terms of:-
Customer satisfaction

Conformance to requirements

Quality of design

Quality of standard

Quality of performance

Software Quality Metrics are measured on following function points:-
1. Data communications

2. Distributed functions

3. Performance

4. Heavily used configuration

5. Transaction rate

6. Online data entry

7. End-user efficiency

8. Online update

9. Complex processing

10. Reusability

11. Installation ease

12. Operational ease

13. Multiple sites

14. Facilitation of change

Metrics are used to,
1. Take the decision for next phase of activities such as, estimate the cost & schedule of future projects.

2. Understand the kind of improvement required to success the project

3. Take decision on process or technology to be modified etc.

Posted by Kumar in Software Quality Assurance, 0 comments

Steps to Develop and Implement Software Quality Assurance Plan

Software Quality Assurance (SQA) is an umbrella activity that is applied through the software process. A SQA plan provides a road map for establishing software quality assurance. It is developed by the SQA group and the project team, the plan serves as a template for SQA activities that are instituted for each software project.

Following are the steps to develop SQA
1] Initiate SQA process

2] Planning

3] Tracking

4] Training

5] Review and Inspection

6] Issue Resolution

7] Testing

8] Audit

9] Improvement process

Above steps are divided into five main steps to develop and implement a SQA plan which are:
Step 1: Document the plan

Step 2: Obtain management acceptance

Step 3: Obtain development acceptance

Step 4: Plan for implementation of the SQA plan

Step 5: Execute the SQA plan

Step 1: Document the plan

1] Initiate SQA process:-
Consist procedures, techniques, scope, purpose and tools used to ensure that a product meets the requirements specified in software requirements specification.

2] Planning: – Do plan for all process which are used to fulfill user specified requirement

3] Tracking: – Track the raised issues and other problems

4] Training: – Provide training if required

5] Review and Inspection: – Do the review to ensure are we going right way or not

6] Issue Resolution: – Resolve all raised issues

7] Testing: – Test the functionality as per specification

8] Audit: – Do audit for product functionality, process, documentation, designing, input, output etc.

9] Improvement process: – Schedule the follow up activities to improve the product functionality and process for quality product

Step 2: Obtain management acceptance
For successful implementation of a SQA planning management participation in must. They are also responsible for quality of software project, resources and approval process

Step 3: Obtain development acceptance
The software project team members or development team members must adhere to the project SQA plan; everyone must accept it and follow it.

Step 4: Plan for implementation of the SQA plan
Design a schedule for drafting, reviewing, resource and responsibility and approving the SQA plan should be developed.

Step 5: Execute the SQA plan
Execute the actual process and ensure deviation.

Posted by Kumar in Software Quality Assurance, 0 comments

What are Software Quality Indicators

A Software Quality Indicator is used to calculate and to provide an indication of the quality of the system by assessing system characteristics. The software quality indicators address management concerns. It is also used for decision making by decision maker. It includes a measure of the reliability of the code.

An indicator usually compares a metric with a baseline or expected result.

It acts as a set of tools to improve the management capabilities of personnel responsible for monitoring

Software quality indicators extract from requirements are flexibility and adaptability.

Following quality indicators can use during the software testing & development life cycle.
1] Progress:-
It Measures the amount of work accomplished by the developer in each phase

2] Stability:-
Assesses whether the products of each phase are sufficiently stable to allow the next phase to proceed

3] Process compliance:-
It compliance with the development procedures approved at the beginning of the project to the running development process

4] Quality Evaluation efforts:-
It evaluates percentage of the developer’s effort that is being spent on internal quality evaluation activities and time required to deal.

5] Test coverage:-
It measures the amount of the software system / functionality covered by the developer’s testing process.

6] Defect detection efficiency:-
Measures how many of the defects detectable discovered during that phase.

7] Defect removal rate:-
Total number of defects detected and resolved over a period of time

8] Defect density:-
Detects defect-prone components of the system

9] Defect age profile:-
It measures the number of defects that have remained unresolved for a long period of time.

10] Complexity:-
It measures the complexity of the code. It counts the total path, branch, coverage to calculate the complexity

Posted by Kumar in Software Quality Assurance, 0 comments

Best Software Reliability Techniques

Building high software reliability depends on the application of quality attributes at each phase of Software Development Life Cycle (SDLC). These quality attributes are emphasis on error prevention, removal and measuring techniques. Metrics are needed at each SDLC development phase to measure applicable quality attributes. Best engineering techniques/methods can largely improve software reliability.

Software Reliability Techniques:-

Following are the best techniques used to improve software reliability:

1] Verification and Validation

2] Trigger, locate and remove software defect

3] Measure and Analyze

4] Trending reliability

5] Predictive reliability

Trending reliability:- Track the failure data produced by the software system
It divides into four categories

I] Error Seeding:- Estimate the number of errors in a program and divide them in indigenous (original) and induced (Stimulated)

2] Failure Rate:-Failure rate per fault at the failure intervals

3] Curve Fitting:- Study the relationship between software complexity and number of faults in a program

4] Reliability Growth:- Measure and predicts the improvement of reliability programs through the testing process

Predictive reliability:- Assign probabilities to the operational profile
Software reliability improvement techniques dealing with the existence and demonstration of faults in software. It is divided into three categories:

– Fault avoidance/prevention

– Fault removal

– Fault acceptance that assumes a system has unavoidable and undetectable faults and aims to make provisions for the system to operate correctly, even in the presence of faults

All above said activities are used to minimize the possibility of defect occurrence after release and therefore improve software reliability.

Posted by Kumar in Software Quality Assurance, 0 comments

What is Software Reliability

Software cannot be seen nor touched, but it is successfully executed with the help of hardware. For successful execution and reliability, software reliability and software quality assurance is striving to identify and apply metrics to software products that promote and assess reliability. Software reliability is a product of quality, and software quality can be measured and improved by applying software metrics. Software Reliability is an important factor affecting on system reliability.

Software Reliability Definition and Concept:-
According to IEEE reliability means “The ability of a system or component to perform its required functions under stated conditions for a specified period of time.”

Software reliability is defined as “the probability of failure free operations and all intended function in a specified environment for a specified time period without experiencing failure.

The NASA Software Assurance Standard, NASA STD 8739.8, defines software reliability as a discipline of software assurance that:
1] Defines the requirements for software controlled system faults/failure detection, isolation and recovery

2] Review the software development processes and products for software error prevention and/or reduced functionality states; and

3] Defines the process for measuring and analyzing defects and defines the reliability and maintainability factors

Using these definitions, software reliability is comprised of following activities:

– Error prevention

– Fault detection

– Fault elimination

– Measurement to maximum reliability

There has been extensive work in measuring software reliability using mean time between failure (MTTF), mean time to failure (MTF) and mean time to repair (MTR)

Posted by Kumar in Software Quality Assurance, 0 comments

IEEE Software Testing Standards

IEEE software testing standards in any organization are internationally set of standards agreed to develop quality product, set of rules and regulations and standard procedure. There are many IEEE standard / templates available and each is specified in its own test document standards and specifications.

Following are the list IEEE standards used in software testing -:
1] IEEE 829 Standard – Test Design Specification Template
– Test design specification identifier
– Feature to be tested
– Approach refinements
– Test identification
– Feature pass / fail criteria

2] IEEE 829 Standard – Test Case Specification Template
– Test specification identifier
– Output specification
– Input specification
– Test items
– Environmental needs
– Special procedural requirements
– Intercase dependencies

3] IEEE 829 Standard – Test Procedure Specification Template
– Test procedure specification standard
– Purpose
– Special requirement
– Procedure steps

4] IEEE 829 Standard – Test Plan Template
– Introduction
– Test plan identifier
– Test items
– Feature to be tested
– Feature to be not tested
– Approach
– Item pass / fail criteria
– Suspension and resumption criteria
– Test deliverables
– Test tasks
– Environmental needs
– Responsibilities
– Staffing and training
– Schedule
– Risk and contingencies
– Approvals

5] IEEE 829 Standard – Test Log Template
– Test log identifier
– Description (items to be tested and environment)
– Activity and event entries (execution, procedure, environment, incident)

6] IEEE 829 Standard – Test Summary Report Template
– Test summary report identifier
– Evaluation summary
– Summary of result and activities
– Assessment

7] IEEE 829 Standard – Test Item Transmittal Template
– Transmittal report identifier
– Transmitted items
– Location and status
– Approvals

8] IEEE 1061 Standard – Methodology for Software Quality

9] IEEE 1059 Standard – Verification and Validation guidance

10] IEEE 1008 Standard – Unit testing

11] IEEE 1012 Standard – Verification and Validation standards

12] IEEE 1028 Standard – Software Inspection

13] IEEE 1044 Standard – Classification of Software Anomalies standards

14] IEEE 1044-1 Standard – Classification of Software Anomalies guidance

15] IEEE 830 Standard – Software Development Requirement Specification

16] IEEE 730 Standard – Software quality Assurance

17] IEEE 12207 Standard – Software Life Cycle Process

18] IEEE BS 7925-1 Standard – Vocabulary

19] IEEE BS 7925-2 Standard – Component testing

Posted by Kumar in Software Quality Assurance, Software Testing, 0 comments

Software Quality Measurement Tools

Software quality measurement is benchmark for monitoring, verifying and validating with early defect detection and application size.

To fulfils user expectations, improve source code quality, minimize threats and user specified requirement SQA team and large IT companies use following software quality measurement tools
1] CUPRIMDS
2] FURPS

1] CUPRIMDS -:
This is integrated tool of Capability, usability, performance, Reliability, Installation, Maintenance, Documentation and service. With the help of these tools, company verifies and validates all user specified requirements.
1. Capability -: Ability to perform certain action through set of controllable measure or environments

2. Usability -: Easy to use, interaction and matching more closely user specified requirements

3. Performance -: A process of performing task and function under critical (stress, load) condition

4. Reliability -: It is process of evaluation and measure under specified time period (MTTF, MTTR)

5. Installability -: It is easy to install, run and retrieve data whenever required

6. Maintainability -: Probability of performing successful operation, measure speed and ease of application after installed

7. Documentation -: It is used to serve official information (manual of technical and facility description) and flow of data

8. Service -: Set of valuable actions performed to fulfils user specified needs or provide facility for user satisfaction

2] FURPS -:
This is integrated tool of Functionality, Usability, Reliability, Performance and Service. All requirements should be verifies and validate with the help of these tools.
1. Functionality -: Verify and validate all user specified functions performing correctly
2. Usability
3. Reliability
4. Performance
5. Service

Posted by Kumar in Software Quality Assurance, 0 comments