Basic Testing Questions:
There are always few basic questions hovering around this subject line viz –
- What is software testing?
- Why an application needs to be tested?
- Do we have any benefit out of this exercise?
- What could be the loss faced by any application without being tested??
- What are the different forms of testing exercised on an application
- Can we measure the effectiveness of testing
Let’s try to address the above questions and familiarize ourselves in this Post –
To start with, An Application software is developed to address set of Business necessities and needs of an end user to ensure and optimize the business processes followed in an Organisation. The intent of using an application software is to address the client and internal needs within a short cycle of time for a specific service requested.
To develop an Application to meet the above requirements of a Business there is a need to understand some of the key points —
- their current business model (Order Management, Process life cycle and so on)
- the Serving client nature (Normal customer, premier, sales personal, government, ..)
- Types of transactions carried (Policy creation, claims handling, settlement, Banking Transactions…)
- optimal application response,(Speed, loading, volume)
- the best of user interface required (Simple, Flashy, Voice processors, etc..)
- to address all the critical functional needs of a business
- are some to mention…
Now with reference to previous paragraph detailed it gives us a clear understanding that there is a need for the Application developed to be validated for the above mentioned details in detail to ensure and certify that it meets all the expectations of a Business need and a User need
Purpose of Testing:
Software testing is intended to identify the max deviations of an application as per the stated requirements or intended responses covering all possible logical combinations and corrected before the final version being published. This exercise also certifies the authenticity of the Application to support all the key decision of the Organization based on the output of the Software application by all means.
Process of Testing
Having confirmed the need for the Software Testing, it needs to be now ensured to follow a systematic approach with the intention of finding max deviations with requirements stated. The systematic approach is in the wiseness of choosing –
- the right types of Testing to be deployed
- Strategy to be applied to yield max result
Types of testing can be broadly classified under Black and White Box Testing which is further sub classified as –
- Whitebox Testing: Also referred as Grey Box, Glass, Clear, Transparent Testing is basically conducted by the development team. This testing involves evaluation of the Programmed code under various conditions such as –
- Path Testing
- Conditional Testing
- Branch Testing
Major Testing Types under this category are –
- Unit Testing
- Integration Testing
- Black Box Testing: Testing an Application without getting into the source code through the functional Responses of the Application is termed Black Box Testing.
The various type of testing under this category are –
- System Testing
- Usability Testing
- Acceptance Testing
- Regression Testing
- Beta Testing
- End to End Testing
- Interface Testing (Middleware based testing)
Non Functional Testing
- Stress Testing
- Performance Testing
- Load Testing
*(Details of each of them would be shared in the next post)
A strategy to decide what type of testing needs to be exercised with required number of Cycles to yield max results.
A brief list of activities in a Testing Assignment is as given –
Test Strategy > Test Plan Creation > Requirement Feasibility Analysis > Test Case/Scenario Design > Test Execution > Defect Log/Management > Test Phase Closure
- Test Strategy: is a document which details the approach that needs to be carried to ensure the max coverage of the Business Requirements in the application under test
- Test Plan: is a document which details the different types of testing that needs to carried out, criteria under each testing type, resources, environment, Defect Management, Roles/Responsibilities in the Testing project
- Requirement Feasibility Document: Requirements which are feasible to be tested
- Test Case/Scenario: is a document with set of Validations/Conditions in line with the requirements which ensures functional responses for the set of positive data conditions identified.
- Defect Management: Defect is a record of the deviation observed in the application as a result of the test Case executed. A defect has a defined set of flow before it is closed and verified. The closure of a defect confirms non appearance of the issue identified in the application.
(The details of this would be covered during Test Strategy/Plan discussions)
Testing earlier is always better rather than waiting till the user finds issues in using the application which is quite embarrassing and also costlier to fix the same.
It is often observed that as the defects get identified in the subsequent stages the cost of fixing a defect is substantially higher than the cost involved in fixing it in the earlier stages of testing
Some of the examples of software application breaking through are cited below which increases the need for testing and compulsory..
> A wrong bank account getting credited instead of the intended account
> A major break down due to malfunction of a software application viz Traffic, Nuclear reactors,…
> Wrong claims and settlements for a Life or a Auto insurance
Additionally to know some of the major breakdowns visit : http://www.wired.com/software/coolapps/news/2005/11/69355?currentPage=all
Note: I would touch pace each of the different details in my subsequent posts which is more practical in approach and realistic in implementation.