Tools , Strategies & Models for Incorporating Software Quality Assurance in Risk Oriented Testing

Evolution of software is cumbersome process and also needs many iterations of software testing for satisfying some quality criteria. Software quality assurance activities must be effectively used for the proper software quality management and to achieve good product quality .Effective quality management is related to Value Engineering and Risk Management. In the present paper we will study relevance of quality assurance tools, strategies and models while doing risk based testing for the proper product function orientation .By analysing risks we can get to know how much we need to do the testing of software and further can assure the software quality. Article history Received: 19 June 2017 Accepted:05 July 2017


Introduction
Software projects can get delayed due to improper definition of evolutionary scope, unplanned and untracked project resources, unclear roles and responsibilities and lack of software quality assurance by auditing and reviewing.Software quality management is an ongoing process to establish a kind of environment that can allow middle and top management for jointly facilitating software testing which is again evolutionary in nature 1 .Before releasing software there can be various software quality assurance activities which involve code inspection, review and software testing.The main aim of these activities is to detect and fix all the defects before they get converted into

Oriental Journal of Computer Science and Technology
failures.It is one of the most crucial activities by the project manager to allocate the resources for software quality assurance to make the system failure free 2 .
This research aims to focus on various tools, methodologies and models related to quality assurance in the domain of risk based testing.As while testing the software or before testing all risks must be mitigated by proper assessment and that only can lead to software quality improvement.Number of remaining defects can be one of the effective measure for evaluation of QA prioritization 2 .For maintaining quality of the system we should be able to dynamically update the level of non reviewed files dependent on co fixes done while doing review of previous files .All the software artifacts i.e. classes or methods or components can be assigned for proper investigation of quality assurance.Software quality.
prediction rarely considers the defects impact while provision of recommendation of software location that can be addressed.Such predictions are need of hour as they can inform about the issues in the software beforehand and help in improving the quality of software.
Various search engines i.e.Elsevier, Springer, IEEE, google Scholar, Taylor and Francis have been explored for collecting data related to quality assurance, quality models and risk oriented testing.
The research has been organized into various sections.In section 2 we will go through various aspects of software quality, software quality assurance, tools, techniques and models for risk oriented testing of software and section 3 we conclude our research by discussing about the future scope .

various concepts related to software quality assurance and risk based testing Quality
The IEEE/ISO 24765 defines the quality as degree to which various components of system meets the requirements.It is also the ability of system to meet the user requirements or we can define it as conformity to expectations of customer 3 .Software quality factors is defined as management oriented software attribute which contributes to quality.These are attributes that affect a component or service quality.Software quality is both process and product oriented 4 as shown in the figure1 below: Software product is tested by an independent test centre and development is accompanied by preventive assurance measures.According to ISO 9126 4 software quality characteristics can be as follows as shown in the figure 2 given below: Various components are considered for system under test and these components can be shown as in figure 3. Quality Assurance System quality is assured when quality risks are reduced by performing various activities like reviews, model checking and inspection which consumes project 30% to 90%.So right planning and control can contribute to quality assurance.The planned activities must be effective enough to handle the risk.So the indicators for the expected number of defects are required for planned QA activities 5 .
Quality assurance is a part of software quality management where the later is an umbrella of all processes that software services and life cycle implementations meet quality objectives 3 .SQM comprises of three main categories which can be quality planning , assurance and control .Software quality assurance is basically a quality guide which is independent of a particular project .It is basically a set of standards or regulations to verify and conform the product characteristics .In the following figure 4 SQA can be seen as a part of SQM .
Quantitative measure for quality is defined and it tells the degree by which an item can have a quality attribute.
Conceptual model for assuring software quality considers a software quality framework which is composed of software quality factors that further includes software quality criteria.
Software quality metric is composed of various metrics and these can be product, process and project metrics.Measurements are used to measure the software quality metric.Following in the figure 5 it has been depicted conceptually as shown.

