Portals


The effective Software Testing

As an information architecture consultant, I would like to add a favour to this information blog.

Ubiquitous IA

View more presentations from Peter Morville

Search Patterns: UX Russia

View more presentations from Peter Morville

Experience Maps

View more presentations from Peter Morville

Reference to Morville

Test Process


Test Process

Test Process

The five steps in the Test Process are:
  • Test Planning
  • Test Analysis and Specification
  • Test Execution
  • Test Recording (Verification)
  • Checking for Completion.

Test Planning:  The Test Plan describe how the Test Strategy is implemented.

Involves producing a document that described an overall approach and include test objectives.

Test Plan

Test Plan

Contents of a Test Plan Includes:

1. Background  2. Reference documents    3. Approach      4. Method

5.  Timetable     6. Resources        7.   Dependencies

8.  Report     9. Test Asset Identification           10. Exit Criteria

  • The most critical stage of the process
  • Effort spent now will be rewarded later
  • The foundation on which testing is built

Test Specification (Sometimes referred to as test design)

  • Preparation & analysis
  • Building or design test conditions and  test cases using recognized test techniques
  • Define expected results

Test preparation: Analyse the Application, Identify good test conditions, Identify tes cases, Document thoroughly and cross refercing among the team.

Building Test Cases: Test cases comparise of standard data, transaction data, actions and expected results

Test Cases Vs Expected Results

Test Cases Vs Expected Results

 Expected Results:
  • The outcome of each action
  • The state of the application during test and after test
  • the state of the data during test phase and after the test phase

Test Execution

  • Test execution schedule / log
  • Identify which tests are to be run
  • Test environment primed & ready
  • Resources ready, willing & able
  • Back-up & recovery procedures in place
  • Batch runs planned and scheduled

If all this are in place then we are ready to run carry out our tests

Test Script

Test Recording: involves keeping good records of the test activities that you have carried out.

For example , version of the software you have tested and the test specifications are recorded, along with the actual outcomes of each test.

     Test verification:

  • If  our planning and preparation is sufficiently detailed  this is the easy part of software testing
  • The test is run to verify the application under test
  • The test itself either passes or fails!

       The test log should record:

  • Software and test version control
  • Specifications used as test base
  • Test timings
  • Test result ( Actual results and Expected results)
  • Defect details for erroneous tests

Test Completion

        Test Exit Criteria

        Used to determine when to implement the software

  1. Budget used
  2. Defect detection rate
  3. Performance satisfactory
  4. Test Coverage
  5. Key Functionality tested
Completion or exit criteria are used to determine when testing (at any stage) is complete.  These criteria may be define in terms of cost, time, faults found or coverage criteria.
Coverage criteria  defined in terms of items that are exercised by test suites, such as branches, user requirements, most frequently used  transaction etc.
Tools such as code coverage monitors are use ascertain how many lines of code have been executed.

Software testing


