Software Testing Concept

25
Software Testing Concept and Methodologies Fundamentals of Software Testing Some of you are from IT backgroun d and some of you are from Non-IT, however there is no difference in the work that you will be doing once you are assigned to a project. Software/Application?? Group of programs designed for end user using operating system and system utilities. A self contained program that performs well- defined set of tasks under user control. Programs, procedures, rules, and any associated documentation pertaining to the operation of a system. Evolution of software product What is a software product? A software product is made up of software packages that are separately installable. Ex. Word, online sales application, What are the activities involved when you think about developing a project? Marketing Survey is done by marketing people in the market for various product and benchmark the  product. MRS( Marketing requirement survey) is created at the end of the survey. Software Requirement Analysis This is also known as feasibility study. In this phase, the developmen t team visits the customer and studies their system.  For a few projects, technical feasibility is a significant concern: Is it technically feasible to build a Star Wars missile defense system? Is it technically feasible to build a natural language English-to-French translator? For most projects, however, feasibility depends on non-technical issues: Are the project’s cost and schedule assumptions realistic? Does the project have an effective executive sponsor? Does the company have a business case  for the software when the real cost—rather than the initial blue-sky, wishful-thinking cost  —is considered?  Ex- Contractor A and B made flyover at Domlur but they did not exchange/discuss their blueprints hence there is a gap of around 6 mtrs. By the end of the feasibility study, the team furnishes a document that holds the different specific recommendations for the candidate system. It also includes the personnel assignments, costs, project schedule, and target dates. The requirements gathering process is intensified and focussed specially on software. To unde rstand the nature of the  program(s) to be built, the system engineer ("analyst") must understand the information

Transcript of Software Testing Concept

Page 1: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 1/25

Software Testing Concept and Methodologies

Fundamentals of Software Testing

Some of you are from IT background and some of you are from Non-IT, however there is

no difference in the work that you will be doing once you are assigned to a project.

– Software/Application??

– Group of programs designed for end user using operating system and system

utilities.

– A self contained program that performs well- defined set of tasks under user

control.

– Programs, procedures, rules, and any associated documentation pertaining

to the operation of a system.

Evolution of software product

What is a software product?

A software product is made up of software packages that are separately installable. Ex.

Word, online sales application,

What are the activities involved when you think about developing a project?

Marketing

Survey is done by marketing people in the market for various product and benchmark the

 product. MRS( Marketing requirement survey) is created at the end of the survey.

Software Requirement AnalysisThis is also known as feasibility study. In this phase, the development team visits the

customer and studies their system. For a few projects, technical feasibility is a significant concern: Is it technically feasible

to build a Star Wars missile defense system? Is it technically feasible to build a natural language English-to-French translator? For most projects, however, feasibility depends

on non-technical issues: Are the project’s cost and schedule assumptions realistic? Does

the project have an effective executive sponsor? Does the company have a business case

 for the software when the real cost—rather than the initial blue-sky, wishful-thinking cost  —is considered?

 Ex- Contractor A and B made flyover at Domlur but they did not exchange/discuss their blueprints hence there is a gap of around 6 mtrs.

By the end of the feasibility study, the team furnishes a document that holds the different

specific recommendations for the candidate system. It also includes the personnel

assignments, costs, project schedule, and target dates. The requirements gathering processis intensified and focussed specially on software. To understand the nature of the

 program(s) to be built, the system engineer ("analyst") must understand the information

Page 2: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 2/25

domain for the software, as well as required function, behavior, performance and

interfacing. The essential purpose of this phase is to find the need and to define the

 problem that needs to be solved .

System Analysis and Design

In this phase, the software development process, the software's overall structure isdefined. In terms of the client/server technology, the number of tiers needed for the

 package architecture, the database design, the data structure design etc are all defined in

this phase. A software development model is created. Analysis and Design are verycrucial in the whole development cycle. Any gap in the design phase could be very

expensive to solve in the later stage of the software development. Much care is taken

during this phase. The logical system of the product is developed in this phase.

Code Generation

The design must be translated into a machine-readable form. The code generation step

 performs this task. If the design is performed in a detailed manner, code generation can

 be accomplished without much complication. Programming tools like Compilers,Interpreters, Debuggers are used to generate the code. Different high level programming

languages like C, C++, Pascal, Java are used for coding. With respect to the type of application, the right programming language is chosen.

