1-Software Testing Principles and Concepts

  • Published on

  • View

  • Download

Embed Size (px)


  • 8/8/2019 1-Software Testing Principles and Concepts


    Software Testing Principles and Concepts

    1. Vocabulary

    Quality is segmented in to two Categories

    Preventive MethodDetective Method

    Producer Viewpoint: Quality of the products meets his requirementsCustomer Viewpoint: Quality of the product is fit for use or meets the customer needs

    1.1 Difference between QA and QC

    Quality Assurance Quality Control

    QA helps to establish the process QC Relate with specific Product or

    ServiceQA identify the weakness of the current process andimprove the process

    QC verifies whether the specific featureare available or not

    QA is concerned with all the products where theprocess is followed.

    QC identify the defect and correcting thedefects

    QA is also called as QC over QC and evaluateswhether QC is working

    QC is the responsibility to theteam/worker

    If there is no process there is no QA QC is concerned with the specific product

    QA is the set of systematic activities provide theconfident that the products met his specification andsatisfy the user needs

    QC is the process where product qualityis compared with the standard and ensurethat the product is developed based onthe standards

    Quality policy is implemented through the

    development and continues improvements of thesoftware development process

    QC is start with the requirements and

    ends when testing is completed.

    Internal Auditing is an independent appraisal activity within organizations for the reviewof operations and is the service to management.

    1.2 Cost of Quality

    The cost of quality is basically the amount spend to develop the product.

    The cost of quality includes the additional costs spend to ensure that the products isdelivered with quality.

    Prevention Costs

    Money spends to prevent error before the product is build.

    Money spend to ensure that to do the job right at the first time.

  • 8/8/2019 1-Software Testing Principles and Concepts


    It includes money spends on creating the testing process and standard, LearningTools, training provided to workers etc.

    Appraisal Costs

    Money spend to review the products against requirements.

    It has been done after the product is build and before the products is deliveredto the customers.

    It include money spend on inspection, testing and reviews

    Failure Costs

    Money spends once the products are implemented in the production.

    It includes repairing of products and makes them to meet requirements.

    1.3 Software Quality Factors

    It mainly deals with the Risk Factors

    What will happened if the features which is needed not available in theapplications.

    Not Easy to Use

    There are 11 Software quality factors

    Reliability Perform intended function with required precision

    Maintainability - Effort of testing the application any changes are madeTestability - Effort for testing the applications

    Flexibity Effort required modifying the program.

    Portability Effort to transfer from one configuration to another

    Integrity Unauthorized person cannot be accessed.

    Reusability Reuse some set of functions

    Interoperability Couple one system with other

    Correctness - Fulfill the users Mission Objectives

    Efficiency resources to perform a function.

    Usability Effort for learning

    It include the following survey

    Consider Basic Characteristics of the ApplicationConsider Life Cycle ImplicationsPerform Trade off among the tentative list of software quality factors

    Identify the most important software quality factorsProvide explanations for choices.

  • 8/8/2019 1-Software Testing Principles and Concepts


    1.4 How Quality is defined.

    Quality is based upon customer satisfaction; each organization is needed to definethe quality before it was achieved.

    There are five prospective for quality

    Product Based Product has all the features

    Value Based Acceptable Cost

    User Based Fit for Use

    Transcendent I know it when I see it

    Development and manufacturing base Meet his requirements.


    Quality is all about treating the client with respect by meeting the customer expectations

    by satisfying the customer needs by delivering the right product.

    Quality in Fact Quality in Perception

    Doing the Right Thing Delivering the Right Product

    Doing in Right Way Satisfy the Customer Needs

    Doing it for First time Meeting the Customer Expectation

    Doing it on Time Treating Every customer with Respect


    It is the measure or degree of quality. It is very important and it also the starting point forany management to implement the quality policy.

    The common trend of today quality is mainly focus on customer and more importantlycustomer satisfaction.

    There are two types of Customers

    External Customers:

    The customer you are using your products provided by the organization.It basically identifies the customer and satisfies the requirements.

    Internal Customers:

    A Person or groups which provide the results of any work. It is either related withproducts, or individual performance etc.

    It includes subordinates team members and other people within the organization.

    All organization will focus on both Internal and External Customers.

  • 8/8/2019 1-Software Testing Principles and Concepts


    1.5 Why do we test software?

    Developers are not Good Testers

    The Limitation that the person who developed itself has testing based on the requirementsas follows.

    1. Misunderstanding cannot be deductible2. Improper use of Software development Process.3. Due to the change in the requirements the system specification is keep on changing in

    spite of that they may be certain functionality may missed which was not noticed.4. Developers blindly thinking what they developed are correct.5. Improve the developmental process.

    1.7 Quality Software

    As far as developers are concerned they are focusing whether the product is built based onthe specification.

    As far as Customer is concerned they are focusing whether the products is fit for use andmet the user needs.

    There will be gap in between us. As software testers we need to reduce the gap in betweenand make the products as consistent one.

    The constants product can achieve by interacting with the clients on regular intervals.They also need to include in the meeting and ensure that the products is developed based

    on user needs.

    1.8 Why Development process produce Defects

    Developers wont take Variability in to account why developing the product.

    Variability is the enemy of quality.

    As a testers need to be reduce the Variability and improve the quality of the product.

    The concept of Measuring and reducing Variability is called Statistical Process Control (SPC)

    The application is stable if the process remains constant over time.

    The Limits is needed to be within the range all the times.

    The Important of measuring the variability is used to identify the weakness of the currentprocess and also helps to improve the process.

    It also helps the process to be consistent in all the time.

    Special Causes of Variability is not included in the process it occurs because of uniquecircumstances.

    Common Cause of Variation is nothing but the collection of small variation which affect themajor concerns.

  • 8/8/2019 1-Software Testing Principles and Concepts


    With he help of Statistical results we can identify he current process and take immediatestep to improve the process.

    Some of the examples for Variability


    Office Equipment, Software , Hardware

    People component

    Training, experience Attitude

    Method Component

    Procedure, Policies


    Temperature, Lighting, Humidity

    Process be in control

    The variation is calculated based on standard deviation and mean. If the standarddeviation and mean is constant over time the process is stable.

    Brain Joiner summarized the special causes of variation as follows.

    Process input and condition is contribute the variability of process outputs.Each special causes can causes small or large in the total variation of the processoutputs.

    The varability is identified by the use of control charts

    Elimate the special causes of variation

    Take up the immediate steps when variability occurredDo not make fundamental changes in the processUser early warning throughout your operation.

    Why Testers need to know SPC

    Testing is nothing but the Measurement process. Based on the statistical output we can able toanalysis the quality of the product which helps to identify the weakness and improve the quality ofthe product.

    1.9 Reducing the frequency of defects in the software development

    The capability maturity model is the algorithm which helps to identify the more effective andefficient product.

  • 8/8/2019 1-Software Testing Principles and Concepts


    They identify five maturity model level 1 to Level 5

    Level 5 --- Has less Variability

    Level 1 has more Variability

    The cost spend in level 1 is 10 times more than Level 5.

    If the cost spend is 1000 in level 1 company may 10 in Level 5 Organization

    Level 1 (Adhoc)

    --- Unstructured--- No proper Discipline and Culture--- Process was not defined.--- Process was differing from project to project.--- Workers basically concentrate on there personal agenda rather than organization


    Level 2 - Control

    --- Structured--- Proper Discipline and Culture--- Process is well defined.--- Verification and Validation to check the product standard--- Concentrate in building and improve the work process.

    Level 3 Core Competency

    --- Competency is defined and then the organization is build--- Each competency has its own responsibility to improve them.--- Training need to provide to each individual so that they are capable to handle.--- Well Structured--- Process is well defined.

    --- Proper discipline and culture.--concentrate in building and improve the work process.

    Level 4 Predictable

    --- Measurement is the key factor and evaluates the individual performance.--- Management is the coaches to all the individual by identify the obstacles facing day

    to day activities and take necessary steps.--- Competency is defined and then the organization is build

    --- Each competency has its own responsibility to improve them.--- Training need to provide to each individual so that they are capable to handle.--- Well Structured--- Process is well defined.

    --- Proper discipline and culture.--concentrate in building and improve the work process.

    Level 5 Innovative

    --- True leader in the Industry--- Measure themselves through Benchmarking--- Constantly focusing on improving.

  • 8/8/2019 1-Software Testing Principles and Concepts


    --- New Technology is Introduced--- Continuous learning occurs in both individual as well as organization.

    Multiple Roles of Software Testers

    1.10 People Relationship

    - Testing is finally recognized as a profession which needs specialized skills set andqualifications.

    - Also it is convinced testing will not start once the development is completed.

    - Testing needs to be start in every stage of the software development Life Cycle.

    - Testers need to validate whether the requirements specification documents isdeveloped based on the needs of the organization.

    - Testers need to be ensuring that the design documents developed based on therequirements specifications.

    - Testers need to be ensure that the test cases and test plan was created based on therequirements specifications.

    - Testers need to be ensuring that the defects need to find out before the test cycle startsso that the cost spends will gradually decreases.

    - Finding out defects in the later stage of the product will leads the cost spend to recifythe defects is very costly.

    The top 10 people challenges have been identified

    Training in Testing

    Good Relationship with Developers.Good Relationship with Customers.Managers need to understand about testing.Using of Tools.time on TestingFighting a lose-lose situationHaving to say NoTesting Over the wall SoftwareHaving to say no

    1.11 Scope of Testing

    As far as tester is concerned, needs to be test in such that it is fit for use and meet he

    user needs.

    Testers needs to test the product based on customer prospective.

    Testers need to take up the responsibility to make the bug free products.

    It is testers responsibility to ensure to certify that the products are ready forproduction.

  • 8/8/2019 1-Software Testing Principles and Concepts


    Testers need to find out the defects in the early stage, defects found out in the laterstage of the build may cause difficult to rectify the defects and also cost faster is veryhigh.

    For example: in case there is the issue in the design stage and it was not identified andthe coding was developed and the testing has done and implemented in the production. In thelater stage once they identified in the production. Erroneous cost need to spend to resolve theissue. Designed need to be change based on organization needs and coding need to be altered,test case need to be change , risks also need to be considered so that the new features doesntaffects the other features before it is implemented in the production.

    Testers need to involves in all the phases

    Requirements DesignCoding Testing Implementation Maintenance.

    Testing Constraints

    Budget and Schedule Constraints

    Budget and Schedule can limit the testers to complete their test plan.

    The cost is dynamically increases as defects found out in the later stage in the testphase.

    It is Testers Responsibility to ensure to find out the defects in the early stage of the lifecycle so that help to reduce the number spend to resolve the problem.

    As the cost of testing increases the number of uncovered defects decreases.

    The cost of uncovered defects is increases as the cost spend of the testing is less.

    Most problem associate with testing occur in one of the following causes

    Fail to define test objects.Test the application in the wrong phaseIneffective test objectives

    Software Risks

    Incorrect results will be producedUnauthorized transactions will be accepted by the systemApplication is not easy to UseApplication cant able to maintain

    It is difficult to operatePerformance level is not acceptable.

    In any of the Risk occurs it affect the substantial loss in the organization.

    The decision is need to take how much risk is acceptable and it is clearly mentioned inthe test plan.

  • 8/8/2019 1-Software Testing Principles and Concepts


    Defects are identified in the software because of following Circumstances

    IT Improper Requirements.User Provide the Wrong RequirementsRequirements are wrongly RecordedDesign Specifications is incorrect.Program Specifications is Incorrect.Entire Coverage is not tested properlyTime pressuresInadequate TestersInadequate Developers

    Testers need to identify two types of defects

    Variance from specifications Defects from perspective of the product

    Variance from what is desired Defects from customer prospective.

    Life Cycle Testing

    Life cycle testing involves continuous testing of the application even after software planare completed and the tested system is implemented.

    Test Matrices

    The test matrix shows the interrelationship between functional events and tests.

    The completed test matrix will...