Home » Software Testing
.

Welcome to the world of software testing. Here you will get to know everything you wanted to know about Software Testing. Most importantly, you will get to know this information from the practitioners, from the people working in the field, from people like you and me. So lets start learning this art; this science or just Software Testing and start with its definition.


What is Software Testing?

According to the classic definition of Myers "Software Testing is the process of executing a program or system with the intent of finding errors."


To learn the testing tutorial completely from the basics, go to the link below

Testing Tutorial

CAST





 As the IT industry becomes more competitive, the ability for management to distinguish professional and skilled individuals in the field becomes mandatory. The CAST Certification demonstrates a foundation-level understanding of quality testing principles and practices.

Acquiring the designation of Certified Associate in Software Testing (CAST) indicates a professional level of competence in the principles and practices of software testing in the IT profession. CASTs become members of an acclaimed professional group, receiving recognition of their competence by business and professional associates, and are afforded potentially more rapid career advancement.

Examination Availability: (CAST)
The CAST certification exam is currently ONLY available in the following areas
Belarus, India, and Sri Lanka.

Applicant Prerequisites: (CAST)
To qualify for candidacy, each applicant must meet ONE of three prerequisites listed below:
1.    A 3 year degree or 4 year degree from an accredited college-level institution
2.    A 2 year degree from an accredited college-level institution and 1 years of experience in the information services field
3.    Three years of experience in the information services field
An applicant for certification must adhere to the Code of Ethics that outlines the ethical behaviors expected of all certified professionals by the ISCB.

The CAST application fee is:
•    $100.00


The application fee includes the following:
•    Instant access to a PDF file of the CAST CBOK (299 pages) which is a useful tool to help prepare for the exam. After payment go to the CBOK Manuals page of Customer Portal for access.
•    The candidatesInitial Exam which must be taken within one year from the date payment was processed or the application will expire (see Application Length).

Examination Details: (CAST)
Candidates are tested on their knowledge and practice of the skill areas defined in the CASTCBOK. The exam itself is paper-based consisting of two parts:
•    Part 1 - Multiple choice (50 questions each - objective / 45 minutes time limit)
•    Part 2 - Multiple choice (50 questions each - objective / 45 minutes time limit)
There is a total of 100 questions and the exam will take over 2 hours to complete which includes a 10 minute break. The passing mark is 75% which is the average score of both parts.

CSTE



The Certified Software Tester (CSTE) certification is intended to establish standards for initial qualification and provide direction for the testing function through an aggressive educational program. Acquiring the designation of Certified Software Tester (CSTE) indicates a professional level of competence in the principles and practices of quality control in the IT profession. CSTE's become members of a recognized professional group and receive recognition of their competence by business and professional associates, potentially more rapid career advancement, and greater acceptance in the role as advisor to management.

Examination Availability: (CSTE)
The CSTE Examination are now being offered worldwide either through a Prometric Test Center(online exam). The location where you plan to take your examination will determine the site you must select. See Exam Scheduling: (CSTE) located at the bottom of this page for more details.

Applicant Prerequisites: (CSTE)
To qualify for candidacy, each applicant must meet ONE of four prerequisites listed below:
1.    A 4 year degree from accredited college-level institution & 2 years of experience in the information services field
2.    A 3 year degree from accredited college-level institution & 3 years of experience in the information services field
3.    A 2 year degree from accredited college-level institution & 4 years of experience in the information services field
4.    Six years of experience in the information services field
AND
Are working, or have worked at any time within the prior 18 months, in the field within covered by the certification designation.
An applicant for certification must adhere to the Code of Ethics that outlines the ethical behaviors expected of all certified professionals by the ISCB.

The CSTE application fee is:
•    $350 or $420

The application fee includes the following:
•    Instant access to a PDF file of the CSTE CBOK (561 pages) which is a useful tool to help prepare for the exam. After payment go to the CBOK Manuals page of Customer Portal for access. The $420 fee also includes a CD / book of the CBOK materials (same content as found on the PDF).
•    The candidatesInitial Exam which must be taken within one year from the date payment was processed or the application will expire (see Application Length).


Examination Details: (CSTE)
Candidates are tested on their knowledge and practice of the skill areas defined in the CSTECBOK. The exam itself consist of four parts:
•    Parts 1 & 3 - Multiple choice (50 questions each - objective / 45 minutes time limit)
•    Parts 2 & 4 - Short answer / essay (10 questions each - subjective / 75 minute time limit).
There is a total of 120 questions and the exam will take over 4 hours to complete which includes a 10 minute break after the first three parts. The passing mark is 75% which is the average score of both parts.