Formal reviews are conducted after every 500 lines of code e.g. Code Inspection and

code walkthrough

What happen if we send this software directly to production?

What all issues we may face?

If we send the software directly to production without thorough testing, system may fail

at the initial stage itself, and even if it doesn’t there may be some functionality which was

not even thought of and tested.e.g. in online shopping system add products to cart and one page can hold description of 

ten carts only and then next page appears with additional product added to cart, but it was

never tested, every time cart with less than 10 products was tested, hence testing of morethan 10 products in a cart was skipped and leads to bad impression on customer.

Will the customer again want to visit the site??

Off course NO

What else a customer expect from any application other than perfect functionality?

Look and Feel:- If the application is very dull, not very well presentable then alsocustomer would not like to visit that site again.

user-friendly:- If the application is not user friendly, instead of common language

understood by people some other language is used or it is not easy to browse it, searchingis not convenient etc then even though functionality of the application is perfect still this

application would be a failure as the end- user is not at all satisfied.

Page 3: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 3/25

Testing

Once the code is generated, the software program testing begins. Different testing

methodologies are available to unravel the bugs that were committed during the previous phases. Different testing tools and methodologies are already available. Some companies

 build their own testing tools that are tailor made for their own development operations.

 Maintenance

Software will definitely undergo change once it is delivered to the customer. There are

many reasons for the change. Change could happen because of some unexpected inputvalues into the system. In addition, the changes in the system could directly affect the

software operations. The software should be developed to accommodate changes that

could happen during the post implementation period.

Marketing

Survey is done by marketing people for various product and benchmark 

the products. Create MRS( Marketing Requirement survey)

Requirement analysis

Feasibility study (social, economical etc)

investigate the need for possible software automation in the given system.

Domain expert Create URS ( User Requirement specification)

Design

software's overall structure is defined.

Software architecture, interdependence of modules, interfaces, databaseetc is defined.

System analyst Create SRS( High level design, Low level design etc)

Code Generation

design must be translated into a machine-readable form taking input as

SRS.

Done by Team of developers.

Reviews after every 500 lines of code

Code Inspection

Code Walkthrough

Testing

 New/patched build is tested by Test engineers for stability of the

application.

Maintainence Software is maintained due to changes ( unexpected values into the

system)

Page 4: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 4/25

Software development life cycle

Requirement analysis:-

As we were talking about feasibility study, which also includes working in team, work 

cohesively with other people engaged in the similar or other activities.

Eg. The flyover that is being constructed at Domlur airport. Contract was given to 2

contractors, they started constructing flyover without exchanging their blue prints, resultwas that once they finished their part of flyover there was a gap of almost 6 mtrs in

height. Had they have exchanged their blueprints they would have constructed it muchearlier and without any disruption and disturbance and loss of money and effort. Nowthey have to do some workaround as it has to be completed somehow…

Why these situations occur???

Majorly due to lack of proper testing.

Overconfidence

Even the software developed by best of the developers may fail.

It is not only the system that is being developed is tested but the system with which our 

 product is interfaced that is also tested for interfacing not the product as a whole.

System

An inter-related set of components, with identifiable boundaries, working together for 

some purpose.

Analysis

The process of identifying requirements, current problems, constraints ,Opportunities for improvement , timelines and Resources costs .

OperationalTesting

RequirementAnalysis

High leveldesign

DetailedSpecifications

Coding

Unit Testing

IntegrationTesting

Review/Test

Page 5: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 5/25

Design

The business of finding a way to meet the functional requirements within the specifiedconstraints using the available technology

Software Development life cyclePhases or stages of a project from inception through completion and delivery of the final

 product…… and maintenance too!

As per IEEE Standards, SDLC broadly consist of 3 phases:-

• Definition

• Development

• Maintainence

Definition Phase

– Focuses on WHAT

What information to be processed?– What functions and performances are desired?

– What interfaces are to be established?

– What design constraints exists?

– What validation criteria are required to define a success system?

Development Phase

– Focuses on

– How the database should be designed ?

– How the software architecture to be designed ?

– How the design will be translated in to a code ?

How testing will be performed ?

Three specific steps in Development Phase are:-

– a. Design

–  b. Coding

– c. Testing (ignored due to lack of time, due time to market, additional cost

involved, lack of testing requirement understanding etc.) )