Software testing is the process of executing a program or system  with in intent of finding error. Software testing is any activity aimed at evaluating on attribute or capacibility of a program or system and determining that it meets its required results. Software testing  is a process of  investigation conducted to provide stakeholders with information about the quality of the product or service under test. A Software Analyst is responsible  for the analysis of product and project documentation to identify the most relevant and effective testing of the product,  providing support to the Quality Assurance/ Release Control Team in software testing  and co-ordinating release activities for the business. Key responsibiilty for the Software Test Analyst include:

  • Software Testing
  • Customer Service
  • Good interpersonal relationship with Business Analyst, Project Management and Developer.
  • Good Teamwork (raising defect, bugs, errors,fault fixing, new feature, regression,  manual or automated, and  ad-hoc testing , and supporting all releases and patches to the live customer environment.
  • Knowlege of the Environment under test

Testing can never completely identify all the errors, defects within software. Test Screen It furnish a criticism or comparison that compare the state and behaviour of the product against oracles prinicples or mechanism by which someone might recognize a problem. Software testing can be stated as the process of validating and verifying that a software  program/application /product. 1.  Meets the requirements that guilded its design and development 2. Test works as expected (system under test) 3. Can be implemented with the same characteristics 4. Level of test conducted and the exit criteria set What is Testing ?

  • The process of executing a program with the intent to certify its Quality.  Quality can be measured by testing for Correctness,Reliabilty,Usability, Maintainability,testability and Reusability.
  • The process of executing a program with the intent of finding failures/ faults
  • The process of exercising software to detect bugs, to verify that it satisfies specified functional and non-functional requirements
  • It ensure legal requirements are met
  • To help maintain the organization’s reputation

Even the most carefully planned and design software cannot possibly be free of defects Why Testing is Necessary We can’t test everything, what  can we do?

  • Managing and reducing Risk
  • Carry out a Risk Analysis of the application under test
  • Prioritise tests to focus on the main areas of risk
  • Apportion time relative to the degree of risk involved
  • Understand the risk to the business of the software nor functioning correctly
  • Continuing testing beyond the implementation date should be considered
  • It is better for us (Tester) to find errors than the users.

Software Development life cycle  (SDLC) is sometimes referred  to as the  system development life  cycle;  is the process of creating or altering software systems and the model and methodologies  that people  use  to develop these systems.In any such lifecycle; people process and technology all play a role in success. Fundamental Test Process:This process is detailed in what has become known as the fundamental test process, a key element of what testers do and is applicable at all stages of testing. The most visible part of testing is running one or more tests; test execution.  We also have to prepare for running tests, analyse the tests that have  been run, and see whether testing is complete. Both planning and analysis are very neccessary activities that enhance and amplify the benefits of the test execution itself.  It is no good testing without deciding  how, when and what to test. Planning is also required for the less formal test approaches such as the exploratory testing. The  test process consists of five parts that encompass all areas of software testing.

  • Planning and Control
  • Analysis and Design
  • Implementation and Execution
  • Evaluating exist criteria and Reporting
  • Test closure activities

    Test Plan

    Test Plan

 

Testing Framework is an object-oriented approach to Programmer Test :

Quality Assurance, or QA is another word the evaluation of different portions of the software development life cycle and is used to minimize downtime, bugs, and mistakes, while keeping the bottom line – profitability – ate the forefront of any process.

Testing Terminology


Definition:  Testing is a process in which the defects are identified, isolated (separated), subject (sending) for rectification and ensured that the product is defect free in order to produce a quality product in the end and hence customer satisfactoion.

Reliability:  The probability that software will not cause the failure of a system for a specified period of time under specified conditions

Defect:  The departure of a quality characteristic from its specified value that results in a product or service not satisfying its normal usage requirements

Fault :    A manifestation of an ERROR in software. Faults are also known colloquially as defaults or bugs.   A fault , if encourage, may cause a failure which is a deviation of the software from its intended purpose.

Error :   A human action that produces an incorrect result.

Quality :   The totality of the characteristics of an entity that bear on its ability     to satisfy stated or implied needs.

Testing and Risk : How much would you be willing to perform if the risk of failure were negligible? Alternatively, how much testing would you be willing to perform if a single defect could cost you your life’s savings, or, even more significantly, your life?

Testing and Quality:  Testing identifies faults whose removal increases the software quality by increasing the software’s potential reliability.

Testing  is the measurement of software quality.

We measure how closely we have achieved quality by testing the relevant factors such as correctness, reliability, usability, maintainability, reusability, testability etc.

Failure  – the act of a product not behaving as expected – the manifestation of a fault.

Validation – establishing the correspondence between the software and its specification – are we now building the correct product?  Also known as ‘black box’ testing.

Verification –  are  we now building the product  correctly? Also known as ‘white box testing’.

Test Case – the collection of inputs, predicted results and execution conditions for a single test

Pass/fail criteria – decision rules  used to determine whether  a product passes or fails a given test

Test suites – a collection of test cases necessary to “adequately” test a product

Test Plan– a document describing the scope, approach, resources and schedule of intended testing activity- identifies  features to be testing tasks, who will do each task, and any risks requiring contingency planning.

 
 

Software Testing Inside and Out

The separation of debugging from testing was intially introduced by Glenford J. Myers in 1979. Although his attention was on breakage testing ‘a successful test is one that finds a bug.’

Historically there has not been a generally accepted set of testing definations.