Depending on where taking the exam it will either be computer-based (online) or paper-based.

Table of Contents !!!

A

Ad hoc Testing
Agile Testing
Process in Agile Testing
Alpha Testing
Analytical and Empirical Testing
Application Binary Interface
Automation Testing


B



C

D

E

F

I

L

M

O



Q

R

S

T

U

V

W

Agile testing !!!

Agile Testing
***************

* Testing practice that follows the agile manifesto, treating development as the customer of testing
* Testing practice for projects using agile methodologies.

Ad hoc Testing !!!

Ad hoc testing
***************

It is performed without planning and documentation. The tests are intended to be run only once, unless a defect is discovered. Ad hoc testing is a part of exploratory testing, being the least formal of test approach. In this view, ad hoc testing has been criticized because it isn't structured, but this can also be a strength: important things can be found quickly. It is performed with improvisation, the tester seeks to find bugs with any means that seem appropriate. It contrasts to regression testing that looks for a specific issue with detailed reproduction steps, and a clear expected result. Ad hoc testing is most often used as a complement to other types of testing.

Volume Testing !!!


Volume Testing
*****************

The purpose of Volume Testing is to find weaknesses in the system with respect to its handling of large amounts of data during short time periods. For example, this kind of testing ensures that the system will process data across physical and logical boundaries such as across servers and across disk partitions on one server.

Usability Testing !!!

Usability:
***********
Correctness is whether the information is truthful or contains misinformation. The accuracy of the information is whether it is without grammatical or spelling errors .Remove relevant information from your site. This may cause misunderstanding or confusion

General appearance:
* Page appearance
* Color, font and size
* Frames
* Consistent design.


Test Plan !!!

The Following are the test plan outlines:

1. BACKGROUND
2. INTRODUCTION
3. ASSUMPTIONS
4. TEST ITEMS - List each of the items (programs) to be tested.
5. FEATURES TO BE TESTED - List each of the features (functions or requirements) which will be tested or demonstrated by the test.
6. FEATURES NOT TO BE TESTED
Explicitly lists each feature, function, or requirement which won't be tested and why not.
7. APPROACH
Describe the data flows and test philosophy.
Simulation or Live execution, Etc.
8. ITEM PASS/FAIL CRITERIA Blanket statement
Itemized list of expected output and tolerances
9. SUSPENSION/RESUMPTION CRITERIA
Must the test run from start to completion?
Under what circumstances may it be resumed in the middle?
Establish check-points in long tests.
10.TEST DELIVERABLE
What, besides software, will be delivered?

Test report
Test software
11. TESTING TASKS Functional tasks (e.g., equipment set up)
Administrative tasks
12. ENVIRONMENTAL NEEDS
Security clearance
Office space & equipment
Hardware/software requirements
13. RESPONSIBILITIES
Who does the tasks in Section 10?
What does the user do?
14. STAFFING & TRAINING
15. SCHEDULE
16. RESOURCES
17. RISKS & CONTINGENCIES
18. APPROVALS

V Model !!!

CHAPTER 9

Diagrammatic Representation of V Model:


In Brief:

There are two phases in the V model development. They are
1. Verification
2. Validation.

Verification Phases

Requirements analysis

In this phase, the requirements of the proposed system are collected by analyzing the needs of the user(s). This phase is concerned about establishing what the ideal system has to perform. However, it does not determine how the software will be designed or built. Usually, the users are interviewed and a document called the user requirements document is generated. The user requirements document will typically describe the system’s functional, physical, interface,
performance, data, security requirements etc as expected by the user.The users carefully review this document as this document would serve as the guideline for the system designers in the system design phase. The user acceptance tests(UAT) are designed in this phase.

System Design

System engineers analyze and understand the business of the proposed system by studying the user requirements document. They figure out possibilities and techniques by which the user requirements can be implemented. If any of the requirements is not feasible, the user is informed of the issue. A resolution is found and the user requirement document is edited accordingly.The software specification document which serves as a blueprint for the development phase is generated. This document contains the general system organization, menu structures, data structures etc. It may also hold examples business scenarios, sample windows, reports for the better understanding. Other technical documentation like entity diagrams, data dictionary will also be produced in this phase. The documents for system testing is prepared in this phase.

Architecture Design

