You are on page 1of 8

Software Testing-What is Software Testing? Actually what is Software Testing? This is the most important question to start with.

Why to Test Your Software? Even the most carefully planned and designed software, cannot possibly be free of defects. Your goal as a quality engineer is to find these defects. This requires creating and executing many tests. In order for software testing to be successful, you should start the Software Testing process as soon as possible. Each new version must be tested in order to ensure that "improvements" do not generate new defects. If you begin Software Testing only shortly before an application is scheduled for release, you will not have time to detect and repair many serious defects. Thus by Software Testing ahead of time, you can prevent problems for your users and avoid costly delays. Let us derive the main definition for Software Testing. I.Identifying the defects in Software Testing. what does this defect mean in Software Testing? The main purpose of Software Testing is to identify the defects. Defect:-A flow in a component or system that can cause the component or system to fail to perform its required function. Check also Fault,Failure Error,Bug etc. Fault:- Fault is similar to a defect. Failure:-Deviation of the component or system from its expected delivery,service or result. Error:-A human action that produces an incorrect result. Bug:- Bug is similar to that of an defect. II.Isolate the defects. Isolating means seperation or dividing the defects. These isolated defects are collected in the Defect Profile What is Defect Profile Document? a.Defect Profile is a document with many columns in Software Testing. b.This is a template provided by the company. III.Subjected for rectification The Defect Profile is subjected for rectification that means it is send to developer IV.Defects are rectified After getting from the developer make sure all the defects are rectified, before defining it as a Quality product. What is Quality in Testing? Quality is defined as justification of user requirements or satisfaction of user requirements. When all the 4 steps are completed we can say that Software Testing is completed. Now Let Us Write A Proper Definition For Testing:-SOFTWARE TESTING MAIN DEFINITION---This is the process in which the defects are identified, isolated , and subjected for rectification and finally make sure that all the defects are rectified , in order to ensure that the product is a Quality product. Objective of Software Testing

Understand the difference between verification and validation testing activities Understad what benefits the V model offers over other models. Be aware of other models in order to compare and contrast. Understand the cost of fixing faults increases as you move the product towards live use. Understand what constitutes a master test plan in Software Testing. Understand the meaning of each testing stage in Software Testing. Software Testing

Here are some of the terminology that has to be learned as part of Software Testing:First of all let us know the major difference between the project andproduct in Software Testing. There are many definitions relating this:-

1.Project:It means that exact rules i.e the customer requirements must be followed. 2.Product:This is based on the general requirements i.e on our own requirements. 3.Quotation in Software Testing:Estimating the cost of the project. 4.Bidding of the Project: Consider for example:If any bank want to Automate its procedures then that would bid or would call for various IT development companies. See this picture

5.Key Process Areas in Software Testing:-Instead of repeating the same process again and again we can keep out of them. Consider for example:-The login page for different projects would be the same. 6.Project Initiation Note(PIN) in Software Testing:-This is nothing but a mail to the Company Director. Software Testing-Company Structure Software Testing-COMPANY STRUCTURE This is the basic Structure that is followed by most of the Companies.

Now let us see the category of Human Resources in Software Testing QA:-Quality Assurance. CEO:-Chief Executive Officer. D:-Directors. HTL:-Head Team Leader. TM:-Technical Manager. QM:-Quality Manager. QTL:-Quality Team Leader. PM:-Project Managers. QL:-Quality Leader. TL/PL:-Team Leader/Project Leader. TL:-Test Leader. SSE:-Senior Software Engineer. STE:-Senior Test Engineer. SE:-Software Engineer. TE:-Test Engineer. Software Testing-Testing Process

1.The Application we are testing is called as Application Under Testing. 2.The Application is divided into 2 parts:a)Structure:b)Functional:3.The Structural part is tested by Developer. 4.The Structural part is called as Invisible. 5.The Functional part is tested by Test Engineer. 6.The Functional part is called as Visible

Fundamental Test Process in Software Testing The fundamental test process in Software Testing comprises planning, specification, execution, recording and checking for completion. You will find organizations that have slightly different names for each stage of the process and you may find some processes that have just few stages for example. However, you will find that all good test processes adhere to this fundamental structure.

