Unit III Static Testing. static testing Testing of a component or system at requirements or implementation level without execution of any software, e.g.,

Slides:



Advertisements
Similar presentations
Ossi Taipale, Lappeenranta University of Technology
Advertisements

Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
More CMM Part Two : Details.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Static Technique. Static Technique - Review  A way of testing software work products  Program code, requirement spec., design spec.  Test plan, test.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
 Every stage from phase DESIGN in Software Development Process will have “design document” especially in analysis and design phases.  “Design document”
Stepan Potiyenko ISS Sr.SW Developer.
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
Overview Lesson 10,11 - Software Quality Assurance
SE 555 Software Requirements & Specification Requirements Validation.
Testing an individual module
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
Design Reviews Peer Reviews. Agenda Peer Reviews Participants of Peer Review Preparation for a Peer Review Session The Peer Review Session Post-peer Review.
SystematicSystematic process that translates quality policy into measurable objectives and requirements, and lays down a sequence of steps for realizing.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Meeting Skills.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Introduction to Systems Analysis and Design Trisha Cummings.
S/W Project Management
CHAPTER 5 Infrastructure Components PART I. 2 ESGD5125 SEM II 2009/2010 Dr. Samy Abu Naser 2 Learning Objectives: To discuss: The need for SQA procedures.
Software Inspections and Walkthroughs By. Adnan khan.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Galin, SQA from theory to implementation © Pearson Education Limited 2004 Review objectives Formal design reviews (FDRs) Participants Preparations The.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
S oftware Q uality A ssurance Part One Reviews and Inspections.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 10: Testing and Inspecting to Ensure High Quality Part 4:
Software Quality Assurance Activities
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Inspections. Defect Removal Efficiency The number of defects found prior to releasing a product divided by The number of defects found prior.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Phil Cronin Anne Hill Allen Schones CIS841 Summer on Campus 1998 IN-PROCESS INSPECTIONS FOR OBJECT ORIENTED DESIGNS.
Lecture #9 Project Quality Management Quality Processes- Quality Assurance and Quality Control Ghazala Amin.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Apply Quality Management Techniques Project Quality Processes Certificate IV in Project Management Qualification Code BSB41507 Unit Code BSBPMG404A.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Project quality management. Introduction Project quality management includes the process required to ensure that the project satisfies the needs for which.
The Software Development Process
BSBPMG404A Apply Quality Management Techniques Apply Quality Management Techniques Project Quality Processes C ertificate IV in Project Management
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Advances In Software Inspection
Chapter 4-Static Testing Techniques Types of Reviews Review Process Static analysis using tools.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
SQA COMPONENTS IN THE PROJECT LIFE CYCLE C HAPTER 8 Dr. Ahmad F. Shubita.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Quality Control and Quality Assurance: Introduction
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software testing strategies 2
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Inspection and Review The main objective of an Inspection or a Review is to detect defects. (Not for Giving Alternative Solutions) This activity and procedure.
Applied Software Project Management
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Dr. Rob Hasker SE 3800 Note 9 Reviews.
QA Reviews Lecture # 6.
ISTQB / ISEB Foundation Exam Practice 4 Dynamic test techniques
Code Reviews Assignment Each team should perform a code review
Software Reviews.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

Unit III Static Testing

static testing Testing of a component or system at requirements or implementation level without execution of any software, e.g., reviews or static code analysis. static analysis Analysis of software artifacts, e.g., requirements or code, carried out without execution of these software artifacts. static analyzer A tool that carries out static analysis.

Static TestingDynamic Testing Testing done without executing the programTesting done by executing the program This testing does verification process Dynamic testing does validation process Static testing is about prevention of defects Dynamic testing is about finding and fixing the defects Static testing gives assessment of code and documentation Dynamic testing gives bugs/bottlenecks in the software system. Static testing involves checklist and process to be followed Dynamic testing involves test cases for execution This testing can be performed before compilationDynamic testing is performed after compilation Static testing covers the structural and statement coverage testing Dynamic testing covers the executable file of the code Cost of finding defects and fixing is lessCost of finding and fixing defects is high Return on investment will be high as this process involved at early stage Return on investment will be low as this process involves after the development phase More reviews comments are highly recommended for good quality More defects are highly recommended for good quality. Requires loads of meetingsComparatively requires lesser meetings