Tools used for SQA
For assuring the software quality the tool support is required.
Various tools has been used in the past.For failure pattern classification FOCUST was developed that included the relations to roles and defect classes.The fault section and the failure section can be selected.By listing the matching possibilities can be considered by the given input.We can develop scenarios for user as well as tester 6 .A popular language for risk based analysis is TTCN-3 by which we can use the tree and tabular notations based on programming languages.It has been used in a variety of systems in embedded systems and web application system.A framework named as jABC can be used as a modelling framework for automata learning.This framework is used for service oriented design and uses the extreme model driven design.The reusable components can be used into graph structures which are well defined in form 7 .Clone detection which has been a technique for software quality analysis uses the ConQAT for inspection of analysis metrics and also provides a view for comparison of files having clone instances which further helps in recommending corrective actions.It helps in architecture conformance analysis too.For bug detection we can use Find Bugs 1.3.9 for java based systems 8 .j Learn is another tool which is used for integration of test development and SQA activities.This tool has various views for programming and testing 9 .The instructional module for it is given in the figure 6 as shown below: X Query based analysis framework which is very flexible in nature can support the automated analysis of software artefacts.Such framework is language independent and easily adaptable in nature.Here query description is done on a very high level of abstraction so that more analysis rules can be easily added.New types of patterns can be extended easily.Query patterns are independent from domain specific languages 10 .

Methodologies for Quality Assurance
Quality assurance in embedded domain can be optimized with the help of metrics .Different analysis and testing techniques can be used to optimize the overall quality of the software.Such integrated quality assurance methodology can help in providing a basis for integration of various static and dynamic quality assurance and to generate the knowledge between integrated techniques for further improvement of quality assurance 11 .Such technique includes following steps:

Applying integrated quality assurance approach
Cooperative agent based approach can be used for quality assurance and web software testing to support development and software maintenance activities 12 .Software services agents can be used for software development in evolutionary manner .Management agents are used for managing the services agents which can be used for task scheduling, monitoring these agents states.Various agents co exist with the software throughout the life cycle.
One more method named as QATAM (Quality Assurance Trade off Analysis Method) which helps in identification of candidate QA strategy and then evaluate this strategy in the given project context 13 .First the context and scope is defined and then QA method repositories are build up and then QA strategy development is done and finally QA Strategy evaluation and selection is done.Quality profile building can be another basis for user based testing.It can be a strategy matrix which shows expression of selected quality characteristics.In the strategy matrix it is done by concept of relative importance.In the determination process they stress on through communication with users 14 .
Analogy based classification systems has been used in the past which aims to find out the solution for a given problem based on previous experience represented by cases in a case library.Such type of system acts as quality classification model before unit testing and various system operations.Threshold value of quality factor which is taken as number of faults define whether the module is fault Fig. 8: layers of ACQC prone or not.Here similarity is defined in terms of case attributes 15 .
The methodology flow chart is as given below in the figure 7. Another Methodology for SQA that has been used in data migration projects is described as follows 16 : Collective Intelligence based quality assurance includes advantages of FMEA and inspection which helps in early defect prediction and making information explicit by using checklists and outcomes of inspection 17 .In one more approach for QA for mobile applications we use FIT4Apps methodology which combines testing and inspection for assuring quality 18 .Risk based testing and continuous quality control can be implemented by alphabetic models used for risk coverage.Various modelling layers for active quality control are given in the Figure 8: Models for Quality Assurance Firstly, Mc Call introduced the concept of software quality model used for US Air Force system development.
It considered all software quality models from the user and customer perspective [8].It considered three factors as most important which were: Quality models are used to make the abstract concepts of software quality more tangible in nature.Taxonomies for check listing the quality requirements and overall quality assessment metrics can be formulated 19 .
Dromey utilized a quality model having quality attributes, components and their interrelationships.He demonstrated the impact of properties on attributes in a precise manner.
Wager first described the product factors and then Fig. 9: generic process of risk based testing gave a model for quality assessment based on this model.He formulated aggregation rules in the collected data for measurement and provided the evaluation specifications which defined the measurement for product entities.Quality models for open source systems were used by Lochmann which described product factors impact on quality characteristics 20 .

Risk Oriented Testing
Risk based testing is a composition of various stages i.e. risk identification then assessment and finally analysis and evaluation.We have shown the generic risk based testing in the figure 9 as follows 21 :

Conclusion and future work
Quality assurance in risk oriented testing has been explored very less now.Once we mitigate the risk items in the software by testing then quality of software gets automatically improved for mitigating the risks.Quality modelling helps in quality assessment of the software.Various quality models have been proposed in past but very little work has been done to actively monitor quality of software by regular risk assessment.So in future we can work out for giving a new quality assurance model that can assess the software risks and mitigate them for quality improvement.Furthermore we can apply quality assurance in risk oriented testing with the help of evolutionary algorithms/genetic programming/mathematical modelling as none of these have been explored in past.

Fig. 7 :
Fig. 7: Analogy based classification for SQA First we require an external data migration team • Define project Scoping • Application of a data migration platform • Analysis and cleansing of data • Data Migration in an incremental form