Test specification in Software Testing (sometimes referred to as test design) involves designing test conditions and test cases using recognized test techniques identified at the planning stage. Here it is usual to produce a separate document or documents that fully describe the tests that you will carry out. It is important to determine the expected results prior to test execution. Test execution involves actually running the specified test on a computer system either manually or by using an automated test tool Test recording involves keeping good records of the test activities that you have carried out. Versions of the software you have tested and the test specifications are software you have tested and the test specifications are recorded along with the actual outcomes of each test Checking for test completion involves looking at the previously specified test completion criteria to see if they have been met. If not, some test may need to be re-run and in some instances it may be appropriate to design some new test cases to meet a particular coverage target. Successful tests detect faults As the objective of a test should be to detect faults, a successful test is one that does detect a fault. This is counter-intuitive, because faults delay progress; a successful test is one that may cause delay. The successful test reveals a fault which, if found later, may be many more times costly to correct so in the long run, is a good thing Meaning of completion or exit criteria in Software Testing Completion or exit criteria are used to determine when testing (at any stage) is complete. These criteria may be defined in terms of cost, time, faults found or coverage criteria. Coverage criteria in Software Testing Coverage criteria are defined in terms of items that are exercised by test suites, such as branches,user requirements, most frequently used transactions etc

Testing and Expected Results in Software Testing The specification of expected results in advance of test execution is perhaps one of the most fundamental principles of testing computer software. If this step is omitted then human subconscious desire for tests to pass will be overwhelming and tester may perhaps interpret a plausible, yet erroneous result, as correct outcome.

As you will see when designing test using black box and white box techniques in Software Testing there is ample room within the test specification in Software Testing to write down

you expected results and therefore no real excuse for not doing it. If you are unable to determine expected results for a particular test that you had in mind then it its not a good test as you will not be able to (a) determine whether it has passed or not and (b) you will never be able to repeat it.

Even with a quick and dirty ad-hoc test it is advisable to write down beforehand what you expect to happen. This may all sound pretty obvious but many test efforts have floundered by ignoring this basic principle.

" The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong does go wrong it usually turns out to be impossible to get at or repair."

Here is a small Power point presentation of Software Testing.

Software Testing-Testing Requirements


Software testing is not an activity to take up when the product is ready. An effective Software Testing begins with a proper plan from the user requirements stage itself. Software testability is the ease with which a computer program is tested. Metrics can be used to measure the testability of a product. The requirements for effective Software Testing are given in the following sub-sections.

Operability in Software Testing: 1. The better the software works, the more efficiently it can be tested. 2. The system has few bugs (bugs add analysis and reporting overhead to the test process) 3. No bugs block the execution of tests. 4. The product evolves in functional stages (allows simultaneous development & testing) Observability in Software Testing: 1. What is seen is what is tested 2. Distinct output is generated for each input 3. System states and variables are visible or queriable during execution 4. Past system states and variables are visible or queriable (eg., transaction logs) 5. All factors affecting the output are visible 6. Incorrect output is easily identified 7. Incorrect input is easily identified 8. Internal errors are automatically detected through self-testing mechanism 9. Internally errors are automatically reported 10. Source code is accessible Controllability in Software Testing: 1. The better the software is controlled, the more the testing can be automated and optimised. 2. All possible outputs can be generated through some combination of input in Software Testing

3. 4. 5. 6.

All code is executable through some combination of input in Software Testing Software and hardware states can be controlled directly by testing Input and output formats are consistent and structured in Software Testing Tests can be conveniently specified, automated, and reproduced.

Decomposability in Software Testing: 1. By controlling the scope of testing, problems can be isolated quickly, and smarter testing can be performed. 2. The software system is built from independent modules 3. Software modules can be tested independently in Software Testing Simplicity in Software Testing: 1. The less there is to test, the more quickly it can be tested in Software Testing 2. Functional simplicity 3. Structural simplicity 4. Code simplicity Stability in Software Testing: 1. The fewer the changes, the fewer the disruptions to testing 2. Changes to the software are infrequent 3. Changes to the software are controlled in Software Testing 4. Changes to the software do not invalidate existing tests in Software Testing 5. The software recovers well from failures in Software Testing Understandability in Software Testing: 1. The more information we have, the smarter we will test 2. The design is well understood in Software Testing 3. Dependencies between internal external and shared components are well understood. 4. Changes to the design are communicated. 5. Technical documentation is instantly accessible 6. Technical documentation is well organized in Software Testing 7. Technical documentation is specific and detailed 8. Technical documentation is accurate