Recognize software work products that can be examined by different static techniques. What can be Inspected or reviewed? Anything written down can be Inspected… 1.Policy, strategy, business plans, marketing or advertising material, contracts 2.System requirements, feasibility studies, acceptance test plans. 3.Test plans, test designs, test cases, test results. 4.System designs, software code, user manuals, procedures, training material 5.Plans, visions, ideas, Project progress etc.

What can be reviewed? Anything which could be inspected…i.e. anything written down. Plans, visions, ideas, Project progress etc.

Review Process Reviews vary from very informal to formal. Informal Review A two-person team can conduct an informal review, as the author can ask a colleague to review a document or code. In later stages these reviews often involve more people and a meeting. This normally involves peers of the author, who try to find defects in the document under review and discuss these defects in a review meeting. The goal is to help the author and to improve the quality of the document.

Phases of a formal review Formal reviews follow a formal process. It is well structured and regulated. A typical formal review process consists of six main steps: 1 Planning 2 Kick-off 3 Preparation 4 Review meeting 5 Rework 6 Follow-up.

Planning The first phase of the formal review is the Planning phase. In this phase there view process begins with a request for review by the author to the moderator. A moderator has to take care of the scheduling like date, time, place and invitation of the review. For the formal reviews the moderator performs the entry check and also defines the formal exit criteria. The entry check is done to ensure that the reviewer’s time is not wasted on a document that is not ready for review. After doing the entry check if the document is found to have very little defects then it’s ready to go for the reviews. So, the entry criteria are to check that whether the document is ready to enter the formal review process or not. Once, the document clear the entry check the moderator and author decides that which part of the document is to be reviewed. Since the human mind can understand only a limited set of pages at one time so in a review the maximum size is between 10 and 20 pages. Hence checking the documents improves the moderator ability to lead the meeting because it ensures the better understanding.

Kick-off This kick-off meeting is an optional step in a review rocedure. The goal of this step is to give a short introduction on the objectives of the review and the documents to everyone in the meeting. The relationships between the document under review and the other documents are also explained, especially if the numbers of related documents are high. At customer sites, we have measured results up to 70% more major defects found per page as a result of performing a kick- off

Preparation In this step the reviewers review the document individually using the related documents, procedures, rules and checklists provided. Each participant while reviewing individually identifies the defects, questions and comments according to their understanding of the document and role. After that all issues are recorded using a logging form. The success factor for a thorough preparation is the number of pages checked per hour. This is called the checking rate. Usually the checking rate is in the range of 5 to 10 pages per hour.

Review meeting: The review meeting consists of three phases: Logging phase: In this phase the issues and the defects that have been identified during the preparation step are logged page by page. The logging is basically done by the author or by a scribe. Scribe is a separate person to do the logging and is especially useful for the formal review types such as an inspection. During the logging phase the moderator focuses on logging as many defects as possible within a certain time frame and tries to keep a good logging rate (number of defects logged per minute). In formal review meeting the good logging rate should be between one and two defects logged per minute. Discussion phase: If any issue needs discussion then the item is logged and then handled in the discussion phase. As chairman of the discussion meeting, the moderator takes care of the people issues and prevents discussion from getting too personal and calls for a break to cool down the heated discussion. The outcome of the discussions is documented for the future reference. Decision phase: At the end of the meeting a decision on the document under review has to be made by the participants, sometimes based on formal exit criteria. Exit criteria are the average number of critical and/or major defects found per page. If the number of defects found per page is more than a certain level then the document must be reviewed again, after it has been reworked.

Rework: In this step if the number of defects found per page exceeds the certain level then the document has to be reworked. Not every defect that is found leads to rework. It is the author’s responsibility to judge whether the defect has to be fixed. If nothing can be done about an issue then at least it should be indicated that the author has considered the issue.

Follow-up: In this step the moderator check to make sure that the author has taken action on all known defects. If it is decided that all participants will check the updated documents then the moderator takes care of the distribution and collects the feedback. It is the responsibility of the moderator to ensure that the information is correct and stored for future analysis.

What are the roles and responsibilities involved during a review? During a review four types of participants take part. They are: The moderator: Also known as review leader Performs entry check.Follow-up on the rework. Schedules the meeting. Coaches other team Leads the possible discussion and stores the data that is collected The author: Illuminate the unclear areas and understand the defects found. Basic goal should be to learn as much as possible with regard to improving the quality of the document. The scribe: Scribe is a separate person to do the logging of the defects found during the review. The reviewers: Also known as checkers or inspectors Check any material for defects, mostly prior to the meeting. The manager can also be involved in the review depending on his or her background. The managers: Manager decides on the execution of reviews. Allocates time in project schedules and determines whether review process objectives have been met.

