Ashima Wadhwa Coding The coding phase of the

  • Slides: 24
Download presentation
Ashima Wadhwa

Ashima Wadhwa

Coding • The coding phase of the software life-cycle is concerned with the development

Coding • The coding phase of the software life-cycle is concerned with the development of code that will implement the design. • This code is written is a formal language called a programming language. • Programming languages have evolved over time from sequences of ones and zeros directly interpretable by a computer, through symbolic machine code, assembly languages, and finally to higher-level languages that are more understandable to humans.

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

Software Testing Software testing is a process used to identify the correctness, completeness and quality of developed computer software. It is the process of executing a program / application under positive and negative conditions by manual or automated means. It checks for the : v Specification v Functionality v Performance

Why Software Testing ? Software Testing is important as it may cause mission failure,

Why Software Testing ? Software Testing is important as it may cause mission failure, impact on operational performance and reliability if not done properly. Effective software testing delivers quality software products satisfying user’s requirements, needs and expectations.

What …? ? …is an ”ERROR”? ? …. is a ”Bug”? ? …. is

What …? ? …is an ”ERROR”? ? …. is a ”Bug”? ? …. is Fault, Failure ? ?

Bug, Fault & Failure A person makes an Error That creates a fault in

Bug, Fault & Failure A person makes an Error That creates a fault in software That can cause a failure in operation Error : An error is a human action that produces the incorrect result that results in a fault. Bug : The presence of error at the time of execution of the software. Fault : State of software caused by an error. Failure : Deviation of the software from its expected result. It is an event.

What Is Unit Testing? • Definition – A unit is a module or a

What Is Unit Testing? • Definition – A unit is a module or a small set of modules. • In Java, a unit is a class or interface, or a set of them, e. g. , • An interface and 3 classes that implement it, or • A public class along with its helper classes. – Unit testing is testing of a unit. 8

Why Unit Testing? • Divide-and-conquer approach – – Split system into units. Debug unit

Why Unit Testing? • Divide-and-conquer approach – – Split system into units. Debug unit individually. Narrow down places where bugs can be. Don’t want to chase down bugs in other units. 9

How to Do Unit Testing • Scaffolding To do Unit tests, we have to

How to Do Unit Testing • Scaffolding To do Unit tests, we have to provide replacements for parts of the program that we will omit from the test. • Scaffolding is any code that we write, not as part of the application, but simply to support the process of Unit and Integration testing. • Scaffolding comes in two forms 1. Drivers 2. Stubs 10

Scaffolding • • Stubs are dummy modules that are always distinguish as "called programs",

Scaffolding • • Stubs are dummy modules that are always distinguish as "called programs", or you can say that is handle in integration testing (top down approach), it used when sub programs are under construction. Stubs are considered as the dummy modules that always simulate the low level modules. Drivers are also considered as the form of dummy modules which are always distinguished as "calling programs”, that is handled in bottom up integration testing, it is only used when main programs are under construction. Drivers are considered as the dummy modules that always simulate the high level modules.

Example of Stubs and Drivers is given below: • For Example we have 3

Example of Stubs and Drivers is given below: • For Example we have 3 modules login, home, and user module. Login module is ready and need to test it, but we call functions from home and user (which is not ready). To test at a selective module we write a short dummy piece of a code which simulates home and user, which will return values for Login, this piece of dummy code is always called Stubs and it is used in a top down integration. • Considering the same Example above: If we have Home and User modules get ready and Login module is not ready, and we need to test Home and User modules Which return values from Login module, So to extract the values from Login module We write a Short Piece of Dummy code for login which returns value for home and user, So these pieces of code is always called Drivers and it is used in Bottom Up Integration

Integration Testing Integration testing is executed to establish whether the components interact with each

Integration Testing Integration testing is executed to establish whether the components interact with each other consort to the specification or not. Integration testing in large refers to joining all the components resulting in the complete system. It is further performed by the developer or the software Tester or by both. Example- checking that a Payroll system interacts as required with the Human Resource system.

Incremental integration testing

Incremental integration testing

Approaches to integration testing • Top-Down Integration Testing: Top Down Integration as the term

Approaches to integration testing • Top-Down Integration Testing: Top Down Integration as the term suggests, starts always at the top of the program hierarchy and travels towards its branches. This can be done in either depth-first or breadth-first. • Bottom-Up Integration Testing: Bottom –Up integration as it name implies starts at the lowest level in the program structure. • In practice, most integration involves a combination of these strategies

System Testing After completing Unit and Integration testing through white box testing techniques development

System Testing After completing Unit and Integration testing through white box testing techniques development team release an. exe build (all integrated module) to perform black box testing. • • Usability Testing Functional Testing Performance Testing Security Testing

Acceptance • A formal test conducted to determine Testing whether or not a system

Acceptance • A formal test conducted to determine Testing whether or not a system satisfies its acceptance criteria and to enable the customer to determine whether or not to accept the system. • It is the final test action before deploying the software. The goal of acceptance testing is to verify that the software is ready and can be used by the end user to perform the functions for which the software was built.

Three major objectives of acceptance testing: • Confirm that the system meets the agreed

Three major objectives of acceptance testing: • Confirm that the system meets the agreed upon criteria • Identify and resolve discrepancies, if there is any • Determine the readiness of the system for cut-over to live operations 18

Acceptance Criteria – – – – 19 Functional Correctness and Completeness Accuracy Data Conversion

Acceptance Criteria – – – – 19 Functional Correctness and Completeness Accuracy Data Conversion Backup and Recovery Usability Performance Stress Reliability and Availability – Maintainability and Serviceability – Robustness – Timeliness – Confidentiality and Availability – Install ability and Upgradability – Scalability – Documentation

Performance Testing • LOAD TESTING – Also Known as Scalability Testing. During this test,

Performance Testing • LOAD TESTING – Also Known as Scalability Testing. During this test, test engineers execute application build under customer expected configuration and load to estimate performance. • STRESS TESTING – During this test, Test engineers estimates the peak load. To find out the maximum number of users for execution of out application user customer expected configuration to estimate peak load.

Alpha Testing 1. The application is tested by the users who are going to

Alpha Testing 1. The application is tested by the users who are going to use application. 2. Done at developer’s site under controlled conditions 3. Under the supervision of the developers.

Beta Testing 1. This Testing is done before the final release of the software

Beta Testing 1. This Testing is done before the final release of the software to end-users. 2. Before the final release of the software is released to users for testing where there will be no controlled conditions and the user here is free enough to do what ever he wants to do on the system to find errors.

Regression Testing with the intent of determining if bug fixes have been successful and

Regression Testing with the intent of determining if bug fixes have been successful and have not created any new problems. Also, this type of testing is done to ensure that no degradation of baseline functionality has occurred.

Thank You !!

Thank You !!