A Comparative Study of Software Inspection Techniques for Quality Perspective
Автор: Asad Masood Qazi, Sidra Shahzadi, Mamoona Humayun
Журнал: International Journal of Modern Education and Computer Science (IJMECS) @ijmecs
Статья в выпуске: 10 vol.8, 2016 года.
Бесплатный доступ
Software inspection is useful to detect the defects in any stage software development methodology especially in early stages. Inspection of software defects can improve the software product quality by decreasing rework cost and time from documents, code, and other deliverables. The objective of this study is to identify existing software inspection techniques which help practitioners and software engineers to improve the software quality and to compare them according to some quality attributes. Rather than proposing new techniques we focus on synthesize the existing approaches. A comparison of some approaches is conducted and analyzed which approach is more feasible for the detection of defects. The results of this study show that there are many formal and informal techniques available in literature related software inspection, it is difficult to say well to one of them, but our analysis focused on finding such techniques which cover maximum quality factors in an inspection. Software inspection is an umbrella activity of whole software development life cycle and we found different approaches and frameworks in software inspection which can full fill our desired parameters to improve software quality.
Software Inspection, Software Quality Assurance, Software Testing, Software Defects
Короткий адрес: https://sciup.org/15014907
IDR: 15014907
Текст научной статьи A Comparative Study of Software Inspection Techniques for Quality Perspective
Published Online October 2016 in MECS DOI: 10.5815/ijmecs.2016.10.02
Inspection refers to examine the software systematically intend to detect the defects. The inspection also refers to ensure that; a product which is developed is same as described in documents. Software inspection is a good approach to detection of defects in all stages of software development [1]. The concept of software inspection arose approximately 35 to 40 years ago. In the start, it was considered that; Software inspection doesn't involve coding to detects the defects, inspection of software can be performed through use cases models, checklists etc. But later on some authors also uses some inspection techniques in object oriented programming and software coding as well. [2] Software inspection is also important because it bridges a gap between software testing and software formal verification. As, software testing has major concerns with the software industry, whereas formal verification is related to the academic side, so software inspection lies between testing and formal verification. There is no standard neither given in literature nor adopted by any software organization of software inspection. However, in many existing software engineering process models, software industries case studies and in academia different terminologies are used which are ultimately affected by software inspection. For example pair programming in Extreme Programming (XP). [3]
Software inspection is somehow part of some of the software processes indirectly. For example, we can see in the XP (Extreme Programming) of Agile based software development methodologies, pair programming concept is defined, in which one group member writes code, design or another document and one is dedicated to the review on runtime which supports the knowledge sharing as well as inspection.
Software inspection is not widely used in organization these days. Inspection refers to peer reviews, walkthroughs, and structured reviews. There are many reasons for not using inspection techniques widely in software organizations which are actually myths and these are highlighted by Radice [4]:
-
(1) Inspection is one way technique
-
(2) Inspections are not easy to do
-
(3) Inspections add an extra cost in software quality phase
The reasons of such myths are evolved, because the inspection was considered as a process, having low technology involvement so it was not an enjoyable or interesting task for software engineers or inspectors.
-
A. Traditional Software Inspection Technique Process
The traditional process of Inspection is shown in 0 below. [4] Adaptation of formal software inspection plays an important role in ensuring software quality. Traditional approaches mainly involve informal techniques using walkthroughs, checklists etc. and the meetings are arranged at author's or programmer's desks and review process is held usually in an informal way. Walkthroughs can be structured as well as semi-structured. Traditional Inspection approach can be applied to any software artifact like document or code.
Software inspections may involve software testing, but not necessary because inspection is a review based activity. Inspection process helps in knowledge sharing with in organization because of review meetings, where two or more partners come together to review the work of an individual or team.

Choose


Printing Tool