The main review types that come under the static testing are mentioned below: Walkthrough Technical Review Inspection What are the types of review?

1. Walkthrough: It is not a formal process It is led by the authors. (Informal) Author guide the participants through the document according to his or her thought process to achieve a common understanding and to gather feedback. Useful for the people if they are not from the software discipline, who are not used to or cannot easily understand software development process. Is especially useful for higher level documents like requirement specification, etc. The goals of a walkthrough: To present the documents both within and outside the software discipline in order to gather the information regarding the topic under documentation. To explain or do the knowledge transfer and evaluate the contents of the document To achieve a common understanding and to gather feedback. To examine and discuss the validity of the proposed solutions

2. Technical review: It is less formal review It is led by the trained moderator but can also be led by a technical expert It is often performed as a peer(examine) review without management participation Defects are found by the experts (such as architects, designers, key users) who focus on the content of the document. In practice, technical reviews vary from quite informal to very formal The goals of the technical review are: To ensure that an early stage the technical concepts are used correctly To access the value of technical concepts and alternatives in the product To have consistency in the use and representation of technical concepts To inform participants about the technical content of the document

3. Inspection: It is the most formal review type It is led by the trained moderators During inspection the documents are prepared and checked thoroughly by the reviewers before the meeting It involves peers(look closely) to examine the product A separate preparation is carried out during which the product is examined and the defects are found The defects found are documented in a logging list or issue log A formal follow-up is carried out by the moderator applying exit criteria The goals of inspection are: It helps the author to improve the quality of the document under inspection It removes defects efficiently and as early as possible It improve product quality It create common understanding by exchanging information It learn from defects found and prevent the occurrence of similar defects

What is static analysis? Performed on requirement design or code without actually executing the software or before the code is actually run. Goal of static analysis is to find the defects whether or not they may cause failure. Static analysis find defects rather than failures.

What are static analysis tools? It is typically used by the developers before and sometimes during component and integration testing. It is also used by the designers during software modeling. Compiler can be considered as a static analysis tool because it builds a symbol table, points out incorrect usage and checks for non-compliance to coding language conventions or syntax. The various features of static analysis tools are discussed below with a special focus on static code analysis tools because they are the most common in day to day practice. Static code analysis tools are as follows: 1.Coding standards 2.Code Metrics 3.Code Structure

1. Coding standards: A coding standard consists of a set of programming rules, naming conventions (e.g. Classes should start with capital C) and layout specifications (e.g. Indent 4 spaces towards right). The main advantage of this is that it saves lots of effort. The added advantage of adapting this approach is that if we take a well-known coding standard there will probably be checking tools available that support that standard. Without such tools the enforcement of coding standard in an organization is likely to fail because the number of rules in the coding standard is so large that nobody can remember them all. Another reason is that if people spend time checking coding standards in reviews that will distract them from other defects that might otherwise find and marketing the review process less effective.

2. Code metrics: Code metrics is basically the measurement of depth of nesting, cyclomatic number and number of lines of code. This information can be computed not only as the design and code are being created but also during the changes that are made to the system, to see if the design or code is becoming bigger, more complex and more difficult to understand and maintain. The measurement also helps us to decide between several design alternatives. There are many different types of structural measures. One of them is Cyclomatic complexity metric. The Cyclomatic complexity metrics based on the number of decisions in a program. It is important to tester because it provides an indication of the amount of testing. There are many ways to calculate cyclomatic complexity but the easiest way is to sum the number of binary decision statements (e.g. if, while, for, etc.) and add 1 to it.

For example : below is a simple program; IF A=360 THEN IF B>C THEN A=B ELSE A=C ENDIF ENDIF Print A In the program mentioned above has 2 IF conditions. Thus just add 1 to it and the cyclomatic complexity is 2+1=3. We can also calculate the cyclomatic complexity using the control flow. In the control flow shown below there are 7 nodes (shapes) and 8 edges (lines). Thus by formula ((no. of edges-no. of nodes)+2) that is (8-7)+2 = 1+2 = 3.

3. Code structure: Code structure tells us about the effort required to write the code in the first place, to understand the code while making the change, or to test the code using particular tools or techniques. There are several aspect of code structure to consider: Control flow structure: It addresses the sequence in which the instructions are executed. Data flow structure: It follows the track of the data item as it is accessed and modified by the code. Data structure: It refers to the organization of the data itself, independent of the program.