Software Testing-Testing Life Cycles


Before going to the Testing Life Cycle in Software Testing, we need to know how the software is developed and its Life Cycle in Software Testing. The Software Development Life Cycle (SDLC) is also called as the Product Development Life Cycle (PDLC) in Software Testing. The SDLC in Software Testing has 6 phases:They are:a)Initial Phase in Software Testing b)Analysis Phase in Software Testing c)Design Phase in Software Testing d)Coding Phase in Software Testing e)Testing Phase in Software Testing f)Delivery & Maintenance Phase in Software Testing Now let Us discuss each phase in detail:-a)Initial Phase in Software Testing:(i)Gathering the Requirements:The Business Analyst(BA) will gather the information of the company through one template which is predefined and goes to client. He would collect all the information of what has to be developed and in how many days and all the basic requirements of the company. For the proof of his collection of information the Business Analyst(BA) would prepare one document called as either

BDD in Software Testing:--Business Development Design BRS in Software Testing:--Business Requirement Specification URS in Software Testing:--User Requirement Specification CRS in Software Testing:--Customer Requirement Specification All are the same. (ii)Discussing the Financial Terms and Conditions:-The Engagement Manager(EM) would discuss all the Financial Matters.

b)Analysis Phase in Software Testing:In this phase the BDD document is taken as the input. In this phase 4 steps are done. (i)Analyse the requirements in Software Testing:-In this step all the requirements are analysed and studyed. (ii)Feasibility Study in Software Testing:-Feasibility means the possibility of the project developing. (iii)Deciding Technology in Software Testing:-Deciding which techonology has to be used for example: Either to use the SUN or Microsoft Technology etc: (iv)Estimation in Software Testing:-Estimating the resources.for example:-Time,Number of people etc: During the Analysis Phase the Project Manager prepares the PROJECT PLAN. The output document for this phase is the Software Requirements Specification(SRS). And this document is prepared by Senior Analyst(SR).Go to Top c)Design Phase in Software Testing:The designing will be in 2 levels:(i)High Level Designing in Software Testing:-In this level of Designing the project is divided into number of modules. The High Level Designing is done by Technical Manager(TM) or Chief Architect(CA). (ii)Low Level Designing in Software Testing:-In this level of Designing the modules are further divided into number of submodules. The Low Level Designing is done by Team Lead(TL). In this Phase the Cheif Architect would prepare the Technical Design Document or Detail Design Document.

d)Coding Phase in Software Testing:In this Phase the Developers would write the Programs for the Project by following the Coding standards. In this phase the Developers would prepare the Source Code.Go to Top e)Testing Phase in Software Testing:1.In the first phase when the BDD is prepared the Test Engineer would study the document, and send a Review Report to Business Analyst(BA). 2.Review Report in Software Testing is nothing but a document prepared by the Test Engineer while studying the BDD document and the points which he cannot understand and not clear are written in that report and sent to BA. 3.And the Test Engineer would write the Test Cases of application. 4.In Manual Testing there would be upto 50% defect free and inAutomation Testing it would be 93% defect free. 5.In this Phase Testing people document called as Defect Profile DocumentGo to Top f)Delivery & Maintenance Phase in Software Testing:1.In this Phase after the project is done a mailis given to the client mentioning the completing of the project. 2.This is called as the Software Delivery Note. 3.The project is tested by client and is called as the User Acceptance Testing. 4.The project is installed in client environment and there testing is done called Port Testing in Software Testing while installing if any problem occurrs the maintenance people would write the Deployment Document(DD) to Project Manager(PM). 5.After some time if client want to have some changes in the software and software changes are done by Maintenance.

More internal processes of the Software testing Life cycles are continued in the next page

You might also like