Distribute Artifacts Paper for Meeting
Fig.1. Flow of Software Inspection Process Traditional Approach
The remainder of this paper is structured as follows: Section 2 summarizes some of the related work. Section 3 describes the existing defect detection techniques and the comparative analysis methodology, used in this paper. Section 4 provides comparison of existing software tools which supports automatic software inspection. Section 5 provides a result analysis of Section 3 and 4. Section 5 presents the future work and also concludes the work.
-
II. Related Work
Software inspection is being used for more than 35 years in research area as well as in software organizations. The main purpose of software inspection is to identify the software defects in early stages to overcome the complexity, budget and to improve software quality.
Taba et.al, (2012) [4] proposes a Scenario based software inspection method and compare it with the traditional approaches. The proposed model is a formal technique and full fills many quality attributes in software inspection process. It also involves pre and post activities. The study lacks in comparative analysis when it only targets on large scale software organizations. Because inspection itself is an approach, which usually can only be taken in large scale organizations.
Management Oriented Inspection), which is again a complete formal approach and can only be successfully applied in large scale software organizations. It increases the efficiency by improving execution time and effectiveness in software inspection process while comparing with traditional approaches. Three parameters are been taken in this comparative study which are FD (Founded Defects), RD (Remaining Defects) and FT (False Positive). Under these parameters DAMEO gives effective results over traditional approaches.
Nancy. S et.al, (2002) [6] tailored the Fagan methodology of software inspection and compare the results with an experiment approach. The Fagan methodology is reduced in four steps rather than six to seven steps. The proposed steps are Planning, Study, and Meetings and follow up. The proposed approach reduces the number of hours spends on preparation phase of individuals which increases the effectiveness and productivity as well as overall time and cost. The results of comparative analysis lack because of involving a small number of parameters.
According to Guilherme (2014) [7], there are many pieces of evidence about the feasibility and efficiency of applying software inspection techniques. Software inspection is a pre-test activity and it is also an important activity of verification validation and testing (VV&T) activities of software development. Software inspection can be applied to any artifact. HP uses inspection techniques, code, testing and documentation. IBM uses inspection for Design and Code section. ICL (an operating system) uses inspection at design level. Shell Research use inspection in Requirements phase.
Porter et.al, (1996) [8] in their review study of software inspection techniques, compare existing methodologies. A comparative analysis presents on the basis of local as well as global analysis. The local analysis doesn't affects software development process during an inspection process. The parameters of comparison are the num number of team size, number of sessions, collection technique, defect detection method and feedback as post development or post inspection activity. The study is presented many years ago, so approaches which are presented later later should also need to synthesize.
A. Aurum et.al, (2002) [9] covers a review of 25 years work of software inspection. Software inspection formally introduced by Fagan (1976) [10] and the later methodologies actually improve the work of Fagan. A comparative analysis of 25 years of work has been presented in this study. Upto 2002 (the year of this publication) there were following advancements in software inspection area: Fagan’s Inspection (1976) [10], Active Design Review (1985) [11], Two-person Inspection (1989) [12], N Fold Inspection (1990) [13], Phase Inspection (1993) [14], Inspection without Meetings (1993) [15], Gilb Inspection (1993) [16]. So, there is need to synthesize the data of software inspection methodologies up to current work.
F Macdona et.al, (1995) [17] presents a review of existing tools which supports the software inspection process. Tools can supports software inspection process in different ways like Documentation support, Annotation support, Automatic defect detection, Checklists, Enforcement, Meetings support, Decision support, Metrics collection, Code inspection (either statement by statement or complete code review). Some of the tools are ICICLE [18], Scrutiny [19], CSI [20], InspeQ [21], and CSRS [22]. The study covers the review of inspection tools up to 1995, so there is need to incorporate the tools which developed later to this review study.
Souza et.al, (2013) [23] in their research includes six software engineers and uses Fagan's and Gilb's inspection methodology with the roles of moderator, reviewer, author, and reader. The aim of this study is to inspect the product line process in the software organization. A result shows that incompleteness, ambiguity, incorrectness, unnecessary information, inconsistency, and nontraceability were found in industrial product line projects using these software inspection techniques. The reason to add this study to related work is a merger of Fagan's and Gilb's methodology to improve the results of software inspection process.
Elberzhager et.al, (2014) [24] compares the software inspection process with software testing. Software inspection is primarily a review process to detect the defects data just like in quality monitoring and testing is done on the output of software inspection which has defected data / defected product. Comparison of inspection and testing is important to include because there are some inspection techniques which includes the testing itself, and some of the techniques are used just to identify the defected data or defected part of a system and shifted forward for the testing process. Authors of [25] also support this argument that inspection process is not a replacement for testing. And to inspect the software deliverables, an inspector should also belong to same environment or organization.
In [26] and [27] the role of software inspection in software industries of Pakistan and Srilanka respectively. In Pakistan’s perspective, software inspection phase is analyzed using ETVX (Entry, Tasks, Validation, and Exit) model and shows that 75 to 100 projects becomes successful using software inspection, whereas without using software inspection, the success ratio of software projects are limited to 50 to 75. In the Sri Lankan software, industry inspection is also formally implemented and industries have proper roles of software inspection process and getting following benefits from software inspections: reduce overall effort, increase productivity and reduces cost. In both of these references, formal inspection is used rather than informal or traditional approach of software inspection techniques.
Kollanus et.al, (2006) [28] argues that software inspection is important in software engineering disciplines but these are not actually implemented properly in some of the organizations. Data in this study is gathered from six software organizations and find the problems or hurdles in the way of inspection. Authors found that there is the lack of inspection training, limited formality with inspection process and immaturity of inspection measurement techniques in most of the software organizations. We include this case study, to identify the new or modified approaches to software inspection from existing literature, which may reduce these obstacles from the inspection process.
-
III. Comparative Analysis of Software Inspection Techniques
-
A. Parameters of Comparison
-
(1) Pre Inspection criteria
-
(2) Defects Detection
-
(3) Defects Removal
-
(4) Efficiency & Effectiveness
-
(5) Complexity
-
(6) Post Inspection procedure
There are some reasons for taking these parameters for comparison. All the existing software inspection methodologies are focuses on before or pre-inspection steps which include the preparation etc., then actual inspection is being done and finally, the post-inspection steps which may include the implementation of reviews and measurements of effectiveness or efficiency etc.
-
B. Formal and Model Based Approaches
Traditional approaches mainly focused on informal or semi-formal of software inspection approaches. Inspectors use checklists before informal inspection meetings, and there were informal reviews and some structured walkthroughs to inspect the elements of software. However, these approaches may contribute the results in some way as studies shows that if the error in requirements does not correct in early stages, the cost may exceed up to 40 percent of actual cost [29] [30] [31]. And another study argues that inspection should be done during design and analysis phase, to detect the defects and then it will decrease the cost from 10 to 100 times less than the testing phase. [32]
Some of the models and formal techniques can be found from different sources of literature.
-
(1) Fagan Methodology
-
(2) Glib Methodology
-
(3) Phased Inspection
-
(4) Scenario Based Inspection Method
-
(5) DEMAO (Defect Management Oriented Inspection)
-
C. Fagan Methodology
FAGAN methodology [10] is a complete software inspection methodology and proposes proper sequence of steps and roles. Steps are: Pre and Post inspection activities, inspection meetings and the roles are software inspector, software tester, and moderator. Fagan’s methodology consists of six phases planning, overview, preparation, examination, rework and follow-up. Firstly moderator at planning phase identifies inspector's role, distribution and verification of inspection material etc. Secondly, an overview is done by the author. Thirdly inspector prepares for meeting and role and it will also improve the process if this preparation inadequate then moderator cancels it. Finally, an Author will correct all defects which will be verified by the moderator.
-
D. Glib Methodology
Glib inspection methodology [16] was developed by the Tom Glib in 1993, like Fagan methodology there are six phases planning, overview, preparation, examination, rework, follow-up etc. according to Glib inspection methodology which is used by an organization is depend on its type of business , it’s up to the customer’s choice whether he choose formal or semi-formal inspection process. An extra step was added by Gilb to inspection process for the improvement of software development process that will produce the document which will be inspected by the inspector.
-
E. Phased Inspection
Phase inspection [14] was proposed by Knight & Myer (1993) where software products are inspected in series of steps called phases where each phase has the specific objective. At each phase product is examine, validate for specific properties of a product. We cannot move forward until corrections are completed. There are two types of phase single-inspector, multiple-inspector. A single inspector uses a checklist that must satisfy the by each product. Multiple-inspector phases are designed for such properties that cannot be described through binary questions. In phase inspection, individual checking is also done via meeting called reconciliation that provides various opportunities for fault detection.
-
F. Scenario Based Inspection Model
Список литературы A Comparative Study of Software Inspection Techniques for Quality Perspective
- Parnas, D.L., Lawford, M.: "The role of Inspection in Software Quality Assurance". IEEE Transactions on Software Engineering 29(8) (2003)
- Abrahamsson, Pekka, Michele Marchesi, and Frank Maurer. Agile processes in software engineering and extreme programming. Springer, 2009.
- Radice, Ronald A. "High Quality Low Cost Software Inspections". Andover, Mass.: Paradox icon Publishing, Jan.2002.
- Taba, Navid Hashemi, and Siew Hock Ow. "A Scenario-Based Model to Improve the Quality of Software Inspection Process." Computational Intelligence, Modeling and Simulation (CIMSiM), 2012 Fourth International Conference on. IEEE, 2012.
- Taba, Navid Hashemi, and Siew Hock Ow. "Improving Software Quality Using a Defect Management-Oriented (DEMAO) Software Inspection Model." 2012 Sixth Asia Modelling Symposium. IEEE, 2012.
- Eickelmann, Nancy S., et al. "An empirical study of modifying the Fagan inspection process and the resulting main effects and interaction effects among defects found, effort required, rate of preparation and inspection, number of team members and product 1st pass quality." Software Engineering Workshop, 2002. Proceedings. 27th Annual NASA Goddard/IEEE. IEEE, 2002.
- Horta Travassos, Guilherme. "Software Defects: Stay Away from Them. Do Inspections!." Quality of Information and Communications Technology (QUATIC), 2014 9th International Conference on the. IEEE, 2014.
- Porter, Adam, Harvey Siy, and Lawrence Votta. "A review of software inspections." Advances in Computers 42 (1996): 39-76.
- Aurum, Aybuke, Håkan Petersson, and Claes Wohlin. "State‐of‐the‐art: software inspections after 25 years." Software Testing, Verification and Reliability 12.3 (2002): 133-154.
- Fagan, M. E. "Design and code inspections to reduce errors in program development." IBM Journal of Research and Development 15.3 (1976): 182.
- Parnas, David L., and David M. Weiss. "Active design reviews: principles and practices." Proceedings of the 8th international conference on Software engineering. IEEE Computer Society Press, 1985.
- Bisant, David B., and James R. Lyle. "A two-person inspection method to improve programming productivity." IEEE Transactions on Software Engineering 10 (1989): 1294-1304.
- Martin, Johnny, and Wei Tek Tsai. "N-fold inspection: A requirements analysis technique." Communications of the ACM 33.2 (1990): 225-232.
- Knight, John C., and E. Myers. "An improved inspection technique." Communications of the ACM 36.11 (1993): 51-61.
- Votta Jr, Lawrence G. "Does every inspection need a meeting?" ACM SIGSOFT Software Engineering Notes 18.5 (1993): 107-114.
- Gilb, Tom, Dorothy Graham, and Susannah Finzi. Software inspection. Addison-Wesley Longman Publishing Co., Inc., 1993.
- Macdona, F., et al. "A review of tool support for software inspection." Computer-Aided Software Engineering, 1995. Proceedings, Seventh International conference.
- Sembugamoorthy, V., and L. Brothers. "ICICLE: Intelligent code inspection in a C language environment." Computer Software and Applications Conference, 1990. COMPSAC 90. Proceedings, Fourteenth Annual International. IEEE, 1990.
- Gintell, John, et al. "Scrutiny: A collaborative inspection and review system." Software Engineering—ESEC'93. Springer Berlin Heidelberg, 1993. 344-360.
- Mashayekhi, Vahid, et al. "Distributed, collaborative software inspection." Software, IEEE 10.5 (1993): 66-75.
- Knight, John C., and E. Myers. "An improved inspection technique." Communications of the ACM 36.11 (1993): 51-61.
- Johnson, Philip M., and Danu Tjahjono. "CSRS User Guide." (1993).
- Souza, Iuri Santos, et al. "Evidence of software inspection on feature specification for software product lines." Journal of Systems and Software 86.5 (2013): 1172-1190
- Elberzhager, Frank, Jürgen Münch, and Danilo Assmann. "Analyzing the relationships between inspections and testing to provide a software testing focus." Information and Software Technology 56.7 (2014): 793-806.
- Ackerman, A. Frank, Lynne S. Buchwald, and Frank H. Lewski. "Software inspections: an effective verification process." IEEE software 3 (1989): 31-36.
- Waqas Ali, Zia-Ur-Rehman, Akhter Badshah, Ali Javed,"Software Inspection in Software Industry: A Pakistan's Perspective", IJMECS, vol.7, no.3, pp.47-53, 2015.
- Jayatilake, S. M. D. J. T., et al. "Role of software inspections in the Sri Lankan software development industry." Computer Science & Education (ICCSE), 2013 8th International Conference on. IEEE, 2013.
- Kollanus, Sami, and Jussi Koskinen. "Software inspections in practice: Six case studies." Product-Focused Software Process Improvement. Springer Berlin Heidelberg, 2006. 377-382.
- O'Regan, Gerard. "Software Inspections Capability Maturity Model Integration." Introduction to Software Quality. Springer International Publishing, 2014. 101-118
- O'Regan, Gerard. Introduction to Software Quality. Springer New York, 2002.
- Boehm, Barry W. Software engineering economics. Vol. 197. Englewood Cliffs (NJ): Prentice-hall, 1981.
- Tyran, Craig K. "A software inspection exercise for the systems analysis and design course." Journal of Information Systems Education 17.3 (2006): 341.
- Porter, Adam, Lawrence G. Votta Jr, and Victor R. Basili. "Comparing detection methods for software requirements inspections: A replicated experiment." Software Engineering, IEEE Transactions on 21.6 (1995): 563-575.
- Cockram, Trevor. "Gaining confidence in software inspection using a Bayesian belief model." Software Quality Journal 9.1 (2001): 31-42.
- Adams, Edward N. "Optimizing preventive service of software products." IBM Journal of Research and Development 28.1 (1984): 2-14.
- Nagappan, Nachiappan, et al. "Preliminary results on using static analysis tools for software inspection." Software Reliability Engineering, 2004. ISSRE 2004. 15th International Symposium on. IEEE, 2004.
- Parab, Jivan S. Exploring C for microcontrollers: A hands on approach. Springer Science & Business Media, 2007.
- Van Emden, Maarten H. "Structured inspections of code." Software Testing, Verification and Reliability 2.3 (1992): 133-153.
- Lewis, Clayton, et al. "Testing a walkthrough methodology for theory-based design of walk-up-and-use interfaces." Proceedings of the SIGCHI conference on Human factors in computing systems. ACM, 1990.
- Hedberg, Henrik, and Jouni Lappalainen. "A preliminary evaluation of software inspection tools, with the DESMET method." Quality Software, 2005. (QSIC 2005). Fifth International Conference on. IEEE, 2005.
- Harjumaa, Lasse. "Distributed software inspections-an experiment with Adobe Acrobat." Proceedings of the IASTED International Conferenceon Computer Science and Technology (2003): 26-31.
- Lanubile, Filippo, Teresa Mallardo, and Fabio Calefato. "Tool support for geographically dispersed inspection teams." Software Process: Improvement and Practice 8.4 (2003): 217-231.
- Powell, Daniel. "Tool support for verification-based software inspection." Software Engineering Conference, 2004. Proceedings. 2004 Australian. IEEE, 2004.
- Hussain, Fida, and Muhammad Saeed Shehzad. "" Robust and Flexible Software Inspection model" for Software Re-Engineering Process: Abstraction phase." 14th Asia-Pacific Software Engineering Conference (APSEC'07). 2007.
- Hashemitaba, Navid, and Siew Hock Ow. "Generative inspection: an intelligent model to detect and remove software defects." Intelligent Systems, Modeling and Simulation (ISMS), 2012 Third International Conference on. IEEE, 2012.
- Christenson, Dennis A., and Steel T. Huang. "A code inspection model for software quality management and prediction." Global Telecommunications Conference, 1988, and Exhibition.'Communications for the Information Age.'Conference Record, GLOBECOM'88, IEEE. IEEE, 1988.
- Biffl, Stefan, Michael Halling, and Monika Kohle. "Investigating the effect of a second software inspection cycle. Cost-benefit data from a large-scale experiment on re-inspection of a software requirements document." Quality Software, 2000. Proceedings. First Asia-Pacific Conference on. IEEE, 2000.