Maintenance Phase

“Maintainability is defined as the ease with which software can be understood, corrected,adapted and enhanced”

Maintenance phase focuses on CHANGE that is associated with Error correction

Adaptation required as the software environment evolves

Enhancements brought about by changing customer requirements

Reengineering carried out for performance improvements

SDLC Phases

Page 6: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 6/25

• Identify Problems/Objectives

• Determine information Requirements

• Analyze System needs

• Design the recommended system

• Develop and Document software

• Testing the System• Implementation and maintaining the system

SDLC Phases : Requirement Identification & Analysis Phase

• Request for Proposal

• Proposal

•  Negotiation

• Contract

• User Requirement Specification

• Software Requirement Specification

Software Requirement Specifications

IEEE 830 :

Software Requirement Specification is a means of 

translating the ideas in the minds of the clients(the inputs)into a set of formal document (the output) of the

requirement phase

The Role

Bridge the communication gap between the client

the user and the developer 

SDLC Phases- Design

High Level Design

HLD Document contains items in a macro level

• List of modules and a brief description of each

• Brief functionality of each module

• Interface relationship among modules

• Dependencies between modules

• Database tables identified with key elements

• Overall architecture diagrams along with technology details

Low Level Design

• Detailed functional logic of the module, in pseudo code

• Database tables, with all elements, including their type and size

• All interface details

• All dependency issues

Page 7: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 7/25

• Error MSG listing

• Complete input and output format of a module

HLD and LLD phases put together called Design phase