This phase can also be called as high-level design (HLD). The baseline in selecting the architecture is that it should realize all the requirements within the given time, cost and resources. Software architecture is commonly represented as two-tier, three-tier or multi-tier models which typically comprises of the database layer, user-interface layer and the application layer. The modules and components representing each layer, their inter-relationships, subsystems, operating environment and interfaces are laid out in detail.The output of this phase is the high-level design document which typically consists of the list of modules, brief functionality of each module, their interface relationships, dependencies, database tables, architecture diagrams, technology details etc. The integration testing design is carried
out in this phase.

Module Design

This phase can also be called as low-level design (LLD). The designed system is broken up in to smaller units or modules and each of them is explained so that the programmer can start coding directly. The low level design document or program specifications will contain a detailed functional logic of the module, in pseudocode - database tables, with all elements, including their type and size - all interface details with complete API references- all dependency issues- error
message listings- complete input and outputs for a module. The unit test design is developed in this stage.

Coding

It is the process of writing, testing, and maintaining the source code of computer programs. The source code is written in a programming language.

Validation Phases

Unit Testing

In the V-model of software development, unit testing implies the first stage of dynamic testing process.It involves analysis of the written code with the intention of eliminating errors. It also verifies that the codes are efficient and adheres to the adopted coding standards. Testing is usually white box. It is done using the Unit test design prepared during the module design phase. This may be carried out by software testers, software developers or both.

Integration Testing

In integration testing the separate modules will be tested together expose faults in the interfaces and in the interaction between integrated components. Testing is usually black box as the code is not directly checked for errors. It is done using the integration test design prepared during the architecture design phase. Integration testing is generally conducted by software testers.

System Testing

System testing will compare the system specifications against the actual system. The system test design derived from the system design documents and is used in this phase. Sometimes system testing is automated using testing tools. once all the modules are integrated several erros may rise.Testing done at this stage is called system test.

User Acceptance Testing

Acceptance Testing checks the system against the requirements of the user. It uses black box testing using real data, real people and real documents to ensure ease of use and functionality of systems. Users who understand the business functions run the tests as given in the acceptance test plans, including installation and Online help. Hardcopies of user documentation are also being reviewed for usability and accuracy. The testers formally document the results of each test, and provide error reports, correction requests to the developers.

Basics of Software Testing !!!

CHAPTER 1

Basics of Software Testing
****************************

THE DEFINITION OF TESTINGTesting is a process designed to
• Prove that the program is error free
• Establish that the software performs its functions correctly
• Establish with confidence that the software does its job fully

Concepts - Testing is the task of locating errors.

GOALS OF TESTING1. Find cases where the program does not do what it is supposed to do.
2. Find cases where the program does things it is not supposed to do.
The first goal refers to specifications which were not satisfied by the program while the second goal refers to unwanted side-effects.
Defects:
  • Not satisfying the Customer’s requirements.
  • Variance from the desired product.
  • Expected result is not equal to actual result.
It is defined as the lack of something necessary or desirable for completion or perfection. In other words, An imperfection that causes inadequacy or failure,

Defect Status
New Defect - Defect detected recently.
Open - Defect open for rectification.
Fixed - Open for rectification but not yet rectified.
Reopen - Again open for rectification.
Closed - Defect is rectified.
Rejected - Defect cannot be rectified.

Defects severity
Critical - we cant proceed with the application.
Major - we can proceed with the application.
Minor - Defects are negligible.

Defects priority
High - If it is critical
Medium - If it is major
Low - If it is Minor
Software Testing:
* Process of evaluating defects in a software application.
* Software testing is a process of analyzing or operating software for the purpose of finding bugs.
* According to the definition, testing can involve either "analyzing" or "operating" software.
* Test activities that are associated with analyzing the products of software development are called static testing. Static testing includes code inspections, walkthroughs, and desk checks.
* In contrast, test activities that involve operating the software are called dynamic testing.
* It’s a process of evaluating the system by manual or automation means and verifies that it satisfies specified requests and identifies the difference between expected and actual results.
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 products satisfying user’s requirements, needs and expectations.
  • To unearth and correct defects.
  • To detect defects early and to reduce cost of defect fixing.
  • To ensure that product works as user expected it to.
  • To avoid user detecting problems.
Participants of Software Testing:
  • Software Customer.
  • Software User.
  • Software Developer.
  • Software Tester.
  • Information service management. (Group of people who gathers information from customers)
  • Senior Organization management. (Team leader and project leaders)
Basic Testing Types:

• Static - review of documents.

• Dynamic
Types
Functionality : Testing Functionality of application
Performance : Testing performance of the application