SDLC Phases`Code Generation

o design must be translated into a machine-readable form taking input as

SRS.

o Done by Team of developers.

o Reviews after every 500 lines of code

Code Inspection

Code WalkthroughTesting

 New/patched build is tested by Test engineers for stability of the application.

MaintainenceSoftware is maintained due to changes ( unexpected values into the system)

Get Started with Testing !!!!!!!

– What is testing?

– We Test !! We Test !! Why?

– Testing Defined

– Is Product Successful

– Product Success criteria

– Testability

–Test factors

As we have talked about that we cannot launch any product successfully without testing.Even the product designed by best of the best developers needs to be tested and verified

under various circumstances. The U.S. space shuttle Columbia with a seven-member 

crew, disintegrated in flames over central Texas shortly before it was scheduled to land atCape Canaversal in Florida. On February 1, 2003, at an altitude of 63 kilometers and a

velocity of 20,000 km/hr, Columbia disintegrated killing 7 astronauts.

Columbia was designed and developed by most of the intelligent people employed in NASA. And the product was tested very well before its launch, still it failed leading to

disaster and taking lives of 7 best astronauts that includes Kalpana Chawla from India.

The product failed not because it was not tested well but it could have been tested moreto avoid this disaster.

Hence testing is very vital in all application/products however more aggressive where

lives are involved for e.g medical equipments, space shuttles etc.

What is Testing?

Page 8: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 8/25

•  process used to help identify the correctness, completeness and quality of 

developed computer software.

• Find out difference between actual and expected behavior.

• The process of exercising software to verify that it satisfies specified requirements

of end user and to detect errors

• The process of revealing that an artifact fails to satisfy a set of requirements• What Is Software Testing?

• Software testing is a process used to help identify the correctness, completeness

and quality of developed computer software. With that in mind, testing can never completely establish the correctness of computer software. Only the process of 

formal verification can prove that there are no defects.

• What is the expected behavior of the system? Testing is to check if there is nodifference between actual output and expected output.

• It is to put software under various test to check that it satisfies some requirements

of end user/Client and hence detecting errors if it fails to satisfy a set of requirements.

What Is Software Testing?

Software testing is a process used to help identify the correctness, completeness and

quality of developed computer software. With that in mind, testing can never completely

establish the correctness of computer software. Only the process of formal verificationcan prove that there are no defects.

What is the expected behavior of the system? Testing is to check if there is no difference

 between actual output and expected output.It is to put software under various test to check that it satisfies some requirements of end

user/Client and hence detecting errors if it fails to satisfy a set of requirements.

Testing is to establish confidence that a system does what it is supposed to do and even if it “misbehaves” it should not crash, it should do it decently.It is to confirm that system performs its intended functions correctly, moreover testing

does not guarantee bug free product and good testing cannot be a substitute for good

 programming ex. If I do a very poor programming assuming that if there are any bugs mytesters would find it and I would fix them later. This idea would take more time plus

more effort in debugging those many number of bugs and in all the cost would be much

higher than it would have been if the code has been developed effectively.Testing is not a debugging or preventing process, it is only to ensure that within an

application I have found/detect these many number of bugs and rest debugging/fixing of 

 bugs is done by developers.

It improves quality and identify risks as well.

– We Test !! We Test !! Why

• Detect programming errors - programmers, like anyone else, can make mistakes.

• To catch bugs/defect/errors.

• To check program against specifications

Page 9: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 9/25

• Cost of debugging is higher after release

• Client/end user should not find bugs

• Some bugs are easier to find in testing

• Challenge to release a bug-free product.

• Verifying Documentation.

• To get adequate trust and confidence on the product.• To meet organizational goals

• Like meeting requirements, satisfied customers, improved market share, Zero

Defects etc

• Since the software can perform 100000 correct operations per second, it has the

same ability to perform 100000 wrong operations per second, if not tested

 properly.

• Ensuring that system is ready for use

• Understanding limits of performance.

• Learning what a system is not able to do

Evaluating capabilities of system

As we were discussing about the need of software testing hence we test our software to :-

Detect programming errors:- Even though we have best developers developing the

 product still there may be flaws somewhere due to misconception, due to lack of understanding in integrating modules of 2 great developers. Most of the time developers

think that their code is perfect, it cannot have bugs and that’s where the problem is. They

think that finding bugs in their code means that some one is proving them inefficient.Hence we test code not to prove a developer inefficient but to find bug in code not in

developer.

Testing at earlier stage is much cheaper than testing at later stage.If Client find bugs which were uncovered earlier then we loses credibility and may lose business as well.

There are several functionality related that occur in real life scenarios related only so

while testing at customer site during beta testing we can uncover these defects there andthen.

To release a bug free product seems to be a dream yet to be fulfilled, hence it is a real

challenge to release a product that is bug-free.

Testing defined !!

– Def-1

Process of establishing confidence that a program or system does what it issupposed to.

– Def-2

Process of exercising or evaluating a system or system component by manual

or automated means to verify that it satisfies specified requirement (IEEE 83a)– Def-3

Testing is a process of executing a program with the intent of finding errors(Myers)

Page 10: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 10/25

– Def-4

Testing is any activity aimed at evaluating an attribute or capability of a

 program or system and determining that it meets its required results.

Testing is defined in a number of ways by various veterans.

Of course, none of these definitions claims that testing shows that software is free fromdefects. Testing can show the presence, but not the absence of problems.

Is Product successful ???

• When Client/Customer perceives it as value-added to his business.

• Timeliness of delivery of the product within budget and scope.

• The business perceives that the system satisfactorily addresses the true businessgoals.

• End user feels that look, feel, and navigation are easy.

• Team is prepared to support and maintain the delivered product.

What is the criteria for a successful product?

A product is successful only when it is adding any value to customer business, only if it

increases its revenue, credibility in the market and so on.To develop a product we set a target time for completion and released to customer. If we

can stick to that time without increasing budget and scope of the product then the product

is successful.Using the developed product true business goals should be met else the product

developed can be a failure leading to finance loss, customer satisfaction loss, and loss of 

 business further from that client as well as associates.

Look and feel should be accepted by user who will be finally using that product.

Product Success Criteria

• Functionality

• Usability

• Likeability

• Configurability

• Maintainability

• Interoperability

Product Success Criteria (PSC) so as to address the following. These criteria, oncearrived at the initial stage of the project, shall be the basis for strategy and planning.

Functionality: The business perceives that the system satisfactorily addresses the true business goals. The system is functionally compliant. The system was delivered on time

and within budget and scope.

Page 11: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 11/25

Usability: The user perceives the system as value-added to his or her job and is easy to

learn and use.

Likeability: End user feels that look, feel, and navigation are easy.

Configurability: All changes to project scope, schedule, and budget were handled under awell-defined and visible change control process.

Maintainability: The operations staff is prepared to maintain and support the delivered

system.

Interoperability: The organizational interoperability groups perceive that the solution is

consistent with interoperability and reusability standards and goals.

Testability

• Operability

•Controllability

• Observability

• Understandability

• Suitability

• Stability

• Accessibility

•  Navigability

• Editorial Continuity

• Scalability

• Context Sensitivity

• Structural Continuity

Testability and Product Success Criteria

Testability is the possible extent to which the software product under consideration can be evaluated to determine-

Operability: The better it works; the more efficiently it can be tested.

Controllability: The better we can control it, the more the Software Testing can be

automated & optimized

Observability: What you see is what you test.

Simplicity: The less there is to test, the more quickly we can test.

Understandability: The more information we have, the smarter we will test.

Page 12: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 12/25

Suitability: The more we know about the intended use of the system, the better we can

organize our Software Testing to find important bugs

Stability: The fewer the changes, the fewer the disruptions to Software Testing

Accessibility: Web site shall be accessible when incorporating frames, JavaScript,Cascading Style Sheets, Dynamic HTML, and multimedia technology such as QuickTime

or Flash.

Navigability: Site's architecture is firmly represented by the visually designed interface

for ease of motion within the site.

Editorial Continuity: Ensure that users can easily move from page to page in a multi- page section within your web site and still retain a sense of location.

Scalability: Modular interface design structure to support major edits and visual design

overhauls. 

Context Sensitivity: Interface reinforcing the content of the web site and enhances theoverall brand presentation strategy.

Structural Continuity: Ensuring that users are able to understand and utilize every

component of the navigational system in order to move throughout the web site.Software Testing shall be aligned with software project and shall meet

Test Factors

Functionality (exterior

quality)

Engineering (interior

quality)

Adaptability (future

quality)

Correctness Efficiency Flexibility

Reliability Testability Reusability

Usability Documentation Maintainability

Integrity Structure 

Correctness

Page 13: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 13/25

To claim that software is correct, we have to assure that the data entered, processed, and

outputted is accurate and complete. We can achieve this through controlling data element

across the entire transaction. This requires that:• Well defined Functional specifications.

• Design conformance with user requirements.

• Program conformance to design specifications.• Testing to ensure requirements are properly implemented.

• Availability of right programs and data in the released system.

• Proper management change requests

 Reliability

This will ensure that the system will perform its intended function with the required

 precision over an extended period of time. This shall ensure:• Establishing the system in operational environment to meet the expected level of 

accuracy and completeness.

• Designing and implementing process tolerance through the data integrity controls.

• Performing manual, regression, and functional tests to ensure proper functioningof the data integrity controls.

• Verification of the installation for system accuracy and completeness.• Maintaining accuracy of system requirements and also, system updation.

 Ease of Use

This will address effort required to learn, operate, prepare input for, and interpret outputfrom the system. This test factor deals with the how quickly and easily the people

interfacing with the application system will learn to use it. The points addressed here are:

• Defining the usability specifications for the application system.• Design to optimize the usability related requirements

• Conformance of programs to the design in order to optimize the ease of use.

• Testing to ensure that the application is easy to use.• Proper presentation and communication of usability instructions to appropriate

individuals.

• Preserving usability as and when the system is maintained.

File integrity

This ensures appropriate storage and maintenance of data. This requires that:

• Defined file integrity requirements.• Controls in design that ensure the integrity of the file.

• Proper implementation of specified file integrity controls.

• Proper testing to ensure proper functioning of the file integrity.• Verification of file integrity to ensure delivery of right riles prior to system

release.

• Preserving integrity of the files during the maintenance phase.

 Maintainability

This factor addresses effort required to locate and fix an error in an operational system so

that system operates smoothly. This addresses:

Page 14: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 14/25

• Specification of the desired level of maintainability of the system.

• Development of design and program to achieve the desired level of 

maintainability.• Inspection of system to ensure that it is maintainable.

• Verifying system documentation for completeness.

• Maintainability is preserved as the system is updated.

Software Testing Life Cycle

The development process must be iterative-- let’s see how that works

The traditional development process involves a long building phase after you’vespecifiedd the application. After the app is built, you move to a testing phase where you

find bugs and fix them. Many people view testing as a “washing machine” that you clean

your code with at the end of the development phase.

– STLC-V Model

The responsibility for testing• Unit Test is the responsibility of the Development Team

• System Testing is the responsibility of SQA

• User Acceptance Testing is the Responsibility of the User Representatives Team• Technology Compliance Testing is the responsibility of the Systems Installation

& Support Group.

Requirement

Requirement

Req. Review

DesignDesign

Design Review

CodeCode

Code Review

Develop UnitTest

Develop UnitTest

Review Unit Test

Execute Unit TestExecute Unit Test

Execute Integrationtests

Execute Integrationtests

Execute SystemTests

Execute SystemTests

Develop integrationTests

Develop integrationTests

Review Integration Tests

Develop AcceptanceTests

Develop AcceptanceTests

Review Acceptance tests

Page 15: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 15/25

STLC:- Activities

Scope/Requirement

Base line inventory

Acceptance criteria

Schedule Prioritization

Test references

Sign off req

Plan

Approach

Process and Tools

Methodology

Delivery Models

Risk Plan

Project Overflow

Quality Objectives

Configuration Plan

Design

Test Design

Specifications

Test Scenarios

Test Cases

Test Data

Tool Development

Execution

Implement Stubs

Test Data Feeders

Batch Processes

Execute Testing

Collate Test Data

Identify Bugs

Defect Analysis Check Unexpected Behavior 

Identify defective application areas

Identify erroneous test data

Identify defect trends/patterns

Test Approach

Page 16: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 16/25

Test Process :- The project under development or incorporation of accepted changes in

the project or project under maintenance which implemented changes, use the testing

 process. Based on the nature of the project, adequate testing shall be arrived at the project level.

The Test Approach•   sets the scope of system testing

• the overall strategy to be adopted

• the activities to be completed• the general resources required

• the methods and processes to be used to test the release.

• details the activities, dependencies and effort required to conduct the

System Test

Test approach will be based on the objectives set for testing

Test approach will detail the way the testing to be carried out

Types of testing to be done viz Unit, Integration and system testing

the general resources required

The method of testing viz Black–box, White-box etc.,

Details of any automated testing to be done

Details the activities, dependencies and effort required to conduct the System

Test

Software Testing Life Cycle- Phases

1. Requirement Analysis2. Prepare Test Plan

3. Test Case Designing

4. Test Case Execution5. Bug Reporting, Analysis and Regression testing

6. Inspection and release

7. Client acceptance and support during acceptance8. Test Summary analysis

Requirement Analysis

Objective

The objective of Requirement Analysis is to

ensure software quality by eradicating errors as earlier as

 possible in the developement process, as the errors

noticed at the end of the software life cycle are more

costly compared to that of early ones, and there by

validating each of the Outputs.

The objective can be acheived by three basic issues:

•  Correctness

• Completeness

Page 17: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 17/25

• Consistency

Type of Requirement

• Functional

• Data

• Look and Feel• Usability

• Performance

• Operational

• Maintainability

• Security

• Scalability

• Etc…….

Evaluating Requirements

What Constitutes a good Requirement?

Clear:-

Unambiguous terminology

Concise:-

no unnecessary narrative or non-relevant facts

Consistent

requirements that are similar are stated in similar terms. Requirements donot conflict with each other .

Complete

all functionality needed to satisfy the goals of the system is specified to alevel of detail sufficient for design to take place.

Requirement Analysis

Difficulties in conducting requirement analysis

Analyst not prepared

Customer has no time/interest

Incorrect customer personnel involved

Insufficient time allotted in project schedule

Prepare Test Plan- Activities

• Scope Analysis of project

• Document product purpose/definition

• Prepare product requirement document

• Develop risk assessment criteria

• Identify acceptance criteria

• Document Testing Strategies.

Page 18: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 18/25

• Define problem - reporting procedures

• Prepare Master Test Plan

Design-Activities

• Setup test environment

• Design Test Cases: Requirements-based and Code-based Test Cases• Analyze if automation of any test cases is needed

Execution- Activities

• Initial Testing, Detect and log Bugs

• Retesting after bug fixes

• Final Testing

• Implementation

• Setup database to track components of the automated testing system, i.e. reusable

modules

Bug Reporting, Analysis, and Regressing Testing

Activities

Detect Bugs by executing test cases

Bug Reporting

Analyze the Error/Defect/Bug

Debugging the system

Regression testing

Inspection and Release-Activities

• Maintaining configuration of related work products• Final Review of Testing

• Metrics to measure improvement

• Replication of Product

• Product Delivery Records

• Evaluate Test Effectiveness

Client Acceptance

• Software Installation

• Provide Support during Acceptance Testing

• Analyze and Address the Error/Defect/Bug

• Track Changes and Maintenance

• Final Testing and Implementation

• Submission, client Sign-off 

• Update respective Process

Support during Acceptance-Activities

• Pre-Acceptance Test Support

Page 19: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 19/25

• Installing the software on the client’s environment

• Providing training for using the software or maintaining the software

• Providing hot-fixes as and when required to make testing activity to continue

• Post Acceptance Test Support

• Bug Fixing

During acceptance lets see what do we mean by hot-Fixes. In acceptance phase product is

installed and executed in users environment. There may be some failure to software

might be due to some configuration files mismatch or some other interface.When Bill Gates was giving Live demo for Microsoft windows new version suddenly a

Unwanted popup appears and whole world was watching this demo, Bill did some

changes to config files and it worked fine. This is termed as HOT_FIX( to make smallchanges to software to continue testing activity)

Test Summary Analysis- Requirement

• Quantitative measurement and Analysis of Test Summary

• Evaluate Test Effectiveness• Test Reporting

o Report Faults – (off-site testing)

o Report Faults – (on-site/ field testing)

Testing Life Cycle - Team Structure

• An effective testing team includes a mixture of members who has

o Testing expertise

o Tools expertise

o Database expertise

o

Domain/Technology expertise

The testing team must be properly structured, with defined roles andresponsibilities that allow the testers to perform their functions with minimal

overlap.

There should not be any uncertainty regarding which team member should perform which duties.

The test manager will be facilitating any resources required for the testing team.

Testing Life Cycle - Roles & Responsibilities

Clear Communication protocol should be defined with in the testing team to

ensure proper understanding of roles and responsibilities.

The roles chart should contain both on-site and off-shore team members.

Test Manager

Single point contact between Wipro onsite and offshore team

Prepare the project plan

Test Management

Page 20: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 20/25

Test Planning

Interact with Wipro onsite lead, Client QA manager 

Team management

Work allocation to the team

Test coverage analysis

Co-ordination with onsite for issue resolution. Monitoring the deliverables

Verify readiness of the product for release through release review

Obtain customer acceptance on the deliverables

Performing risk analysis when required

Reviews and status reporting

Authorize intermediate deliverables and patch releases to customer.

Test Lead

Resolves technical issues for the product group

Provides direction to the team members

Performs activities for the respective product group

Review and Approve of Test Plan / Test cases

Review Test Script / Code

Approve completion of Integration testing

Conduct System / Regression tests

Ensure tests are conducted as per plan

Reports status to the Offshore Test Manager 

Test Engineer

Development of Test cases and Scripts

Test Execution

Result capturing and analysing

Defect Reporting and Status reporting

– Software Testing Phases

– Software Testing Phases

– Unit Testing

– Functional Testing

–Integration Testing

– System Testing

– Acceptance Testing

– Interface Testing

– Regression Testing

– Special Testing

– Unit Testing

Page 21: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 21/25

– Unit Testing is a verification effort on the smallest unit of the software

design the software component or module.

– Why Unit Testing?

– Testing early for each component and prevent the defect from being carried

forward to next stage.– To ensure that the design specifications have been correctly implemented.

– Approach

– Uses the component-level design description as a guide.

– Important control paths are tested to uncover errors within the boundary of 

the module.

– Unit testing is white-box oriented, and this can be conducted in parallel for

multiple components.

– the relative complexity of tests and uncovered errors are limited by the

constraints scope established for unit testing.– Unit Testing

– module interfaces are tested to ensure that the information properly flows

into and out of the program unit under test.

– The local data structure is examined to ensure that data stored temporarily

maintains its integrity during all steps in an algorithm’s execution.

– Boundary conditions are executed to ensure that the module operates

properly at boundaries established to limit or restrict processing.

– All independent paths (basis paths) through the control structure are

exercised to ensure that all statements in a module have been executed at

least once

All error handling paths are tested.

– Unit testing to uncover errors like

• Comparison of different data types

• Incorrect logical operators or precedence

• Expectation of equality when precision errors makes equality unlikely.

• Incorrect comparison of variables

• Improper or nonexistent loop termination

• Failure to exit when divergent iteration is encountered.

• Improperly modified loop variables, etc.

– Some of the Computational Errors uncovered while Unit Testing

• Misunderstood or incorrect arithmetic precedence

• Mixed mode operations

• Incorrect initialization

• Precision inaccuracy

• Incorrect symbolic representation of an expression

Page 22: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 22/25

– Potential errors while error handling is evaluated

• Error description is unintelligible

• Error notes does not correspond to error encountered

• Error condition causes system intervention prior to error handling

• Exception- condition processing is incorrect• Error description does not provide enough information to assist in the

location of the cause of error.

– Unit Testing Procedure

• Unit testing is normally considered as an adjunct to the coding step.

• Unit test case design begins ,once the component level design has been

developed, reviewed and verified.

• A review of design information provides guidance for establishing test cases

that are likely to uncover errors.

• Each test case should be coupled with a set of expected results.

– Unit Test Steps

• The Unit test criteria, the Unit test plan, and the test case specifications are

defined.

• A code walkthrough for all new or changed programs or modules is

conducted.

• Unit Test data is created, program or module testing is performed, and a

Unit test report is written.

• Sign-offs to integration testing must be obtained, Sign-off can be provided

by the lead programmer, project coordinator, or project administrator.

Step1. Unit test criteria is a narrative describing what will be done to verify that

the program code operates properly and according to specifications.

The unit test plan is doc that defines the process for testing the code, including

descriptions and procedures for all tests and evaluations.

These above items and test specifications are prepared before the program or

module is coded.

Step2. Code walk through is done to review to the requirements, design, and

coding before the testing to ensure compliance to the IS standards.

Step3. Unit test data are specific values or transactions that are created for the

purpose of testing the code.Test data should be meticulously prepared so that a

full range of data values and combinations are considered, and all instructionpaths within the module are executed.

The unit test report records the results and findings of the test and provides the

basis for determining if the unit is ready for system testing.

– Unit Testing Example

– A Sample Source code

Page 23: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 23/25

– Eg: login.java check for syntactical error,

variable usages, Coverage observed.

– Functional Testing

– Functional Testing is a kind of black box testing because a program’s

internal structure is not considered.–

– Give the inputs, check the outputs without concentrating on how the

operations are performed by the system.

– When black box testing is conducted , the SRS plays a major role and the

functionality is given the utmost importance.

Select test data to exercise each aspect of functionality identified in the

program’s requirements specifications

Functional Testing of word processor calls for using each required feature of of the program at least once. Such features include editing, formatting, search etc

– Functional Testing

– Focus on system functions

– developed from the requirements

– Behavior testing

– Should

– know expected results

– test both valid and invalid input

– Unit test cases can be reused

New end user oriented test cases have to be developed as well.

• Tests module against functional and non-functional specifications

• Specification used to derive test cases

• Do not look at module code (except to debug)

• Attempt to force behavior that doesn't match specification

• Problem – how to select inputs that have a high probability of causing error

– User Interface

• This stage will also include Validation Testing

• which is intensive testing of the new Front end

• fields and screens. Windows GUI Standards;• valid, invalid and limit data input; screen & field

• look and appearance, and overall consistency

• with the rest of the application.

Vertical First Testing: - When the complete set of functionality is taken for one

module and tested it is called Vertical First testing.

Page 24: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 24/25

Horizontal First Testing : - If a similar function is taken across all the modules

and it is tested, it is called horizontal-first testing.

– Integration testing

•testing with the components put together.

– Why integration Testing ?

• Data can be lost across an interface.

• One module can have an inadvertent, adverse effect on another.

• Sub-functions, when combined, may not produce the desired major function.

• Individually acceptable imprecision may be magnified to unacceptable levels.

• Global data structures can create problems, and so on…

–Types of approaches- Top-Down

 

is an incremental approach to testing of the program structure. Modules are

integrated by moving downward through the control hierarchy, beginning with

the main control module, this could be done as depth- first or breadth-first

manner.

–Type of Approaches- Bottom-Up

A

x

1 2

zy

Page 25: Software Testing Concept

8/3/2019 Software Testing Concept

http://slidepdf.com/reader/full/software-testing-concept 25/25

as the name implies, begins construction and testing with atomic modules i.e., fromthe components at the lowest levels in the program structure

– Integration testing- Example

E.g.: Login.java and ConnectionPool.java

Login class calls the ConnectionPool object , Integration testing identifies

errors not observed while code Debugging or Reviews.

A

x

1 2

zy