Software Testing


A test strategy
A test strategy is an outline that describes the testing portion of the software development cycle. It is created to inform project managers, testers, and developers about some key issues of the testing process. This includes the testing objective, methods of testing new functions, total time and resources required for the project, and the testing environment. In the test strategy is described how the product risks of the stakeholders are mitigated in the test levels, which test types are performed in the test levels, and which entry and exit criteria apply. The test strategy is created based on development design documents. The system design document is the main one used and occasionally, the conceptual design document can be referred to. The design documents describe the functionalities of the software to be enabled in the upcoming release. For every set of development design, a corresponding test strategy should be created to test the new feature sets.

• • • • • • • • • • • • • • •

1 Test Levels 2 Roles and Responsibilities 3 Environment Requirements 4 Testing Tools 5 Risks and Mitigation 6 Test Schedule 7 Regression Test Approach 8 Test Groups 9 Test Priorities 10 Test Status Collections and Reporting 11 Test Records Maintenance 12 Requirements traceability matrix 13 Test Summary 14 See also 15 References

Test Levels
The test strategy describes the test level to be performed. There are primarily three levels of testing: unit testing, integration testing, and system testing. In most software development organizations, the developers are responsible for unit testing. Individual testers or test teams are responsible for integration and system testing.

Page 1

Software Testing


Roles and Responsibilities
The roles and responsibilities of test leader, individual testers, project manager are to be clearly defined at a project level in this section. This may not have names associated: but the role has to be very clearly defined. Testing strategies should be reviewed by the developers. They should also be reviewed by test leads for all levels of testing to make sure the coverage is complete yet not overlapping. Both the testing manager and the development managers should approve the test strategy before testing can begin.

Environment Requirements
Environment requirements are an important part of the test strategy. It describes what operating systems are used for testing. It also informs clearly the necessary OS patch levels and security updates required. For example, a certain test plan may require service pack 2 installed on the Windows XP OS as a prerequisite for testing.

Testing Tools
There are two methods used in executing test cases: manual and automation. Depending on the nature of the testing, it is usually the case that a combination of manual and automated testing is the most optimal testing method. Planner should find the appropriate automation tool to reduce total testing time.

Risks and Mitigation
Any risks that will affect the testing process must be listed along with the mitigation. By documenting the risks in this document, we can anticipate the occurrence of it well ahead of time and then we can proactively prevent it from occurring. Sample risks are dependency of completion of coding, which is done by sub-contractors, capability of testing tools etc.

Test Schedule
A test plan should make an estimation of how long it will take to complete the testing phase. There are many requirements to complete testing phases. First, testers have to execute all test cases at least once. Furthermore, if a defect was found, the developers will need to fix the problem. The testers should then re-test the failed test case until it is functioning correctly. Last but not the least, the tester need to conduct regression testing towards the end of the cycle to make sure the developers did not accidentally break parts of the software while fixing another part. This can occur on test cases that were previously functioning properly. The test schedule should also document the number of tester available for testing. If possible, assign test cases to each tester.
Page 2

Software Testing


It is often difficult to make an accurate approximation of the test schedule since the testing phase involves many uncertainties. Planners should take into account the extra time needed to accommodate contingent issues. One way to make this approximation is to look at the time needed by the previous releases of the software. If the software is new, multiplying the initial testing schedule approximation by two is a good way to start.

Regression Test Approach
When a particular problem is identified, the programs will be debugged and the fix will be done to the program. To make sure that the fix works, the program will be tested again for that criteria. Regression test will make sure that one fix does not create some other problems in that program or in any other interface. So, a set of related test cases may have to be repeated again, to make sure that nothing else is affected by a particular fix. How this is going to be carried out must be elaborated in this section. In some companies, whenever there is a fix in one unit, all unit test cases for that unit will be repeated, to achieve a higher level of quality.

Test Groups
From the list of requirements, we can identify related areas, whose functionality is similar. These areas are the test groups. For example, in a railway reservation system, anything related to ticket booking is a functional group; anything related with report generation is a functional group. Same way, we have to identify the test groups based on the functionality aspect.

Test Priorities
Among test cases, we need to establish priorities. While testing software projects, certain test cases will be treated as the most important ones and if they fail, the product cannot be released. Some other test cases may be treated like cosmetic and if they fail, we can release the product without much compromise on the functionality. This priority levels must be clearly stated. These may be mapped to the test groups also.

Test Status Collections and Reporting
When test cases are executed, the test leader and the project manager must know, where exactly we stand in terms of testing activities. To know where we stand, the inputs from the individual testers must come to the test leader. This will include, what test cases are executed, how long it took, how many test cases passed and how many failed etc. Also, how often we collect the status is to be clearly mentioned. Some companies will have a practice of collecting the status on a daily basis or weekly basis. This has to be mentioned clearly.

Test Records Maintenance
When the test cases are executed, we need to keep track of the execution details like when it is executed, who did it, how long it took, what is the result etc. This data must be available to the
Page 3

Requirements traceability matrix Main article: Traceability matrix Ideally each software developed must satisfy the set of requirements completely. statements and internal logic of the code etc. source codes. they may need it even on daily basis. The person. unit test cases. LLD. The test strategy must give a clear vision of what the testing team will do for the whole project for the entire duration. the tester has to deal with the code and hence is needed to possess knowledge of coding and logic i. Ideally. each requirement must be addressed in every single document in the software process.Software Testing 2010 test leader and the project manager. The naming convention for the documents and files must also be mentioned. structural. right from design. there will be a separate column. all the individual cells must have valid section ids or names filled in. in a central location.e. White box testing is also called as glass. LLD etc}. who prepares this document. the rows will have the requirements. This section must address what kind of test summary reports will be produced for the senior management along with the frequency. integration test cases and the system test cases. with a very good experience. In case of any missing of requirement. along with all the team members. So. This may be stored in a specific directory in a central server and the document must say clearly about the locations and the directories. what section in HLD addresses a particular requirement. For every document {HLD. What is a White Box Testing Strategy? White box testing strategy deals with the internal logic and structure of the code. so that it addressed the requirement. Test Summary The senior management may like to have test summary on a weekly or monthly basis. internal working of Page 4 . if every requirement is addressed in every single document. The documents include the HLD. So. we need to state. In order to implement white box testing. Refer the following sample table which describes Requirements Traceability Matrix process. Test strategy must be clearly explained to the testing team members right at the beginning of the project. In this matrix. This document will/may be presented to the client also. If the project is very critical. if needed. open box or clear box testing. in every cell. as this is the document that is going to drive the entire team for the testing activities. Then we know that every requirement is addressed. we need to go back to the document and correct it. The tests written based on the white box testing strategy incorporate coverage of the code written. paths. branches. must be functionally strong in the product domain.

Types of testing under White/Glass Box Testing Strategy: Unit Testing: The developer carries out unit testing in order to check if the particular module or unit of code is working fine. Disadvantages of white box testing are: i) As knowledge of code and internal structure is a prerequisite. The Unit Testing comes at the very basic level as it is carried out as and when the unit of the code is developed or a particular functionality is built. Security Testing: Security Testing is carried out in order to find out how well the system can protect itself from unauthorized access. ii) The other advantage of white box testing is that it helps in optimizing the code iii) It helps in removing the extra lines of code. Advantages of White box testing are: i) As the knowledge of internal coding structure is prerequisite. which can bring in hidden defects. which increases the cost. Branch coverage testing helps in validating of all the branches in the code and making sure that no branching leads to abnormal behavior of the application. This type of testing needs sophisticated testing Page 5 . Branch Coverage: No software application can be written in a continuous mode of coding. a skilled tester is needed to carry out this type of testing. Dynamic analysis involves executing the code and analyzing the output. at some point we need to branch out the code in order to perform a particular functionality. which may create problems. resulting in failure of the application.Software Testing 2010 the code. hacking – cracking. Static and dynamic Analysis: Static analysis involves going through the code in order to find out any possible defect in the code. any code damage etc. it becomes very easy to find out which type of input/data can help in testing the application effectively. Statement Coverage: In this type of testing the code is executed in such a manner that every statement of the application is executed at least once. White box test also needs the tester to look into the code and find out which unit/statement/chunk of the code is malfunctioning. ii) And it is nearly impossible to look into every bit of code to find out hidden errors. which deals with the code of application. It helps in assuring that all the statements execute without any side effect.

Exploratory testing. Now a days. stress testing. The base of the Black box testing strategy lies in the selection of appropriate data as per functionality and testing it against the functional specifications in order to check for normal and abnormal behavior of the system. These testing types are again divided in two groups: a) Testing in which user plays a role of tester and b) User is not required. "Functional/Behavioral Testing" and "Closed Box Testing". should know. ad-hoc testing.Software Testing techniques.) etc. recovery testing. Incremental integration testing (which deals with the testing of newly added code in the application). Performance and Load testing (which helps in finding out how the particular code manages resources and give performance etc. As the name "black box" suggests. In order to implement Black Box Testing Strategy. The types of testing under this strategy are totally based/focused on the testing for requirements and functionality of the work product/software application. alpha testing. It also helps in finding out which code and which strategy of coding can help in developing the functionality effectively. no knowledge of internal logic or code structure is required. system testing. Black box testing is sometimes also called as "Opaque Testing". beta testing etc. Sanity or Smoke testing. the tester is needed to be thorough with the requirement specifications of the system and as a user. it is becoming common to route the Testing work to a third party as the developer of the system knows too much of the internal logic and coding of the system. there are some more types which fall under both Black box and White box testing strategies such as: Functional testing (which deals with the code in order to check its functional performance). the application is tested for the code that was modified after fixing a particular bug/defect. it instead is a testing strategy. which does not need any knowledge of internal design or code etc. What is a Black Box Testing Strategy? Black Box Testing is not a type of testing. Usability testing. Besides all the testing types given above. 2010 Mutation Testing: A kind of testing in which. Page 6 . load testing. how the system should behave in response to the particular action. Various testing types that fall under the Black Box Testing strategy are: functional testing. which makes it unfit to test the application by the developer. volume testing. User Acceptance Testing (also known as UAT).

the software is tested for the functional requirements. Recovery Testing: Recovery testing is basically done in order to check how fast and better the application can recover against any type of crash or hardware failure etc. large number of queries etc. Adhoc testing helps in deciding the scope and duration of the various other testing and it also helps testers in learning the application prior starting with any other testing. The tests are written in order to check if the application behaves as expected. Load Testing: The application is tested against heavy loads or inputs such as testing of web sites in order to find out at what point the web-site/application fails or at what point its performance degrades. which checks for the stress/load the applications can withstand.Software Testing 2010 Testing method where user is not required: Functional Testing: In this type of testing. Type or extent of recovery is specified in the requirement specifications. Huge amount of data is processed through the application (which is being tested) in order to check Page 7 . Usability Testing: This testing is also called as ‘Testing for User-Friendliness’. Ad-hoc Testing: This type of testing is done without any formal Test Plan or Test Case creation. Volume Testing: Volume testing is done against the efficiency of the application. Stress Testing: The application is tested against heavy load such as complex numerical values. Smoke Testing: This type of testing is also called sanity testing and is done in order to check if the application is ready for further major testing and is working properly without failing up to least expected level. large number of inputs. This testing is done if User Interface of the application stands an important consideration and needs to be specific for the specific type of user. Exploratory Testing: This testing is similar to the ad-hoc testing and is done in order to learn/explore the application.

the software is distributed as a beta version to the users and users test the application at their sites. the users are invited at the development center where they use the application and the developers note every particular input or action carried out by the user. but he/she does the testing more with a point-of-view to explore the software features and tries to break it in order to find out unknown bugs. Alpha Testing: In this type of testing.’ Which simply can be put as: A type of testing where we explore software. A tester who does exploratory testing. Software Testing . Beta Testing: In this type of testing.Brief Introduction To Exploratory Testing Exploratory Software Testing.Software Testing the extreme limitations of the system. What is an Exploratory Testing? Bach’s Definition: ‘Any testing to the extent that the tester actively controls the design of the tests as those tests are performed and uses information gained while testing to design new and better tests. As the users explore the software. Exploratory testing is a type of testing where tester does not have specifically planned test cases. does it only with an idea to more and more Page 8 . in case if any exception/defect occurs that is reported to the developers. write and execute the test scripts simultaneously. Testing where user plays a role/user is required: 2010 User Acceptance Testing: In this type of testing.. Exploratory testing is the only type of testing that can help in uncovering bugs that stand more chance of being ignored by other testing strategies. Any type of abnormal behavior of the system is noted and rectified by the developers. the software is handed over to the user in order to find out if the software meets the user expectations and works as it is expected to.. has found its place in the Software Testing world. even though disliked by many.

as a general practice. he/she can safely close the defect. Exploratory testing. tester also tries to make it sure that he/she has understood the scenario and functionality properly and can reproduce the bug condition. Once programmer fixes the bug. tester registers that bug with the programmer. For an example. All these test cases are thought by the tester as a variation of the type of value he/she had entered previously and represent only one test scenario. or may be some characters or a combination of character and numbers in any order. Once programmer fixes the bug. Tester logs this bug to the programmer and now is waiting for the fix. Now. it sends it across to the tester so as to get it tested. tester tries to check if there is any other value from this set (0 to 100). he/she also tries to think of all possible scenarios where the software may fail and a bug can be revealed. even though disliked by many. lets consider that a tester finds a bug related to an input text field on a form. Who Does Exploratory Testing? Any software tester knowingly or unknowingly does it! While testing. tester runs a test case with the same scenario replication in which the bug had occurred previously. it helps in improving our productivity in terms of covering the scenarios in scripted testing and those which are not scripted as well. If tester finds that the bug is fixed. During this process. He/she may try to enter values from 0 to 100. This testing is called exploratory testing. Why do we need exploratory testing? • • • • At times. Exploratory Testing is a learn and work type of testing activity where a tester can at least learn more and understand the software if at all he/she was not able to reveal any potential bug. which had revealed the bug. which it fails to and accepts the number 100. as the tester tried to explore and find out the possibility of Page 9 . he/she again tries to find out if the fix can handle any such same type of scenario with different inputs. helps testers in learning new methods. which can cause the application to fail. which is very hard to find out through normal testing. if a tester comes across a bug. Tester now will try to test the bug with same input value (100: as he/she had found that this condition causes application to fail) in the field. As exploratory testing covers almost all the normal type of testing. If application rejects the number (100) entered by the tester.Software Testing 2010 understand the software and appreciate its features. exploratory testing helps in revealing many unknown and undetected bugs. Along with registering the bug. test strategies. along with the above given test input value. and also think out of the box and attain more and more creativity. where the field is supposed to accept any digit other than the digits from 1 to 100.

what can help me in getting well versed with all the relevant terminologies of testing field? -.I am asked to test an application. hence tester can be sure of covering various scenarios once exploratory testing is performed at the highest level (i. Exploratory testing covers almost all type of testing. 2010 What qualities I need to posses to be able to perform an Exploratory Testing? As I mentioned above. more test cases you will be able write and execute simultaneously. As in case of exploratory testing.How To Go About For Beginners This article is dedicated to those people who are new to the testing field.I am new to Testing field and I do not know anything about it. understand the software. we write and execute the test cases simultaneously. more you can think of ways to explore.I hear about terminologies but cannot relate them logically. hence covering the most important part of requirement understanding. if the exploratory testing performed can ensure that all the possible scenarios and test cases are covered). but I don’t know requirements how do I go about it? -. The only limit to the extent to which you can perform exploratory testing is your imagination and creativity. which are normally ignored (or hard to find) by other testing strategies. It helps in collecting result oriented test scripts and shading of load of unnecessary test cases which do not yield and result. Also it should be my last simplified article for Software Testing beginners before I start writing articles with increasing complexity.What should I do to become a good and a complete tester? Page 10 . and do not know anything about the same. It helps testers in learning new strategies. Exploratory testing helps tester in confirming that he/she understands the application and its functionality properly and has no confusion about the working of even a smallest part of it. will I be able to secure a good future and survive in this field? -. expand the horizon of their imagination that helps them in understanding & executing more and more test cases and finally improve their productivity. Software Testing . any software tester can perform exploratory testing.Software Testing revealing a bug by using any possible way.e. Many people approached me for help with likes of the following questions: -. Advantages of Exploratory Testing • • • • • Exploratory testing can uncover bugs.

My advice to the new testers with non-computer background would be to read something about computers and relevant terminologies. At this point. you just have to go through the basics and not the entire course). incremental-integration model etc. Even though most of the definitions/terminologies are very simple and quite easy to understand. Reading computer science basics can help them.Is it necessary for me to learn software testing automation tools? I will try to address each and every question (and also all the other similar type of questions asked by my readers over the period of time) with the help of following scenarios and hope that it will help my readers. what is a program? What does it mean by execution? What are the different languages? Etc. you should understand what is a bug/error and life-cycle of a bug (For this you can go through my articles "Software Testing – An Introduction". methodologies etc. you should start looking into various terminologies and definitions used in software testing field such as various types of testing. As you finish it. you should try to create a small definition directory. which will be handy for you anytime you wish to go through. where and what should I begin with? This seemingly stupid question is actually a very valid query. They should try to understand various terms used in Software Engineering and programming domain. you gain enough momentum and understanding which helps you in dealing with any new terminology in the computer world.Software Testing 2010 -. you should also take an overview of various development methodologies used in the software development field such as WaterFall model. As soon as you are done with the above specified things. It indeed can be very hard for any new person to understand the terminologies if that person is entering the IT field for the very first time. as many of the testers are from the non-computer background. How should I test a system without knowing requirements? Recently many people asked me the same question … and truly speaking my answer to this question is "YOU SHOULD NOT TAKE A CHANCE TO TEST SYSTEM Page 11 . (Please note that the Computer Science and Software Engineering field is very vast. I am totally new to this field. After you finish your first step. spiral model. testing strategies. you will have enough knowledge to be able to take a plunge in the vast field of Software Testing. "Software Testing – Bug Life Cycles" and "Software Testing – Bug And Statuses Used During A Bug Life Cycle"). Once you start understanding. "Software Testing – Contents of a Bug".

But then you will have to use only monkey testing. Anyone can test a system. if you really want to test a system and no matter what are the requirements. This way whatever you come across. So please. And if someone makes you test the system without specifying you the actual requirements. And I can assure you that there will be deep penetration of automation tools and their uses. you surely will say that the submit button is a mistake of developer and it should not be there (even when logically we know there WILL be a submit button on the login form) and hence you will count it as a bug. its just like searching for something in this world and you don’t know what you are exactly expected to look for and identify. you can report it. 2010 If you are testing a system without knowing the requirements. depth of thinking and be creative. What should I do to become a good and complete tester? You should try to expand the horizon of your knowledge. and mark my words … EVERYONE WILL DO THE SAME THING AT FIRST. you can try to search for more bugs in the system. then almost everything you see in the system will seem to be a bug for an example if the requirement says that there should be a submit button on the login form but as the requirement has not been specified. So the more you know about automation tools the better chances you stand to mark your presence in the Page 12 . And we have to admit that it surely can be your mistake. Try to learn new trick which will help you stand in the crowd. you will think that it’s the same thing that you have been searching entire world for. giving the best result. your understanding of any subject. Then what’s the difference in that normal person and you as a tester (or say GOOD Tester)? Here you can distinguish yourself from others. then you surely can go ahead and do so. The reason for this is again the same … you don’t know anything about the system! So whatever you LOGICALLY think can be a potential bug in the system.Software Testing WITHOUT KNOWING REQUIREMENTS". even if a normal person brings a Television at his house he can find out a normal defect that like defective power cable by trying to turn the Television On. do not think of testing a system without getting proper requirements. Is it necessary for a Tester to learn Automation Tools? Software testing in India is growing very fast. Develop your own understanding and techniques of how you should test the system so that you can find more and more bugs. If someone has asked you to test a system without giving you the proper requirements. then you should start yelling at each and everything that happens in the system saying it is a bug … the reason is simple … you don’t know what should be there in the system and what should not! On other hand.

step by step actions to be done while testing and the input data that is to be supplied for testing. Results data consist of information about expected results and the actual results.Software Testing industry over others. activities to be done after test case is performed. Software Testing . Designing Test Cases Page 13 . if your work demands you to understand and use an automation tool then in that case you will have to surely learn it. test case creator. Information Information consists of general information about the test case. name of the test case. Some software development methodologies like Rational Unified Process (RUP) recommend creating at least two test cases for each requirement or objective. test case version. What is a Test Case? A test case is a set of conditions or variables and inputs that are developed for a particular goal or objective to be achieved on a certain application to judge its capabilities or features. It might take more than one test case to determine the true functionality of the application being tested. activities to be done at test case initialization. Information incorporates Identifier. Results Results are outcomes of a performed test case. Test Case Structure A formal written test case comprises of three parts 1. 3. 2. one for performing testing through positive perspective and the other through negative perspective.. how they are designed and why they are so important to the entire testing scenario. Activity contains information about the test case environment. read through to know more. Activity Activity consists of the actual test case activities.Test Cases What are test cases in software testing. purpose or brief description and test case dependencies. Every requirement or objective to be achieved needs at least one test case. 2010 It also depends on the type of project you are working in.

which were circulated to everyone associated with the software project (developers and testers). It is very important for you to decide between the two extremes and judge on what would work the best for you. the Bug ID that is generated for the Page 14 . As a tester tests an application and if he/she finds any defect. previously manually created documents were used.Software Testing 2010 Test cases should be designed and written by someone who understands the function or technology being tested. Some follow a general step way approach while others may opt for a more detailed and complex approach. Designing proper test cases is very vital for your software testing plans as a lot of bugs. the life cycle of the defect starts and it becomes very important to communicate the defect to the developers in order to get it fixed. but they are worth giving time because they can really avoid unnecessary retesting or debugging or at least lower it. ambiguities. inconsistencies and slip ups can be recovered in time as also it helps in saving your time on continuous debugging and re-testing test cases. The tester can choose to first report a bug and then fail the test case in the bug-reporting tool or fail a test case and report a bug. As we already have discussed importance of Software Testing in any software development project (Just to summarize: Software testing helps in improving quality of software and deliver a cost effective solution which meet customer requirements). now a days many Bug Reporting Tools are available. Organizations can take the test cases approach in their own context and according to their own perspectives. If any test case fails during execution. keep track of current status of the defect. track the defect. A test case should include the following information • • • • • Purpose of the test Software requirements and Hardware requirements (if any) Specific setup or configuration requirements Description on how to perform the test(s) Expected results or success criteria for the test Designing test cases can be time consuming in a testing schedule. In any case. which help in tracking and managing bugs in an effective way. it needs to be failed in the bugreporting tool and a bug has to be reported/logged for the same. it becomes necessary to log a defect in a proper way. and keep a log of defects for future reference etc. How to report a bug? It’s a good practice to take screen shots of execution of every step during software testing. For this purpose. find out if any such defect (similar defect) was ever found in last attempts of testing etc.

Contents of a Bug Page 15 . which goes on changing as the bug fixing process progresses. After reporting a bug. Date Detected. Detected in Version. The screen-shots taken at the time of execution of test case are attached to the bug for reference by the developer. (Please Note: The above given procedure of reporting a bug is general and not based on any particular project. then in that case. And if there is no such bug reported previously. Test Lead. Summary. Most of the times. then the test case has to be blocked with the previously raised bug (in this case. This file containing test case and the screen shots taken are sent to the developers for reference. may change as par the software testing project and company requirements. which is then associated with the failed test case. As the tracking process is not automated. it becomes very important for the tester to find out if any bug has been reported for similar type of defect. If no bug-reporting tool is used.) are filled and detailed description of the bug is given along with the expected and actual results. it is assigned a status of ‘New’. the tester can report a new bug and fail the test case for the newly raised bug. Severity. Test Step Description. Priority and Bug ID etc. This Bug ID helps in associating the bug with the failed test case. In such situation. the bug reporting procedures. the test case is written in a tabular manner in a file with four columns containing Test Step No.) Software Testing . it becomes important keep updated information of the bug that was raised till the time it is closed. The expected and actual results are written for each step and the test case is failed for the step at which the test case fails.Software Testing reported bug should be attached to the test case that is failed. 2010 At the time of reporting a bug. Closed in Version. Actual Date of Closure. it becomes a possibility that some other tester might already have reported a bug for the same defect found in the application. values used for the various fields used at the time of reporting a bug and bug tracking system etc. If more than one tester are testing the software application. Description. a unique Bug ID is generated by the bug-reporting tool. If yes. Detected By. Assigned To. all the mandatory fields from the contents of bug (such as Project. Expected Date of Closure. the test case has to be executed once the bug is fixed). Expected Result and Actual Result. Status. After the bug is reported.

Actual Date of Closure: As the name suggests. At the end of the summary. Generally this field contains the name of developer group leader. who then delegates the task to member of his team. and changes the name accordingly. Detected in Version: This field contains the version information of the software application in which the bug was detected. Detected By: Name of the tester who detected/reported the bug. This generally starts with the project identifier number/string. he/she needs to report a bug and enter certain fields. This depends on the severity of the bug. Summary: This field contains some keyword information about the bug. Page 16 . This generally includes the steps that are involved in the test case and the actual results.e. Subject: Description of the bug in short which will help in identifying the bug. This string should be clear enough to help the reader in anticipate the problem/defect for which the bug has been reported. Expected Date of Closure: Date at which the bug is expected to be closed. the step at which the test case fails is described along with the actual result obtained and expected result. actual date of closure of the bug i. Test Lead: Name of leader of testing team. Closed in Version: This field contains the version information of the software application in which the bug was fixed.Software Testing 2010 Complete list of contents of a bug/error/defect that are needed at the time of raising a bug during software testing. The contents of a bug are as given below: Project: Name of the project under which the testing is being carried out. Description: Detailed description of the bug. When a tester finds a defect. Assigned To: Name of the developer who is supposed to fix the bug. These fields help in identifying a bug uniquely. Date Detected: Date at which the bug was detected and reported. under whom the tester reports the bug. which helps in uniquely identifying the bug reported by the tester. date at which the bug was fixed and retested successfully. which can help in minimizing the number of records to be searched.

(Right from the first time any bug is detected till the point when the bug is fixed and closed. Deferred.) Software Testing . Urgent are the type of severity that are used.Software Testing 2010 Priority: Priority of the bug fixing. which identifies the bug uniquely. Severity: This is typically a numerical field. and Closed. For more information about various statuses used for a bug Page 17 . rejected. A status of ‘New’ is automatically assigned to a bug when it is first time reported by the tester. it is assigned various statuses which are New. Test Case Failed: This field contains the test case that is failed for the bug. Bug ID: This is a unique ID i. Any of above given fields can be made mandatory. Low. postponed or deferred is called as ‘Bug/Error Life Cycle’. It can range from 1 to 5. number created for the bug at the time of reporting. Postpone.Bug Life Cycles Various life cycles that a bug passes through during a software testing process. Rejected. Pending Retest. (Please Note: All the contents enlisted above are generally present for any bug reported in a bug-reporting tool. as per the progress of bug fixing process. Open. further the status is changed to Assigned. Postponed. Deferred etc. Pending Reject. Pending Retest. This specifically depends upon the functionality that it is hindering. which displays the severity of the bug. where 1 is high severity and 5 is the lowest. High. Generally Medium. Open. In some cases (for the customized bug-reporting tools) the number of fields and their meaning may change as per the company requirements. Reject. Closed. Retest.e. Retest. Attachment: Sometimes it is necessary to attach screen-shots for the tested functionality that can help tester in explaining the testing he had done and it also helps developers in re-creating the similar testing condition. in which the tester has to enter a valid data at the time of reporting a bug. What is a Bug Life Cycle? The duration or time span between the first time bug is found (‘New’) and closed successfully (status: ‘Closed’). Making a field mandatory or optional depends on the company requirements and can take place at any point of time in a Software Testing project. Status: This field displays current status of the bug. Pending Reject.

3) The bug is verified and reported to development team with status as ‘New’. And the bug is passed back to the Page 18 . 2) The Test lead verifies if the bug is valid or not. 4) The development leader and team verify if it is a valid bug. 4) The development leader and team verify if it is a valid bug. The bug is valid and the development leader assigns a developer to it marking the status as ‘Assigned’. 6) The development leader changes the status of the bug to ‘Pending Retest’ and passes on to the testing team for retest. 2) The Test lead verifies if the bug is valid or not. 7) The test leader changes the status of the bug to ‘Retest’ and passes it to a tester for retest. 5) The developer solves the problem and marks the bug as ‘Fixed’ and passes it back to the Development leader. so the tester after confirmation from test leader reopens the bug and marks it with ‘Reopen’ status.Software Testing 2010 during a bug life cycle. 3) The bug is verified and reported to development team with status as ‘New’. 8) The tester retests the bug and it is working fine. you can refer to article ‘Software Testing – Bug & Statuses Used During A Bug Life Cycle’) There are seven different life cycles that a bug can passes through: < I > Cycle I: 1) A tester finds a bug and reports it to Test Lead. 4) The development leader and team verify if it is a valid bug. 3) The bug is verified and reported to development team with status as ‘New’. 6) The development leader changes the status of the bug to ‘Pending Retest’ and passes on to the testing team for retest. 5) After getting a satisfactory reply from the development side. 2) The Test lead verifies if the bug is valid or not. The bug is invalid and is marked with a status of ‘Pending Reject’ before passing it back to the testing team. 7) The test leader changes the status of the bug to ‘Retest’ and passes it to a tester for retest. the test leader marks the bug as ‘Rejected’. 3) Test lead finds that the bug is not valid and the bug is ‘Rejected’. < III > Cycle III: 1) A tester finds a bug and reports it to Test Lead. 8) The tester retests the bug and the same problem persists. The bug is valid and the development leader assigns a developer to it marking the status as ‘Assigned’. < IV > Cycle IV: 1) A tester finds a bug and reports it to Test Lead. 2) The Test lead verifies if the bug is valid or not. 5) The developer solves the problem and marks the bug as ‘Fixed’ and passes it back to the Development leader. < II > Cycle II: 1) A tester finds a bug and reports it to Test Lead. so the tester closes the bug and marks it as ‘Closed’.

A project may have undergone several alterations. < VII > Cycle VII: 1) If the bug does not stand importance and can be/needed to be postponed. timely delivery pressures. 2010 < V > Cycle V: 1) A tester finds a bug and reports it to Test Lead. 2) The Test lead verifies if the bug is valid or not. The IT industry may be flooded with a Page 19 . all can contribute for flawed software. A project may have undergone several alterations. Software testing company has a wide area to work on. defecting software coding. while its way to deployment. Starting form miscommunication. 4) The developer tries to verify if the bug is valid but fails in replicate the same scenario as was at the time of testing. and the ever changing requirements. 5) The tester also fails to re-generate the scenario in which the bug was found. in time. but fails in that and asks for help from testing team. And developer rejects the bug marking it ‘Rejected’. the solution and retest of the bug is postponed for indefinite time and it is marked as ‘Postponed’. Software testing company analysis the difficulties keeping in view that each project developed is unique. what counts is the defects should be fixed before the customer makes use of it. 3) The bug is verified and reported to development team with status as ‘New’.Software Testing development team for fixing. Software testing helps to find out the deviations of software developed from the result expected. The quality analyst engineers assure that the software testing reveals appropriate results with respect to what the software was intended for ? A software testing company works to deliver quality assured software applications – be it big or small project. Rejected. It helps in deploying error free software. Bugs get incorporated due to many factors. Software testing is all about caring for software quality. while its way to deployment. Deferred or Postponed. Software testing company analysis the difficulties keeping in view that each project developed is unique. How IT Company Makes Software Testing a Walk Through ? A software testing company works to deliver quality assured software applications – be it big or small project. use of software development tools. then it is given a status as ‘Deferred’. any bug that is found ends up with a status of Closed. < VI > Cycle VI: 1) After confirmation that the data is unavailable or certain functionality is unavailable. No matter what the case may be. This way.

load testing. software testing always trails back to back. For each project. A reliable software testing company realizes the need for validating the software product not just once. performance testing. software testing plays very important part & put forward all the bugs and mistakes in the developed software. unit testing. the software testing is different. Monitoring and reporting the project of software testing is handled with utmost diligence. stress testing. The head quality analyst (project manager) of software testing company is responsible for project planning and scheduling it. So for the success of your developed software these errors or bugs need to be rectified & here software testing plays an important role in maintaining the quality guidelines for the software. Updating it self as per the market demand and following the best standards for software testing which can keep them ahead and give them corporate identity. Each factor looked on with minute details prove worth in delivering a quality software output after software testing services. to the max. white box testing. most of the testing companies run on these tested and proven methods. It's the responsibility of software testing company to be ahead in technology and provide you with the cutting edge solution and bug free product. but also repeated validation for each new release of the software product or website. not to mention the wide diversity found in their baptism scheme. integration testing. Software testing has positive impacts on quality software. it's always notable that its integral part. For completion of software development life cycle. black box testing. Software testing company follows the bug testing processes. This depends on the size.Software Testing 2010 variety of software testing services. There is compatibility testing. Software testing checks the effectiveness of the program and evaluates its output as per the requirement. functional testing. They ensure to comply with the quality system with regards to software validation. A reputed software testing company follows specific guidelines in accordance to the client’s requirements. So a great testing company Page 20 . Considering the two common methods of testing as MANUAL TESTING and AUTOMATED TESTING. scope and usability of the project. These Testing methods are further divided into sub categories as System testing. It helps clients business and makes the software developed more usable and more user-friendly. functional testing. and unit testing among a few to mention. Software Testing Company Is software testing company really important for your software? When we are talking about software development. regression testing. incremental integration testing and the requirements depends on client needs and kind of bugs they are having in there projects. end to end testing.

Incremental integration testing. Black box testing. End-to-end testing. they further branch out in various types of testing standards like the White box testing. Along with the modifications and changes in the technologies there is tremendous pressure on the software development companies to render the best and faultless services. Functional testing. All software testing companies in and across India follow two methods of Software Testing. To survive and make one’s corporate identity its essential for all the Software development companies to go through the process of software testing and follow the latest trends and methods Page 21 . 2010 With the beginning of your project software testing phases begins. which in the technical words are called the "bugs" the software development is not considered to be complete. Software Development Life Cycle is the set of all the technical procedures required in the development of software. Integration testing. with the software development life cycle testing goes along with it on various stages. Hence. System testing. Without rectifying theses errors. Software development is an industrious mission that is incomplete and trivial without Software Testing as this has a major significance in the Software Development Life Cycle. A Company which can understand the importance of your project deadlines & meet your expectations.e. etc. A Closer View at the Software Testing Company and its importance in SDLC… Software testing company plays a vital role in the software development as it ensures the accuracy and the totality of the software developed by a software development company. Testing at client place and at your end as BETA & ALPHA TESTING is done to provide the bug free product to your consumers.depending on the given set of requirements and cases. Software testing is the most important functionality in the Software Development life Cycle as it exhibits all the mistakes and errors in the developed software. manual testing and automated testing. The software testing companies in India take up this responsibility to provide an error less software development to all its customers in a predetermined frame of time and as well be cost effective. Software testing is an important parameter for the assured quality of the product. Software testing company evaluates the quality and checks the potency of the program for the required output.Software Testing can keep you ahead and provide you with quality results. So it's always advisable to go for the professional software testing company which goes with the process and identifies the bugs making your product error free. Unit testing. Though when any of these methods are used by the Software Testing Companies. i.

To know more about Software Development Company. Page 22 . The other phase that appears in an offshore Software Testing by the clients as and when they visit or use the software designed and developed carries on Beta testing. Today we will try to set a baseline that should help any software tester in day to day activities. I would like to make a note that the following checklists are defined in most generic form and do not promise to cover all processes that you are be required to go through and follow during your work. where all the software developers and programmers examine all the aspects of the data provided by the clients and dig out all the flaws and issues. They also provide ideas and views to enhance the quality of the A Closer View at the Software Testing Company Software testing company plays a vital role in the software development as it ensures the accuracy and the totality of the software developed by a software development company. The process of Software testing starts from the beginning of the project. Software Testing companies have to take all the desired measures and make use of all the latest techniques to perform this task. There may be some processes which are completely missed out from the lists or it may also contain processes which you don’t need to follow in your form of work. at this point of time offshore software testing companies come in the scenario. 2010 An efficient Software Testing is not only displaying the errors and rectifying them but also underlining the requirements of the customer throughout the product cycle. As it is very important to be sure that it does not only works but the functionality also meets the requirement of the customers.Search engine optimization Software Testing Company visit: www.Software Testing of Software testing to get quality results more rapidly. completeness and compatibility of the software and find all the missing links in the products. content writing and articles writing for Software regarding category.Check Lists For Software Tester During past few days. Testing services. Deepraj Srivastava works to help all those who want information about the Multimedia development services. Software Testing . 2D/3D animation. Offshore software testing companies’ confirm the correctness. However not all the companies may be well equipped with the in-house testing professionals. Software testing companies also need to introduce information that is new to project community so as to keep them much aware of the standards and parameters followed by these companies. many people requested to post a checklist that a software tester can follow while testing. Its always advisable for the software to go through these phases as the errors and mistakes can be recognized from both the ends and their rectifications can also be done simultaneously. e-commerce services . This phase of testing is known as alpha testing.

After you complete your days work. time and date found. its very important to keep track of the status of it as you will have to re-test the bug once it is fixed by a developer. After submitting defects attach the screen prints for the defect on Test Reporting Tool. Many test reporting tools require scripts to be executed in order to initiate the life cycle of a bug. Checks while logging defects • • • • • First of all. try to explain the procedure you followed. but you may come across practices where you will be assigned script based on your work load for the day or your skill to understand and execute it in least possible time. Sometimes.Software Testing 2010 First Things First • • Check the scripts assigned to you: This is the first and foremost process in the list. do not forget to update all the tracking sheets for the bug. If possible. do not forget to execute the script in the tool. The screen prints will help other testers and developers to understand how the test was executed and it will also serve as a proof for you. test code etc. a comment from developer might help in understanding the mistake committed by the tester. Follow the appropriate naming conventions while logging defects. general practice is to confirm if any fix to a bug is successful as it also makes it sure that the tester can proceed with other tests involving deeper side of that particular functionality. other test steps before failed test step are declared as passed. functionality. choice of data and your understanding etc. There is no specific logic used to assign scripts to testers who should execute them all. Take screen prints for the script executed using naming conventions and provide test data that you used for the testing. it is better to do a peer to peer review. confirm with your test lead if the defect is valid. get it reviewed by Work Lead/Team Lead. Update the tracking sheets with current status. Give appropriate description and names in the defect screen prints as per naming conventions. Page 23 . it also addresses issues related to understanding of functionality of the system for example: if a tester registered a defect. Most of the times. If your team is maintaining any type of tracking sheet. This step is very important and often helps in finding out missing steps/processes. For example Test Director needs script to be executed till the step where it the test script failed. severity etc. Then in that case. Before submitting the defect. If you are using a test reporting tool. if it is required to be updated after you execute the script in the reporting tool. Check if you have executed all the scripts properly and updated the test reporting tool. Checks while executing scrips: • • • • • • • • Update the test data sheet with all values which are required such as user name. Check the status/comments of the defect in the Test Report Tool: Once you unveil a bug. which is not an actual bug as per the programming/business logic. Use naming conventions defined as testing standards to define a bug appropriately. it’s status. status in reporting tools etc.

Why Do We Need Usability Testing? Usability testing is carried out in order to find out if there is any change needs to be carried out in the developed system (may it be design or any specific procedural or programmatic change) in order to make it more and more user friendly so that the intended/end user who is ultimately going to buy and use it receives the system which he can understand and use it with utmost ease. defect tracking sheet. usability means how better something can be used over the purpose it has been created for. send an update mail to your Team Lead/Work Lead which should include the following: • • • • Scripts executed (Number) Defects raised/closed (Number) If any comments added on defects Issues/queries if any Software Testing . then unblock all scripts/defects blocked by it. for a backup. there is no way you can execute any test script which requires the account screen that comes after the login screen. Page 24 . At the end of day. moderate or hard) to interact with and use the system keeping its purpose in mind. which is blocking the execution of the script or testing of the defect. For example if there is a bug on login screen. • • • • Confirm with your test lead/work lead if the scripts are really blocked due to an existing bug. which is not allowing anyone enter the account after entering valid username and password and pressing OK button. Usability testing means a way to measure how people (intended/end user) find it (easy. Maintain a defect log.An Introduction To Usability Testing Success of any newly designed and developed software strongly and mainly depends on what extent the software meets the requirements stated by user and how the intended/end user finds the software to operate? Usability Testing: As the term suggest. Block scripts with an active defect (Defect status: New/Assigned/Fixed/Reopen) Update the current script/defect in test reporting tool and tracking sheets with the defect number/unique identifier. screen prints dump folder etc. It is a standard statement that "Usability testing measures the usability of the system". Checks for blocking and unblocking scripts Blocking or unblocking of a script relates to a bug which affects execution of a script.Software Testing • • 2010 Note down the defect number/unique identifier and update the test tracking sheet with appropriate information. If a defect is retested successfully.

a setup is required in which developer and testers try to replicate situations as realistic as possible to project the real time usage of the system. system integration testing.Software Testing 2010 Any changes suggested by the tester at the time of usability testing. Developer often try to make the system as good looking as possible and also tries to fit the required functionality. where developer can find and fix all possible loop holes. In simple words. Developer/designer of the system need to incorporate the feedbacks (here feedback can be a very simple change in look and feel or any complex change in the logic and functionality of the system) of usability testing into the design and developed code of the system (the word system may be a single object or an entire package consisting more than one objects) in order to make system more and more presentable to the intended/end user. as mentioned above is an in-house dummy release before the actual release of the system to the intended/end user. Hence. Please note that. User is also asked for his/her feedback based on what he/she thinks should be changed to improve the user interaction between the system and the end user. in this type of testing also. usability testing is an in-house dummy-release of the system before the actual release to the end users. Advantages of Usability Testing Page 25 . Any of the models can be used to perform the test. and also based on the behavior of the system and how easy/hard it is for the user to operate/use the system. The outcome/feedback is noted down based on observations of how the user is using the system and what are all the possible ways that also may come into picture. Developer also gets to know the areas that are error prone and the area of improvement. unit testing etc. The testers try to use the system in exactly the same manner that any end user can/will do. many people have formulated various measures and models for performing usability testing. How Usability Test Is Carried Out? Usability test. Usability testing helps developer in studying the practical situations where the system will be used in real time. all the standard instruction of testing are followed to make it sure that the testing is done in all the directions such as functional testing. in this endeavor he may have forgotten some error prone conditions which are uncovered only when the end user is using the system in real time. are the most crucial points that can change the stand of the system in intended/end user’s view. Usability testing measures various aspects such as: How much time the tester/user and system took to complete basic flow? How much time people take to understand the system (per object) and how many mistakes they make while performing any process/flow of operation? How fast the user becomes familiar with the system and how fast he/she can recall the system’s functions? And the most important: how people feel when they are using the system? Over the time period.

People involved in the usability testing are required to possess skills like patience. This is beneficial to the organization almost in all aspects (financially. Usability testing can be very economical if planned properly. system integration testing. This may result in better performance and a standard system. Need of Security Testing • • • • Security test helps in finding out loopholes that can cause loss of important information and allow any intruder enter into the systems. Security Testing doesn’t only include conformance of resistance of the systems your organization uses.Brief Introduction To Security Testing Security testing is an important process in order to ensure that the systems/applications that your organization is using meet security policies and are free from any type of loopholes that can cause your organization a big loss. unit testing. yet highly effective and beneficial. Security Testing helps in improving the current system and also helps in ensuring that the system will work for longer time (or it will work without hassles for the estimated time). security and even efforts point of view). Usability testing can help in uncovering potential bugs and potholes in the system which generally are not visible to developers and even escape the other type of testing. smoke testing etc. which might result into loss/theft of highly sensitive information or destruction of the system by an intruder/outsider. Hence adding up to the organization-wide security. Software Testing . usability test can help in fixing all the problems that user may face even before the system is finally released to the user. Security Testing of any developed system (or a system under development) is all about finding out all the potential loopholes and weaknesses of the system.Software Testing 2010 • • • • Usability test can be modified to cover many other types of testing such as functional testing. (with keeping the main objective of usability testing in mind) in order to make it sure that testing is done in all the possible directions. security testing can help in eliminating the flaws into design and implementation of the system and in turn help the organization in blocking the potential security loopholes in the earlier stage. If involved right from the first phase of system development life cycle. Usability testing is a very wide area of testing and it needs fairly high level of understanding of this field along with creative mind. If proper resources (experienced and creative testers) are used. openness to welcome any idea. Who need Security Testing? Page 26 . and the most important of them all is that they should have good observation skills to spot and fix the problems on fly. Security Testing helps in finding out all the possible vulnerabilities of the system and help developers in fixing those problems. it also ensures that people in your organization understand and obey security policies. ability to listen to the suggestions.

Ethical Hacking: It’s a forced intrusion of an external element into the system & applications that are under Security Testing. Posture Assessment & Security Testing: This is a combination of Security Scanning. Penetration Testing: In this type of testing. applications and network(s). Ethical hacking involves number of penetration tests over the wide network on the system under test. hence contributing towards the security conformance. Any organization small or big in size. It helps in finding out and preparing possible backup-plan for any type of potential risk. This scanning is generally done through various vulnerability scanning software. What are the different types of Security Testing? Following are the main types of security testing: • • • • • • • Security Auditing: Security Auditing includes direct inspection of the application developed and Operating Systems & any system on which it is being developed. Vulnerability Scanning: Vulnerability scanning involves scanning of the application for all known vulnerabilities. The information that is stored in these storage devices and the applications that run on the computers are highly important to the organization from the business.Software Testing 2010 Now a day. a tester tries to forcibly access and enter the application under test. Security Scanning: It is all about scanning and verification of the system and applications. Penetration test is highly important as it is the most effective way to practically find out potential loopholes in the application. Risk Assessment and Ethical Hacking in order to reach a conclusive point and help your organization know its stand in context with Security. This also involves code walk-through. During security scanning. security and survival point of view. Security testing ensures that the systems and applications used by the organizations are secure and not vulnerable to any type of attack. Risk assessment is carried out in the form of various interviews. auditors inspect and try to find out the weaknesses in the OS. almost all organizations across the world are equipped with hundreds of computers connected to each other through intranets and various types of LANs inside the organization itself and through Internet with the outer world and are also equipped with data storage & handling devices. Risk Assessment: Risk assessment is a method of analyzing and deciding the risk that depends upon the type of loss and the possibility/probability of loss occurrence. need to secure the information it possesses and the applications it uses in order to protect its customer’s information safe and suppress any possible loss of its business. In the penetration testing. (Please Note: The above given list of security types is based on the Open Source Security Testing Methodology Manual of Pete Herzog and the Institute for Security Page 27 . discussions and analysis of the same. a tester may try to enter into the application/system with the help of some other application or with the help of combinations of loopholes that the application has kept open unknowingly.

testing has become one of the most important parts of software development process.ISECOM) 2010 The best way to ensure security is to involve the security related assessments. good and problem free software solution. In other words.An Introduction! For past couple of years. while making food. audits and various types of testing right from the first phase of system development. you fail in your project and probably you may loose your client. can ruin your evening (This is what called 'TESTING'). It is necessary to test software in order to develop and deliver a good. What is testing? Software Testing can be defined as: Testing is an activity that helps in finding out bugs/defects/errors in a software system under development. you make few very very very delicious dishes (off-course. you can consider an example as: suppose you are a good cook and are expecting some guests at dinner. Why we go for testing? Well. reliable and bug free software solution. But this isn't the case with Software Project Development. And finally. condition and type of system under testing. in order to provide a bug free and reliable system/solution to the customer. which if is not in balance. If you fail to deliver a reliable. you ask someone (or you yourself) to check if everything is fine and there is no extra salt/chili/anything. This procedure you follow in order to make it sure that you do not serve your guests something that is not tasty! Otherwise your collar will go down and you will regret over your failure! 2. when you are about to finish making the dishes. Software Testing . 1. those which you already know how to make). people might understand and eat the things you made and may well appreciate your work. This can get even worse! Page 28 . The level and form of processes used in security testing of any system varies depending upon the phase. its ok to have something extra. You start making dinner.Software Testing and Open Methodologies .

You check out if there is any problem. Why there is need of testing? OR Why there is a need of 'independent/separate testing'? This is a right question because. prior to the concept of TESTING software as a ‘Testing Project’. When you develop something. which can make software unusable by the client. Your client will be happy if your system works without any problem and will generate more revenues for you. any error in the system. you hardly feel that there can be something wrong with what you have developed. It's a common trait of human nature. there are 99% chances that checker/observer will find some problem with the system (even if the problem is with some spelling that by mistake has been written in wrong way. its a fact that. it’s beneficial for yourself. 3. if you could minimize the problems with the system you developed. which never aroused while development of the system.Software Testing 2010 So in order to make it sure. you go for TESTING. it's really great. this thing has been used for the benefit of software projects (or you may say. So the hidden bugs or errors or problems of the system remain hidden and they raise their head when the system goes into production. you give it to get checked (TEST) and to find out any problem. but the developer(s) did that at the time of development.). You make software testers test the system and help in finding out the bugs in the system to fix them on time. the testing process existed. BINGO. we feel that there is no problem in our designed system as we have developed it and it is perfectly functional and fully working. On the other hand. You find out the problems and fix them and again try to find out all the potential problems. any type of project). isn't it? But that’s a truth! Even though its wrong in terms of human behavior. But you must know the fact that. What is the role of "a tester"? Page 29 . isn't it? That's why we need testing! 4. Really weird. Because. when one person starts checking something which is made by some other person. that you provide your client a proper software solution. after all. if you make something.

An Introduction An introduction to ‘Verification & Validation Model’ used in improvement of software project development life cycle. Software Verification & Validation Model . the better tester he/she is! Software Verification & Validation Model . A tester plays an important part in finding out the problems with system and helps in improving its quality.Software Testing 2010 A tester is a person who tries to find out all possible errors/bugs in the system with the help of various inputs to it. ‘Software Verification & Validation’ is one such model. Page 30 . The more number of VALID BUGS tester finds out.An Introduction A perfect software product is built when every step is taken with full consideration that ‘A right product is developed in a right manner’. which helps the system designers and test engineers to confirm that a right product is build right way throughout the development process and improve the quality of the software product. If you could find all the bugs and fix them all. A tester has to understand the limits. your system becomes more and more reliable. which can make the system break and work abruptly.

in each phase of verification (every phase of Verification is a phase of the Testing Life Cycle) During the Verification. Verification is a process that makes it sure that the software product is developed the right way. audits. What is Verification? The standard definition of Verification goes like this: "Are we building the product RIGHT?" i. the work product (the ready part of the Software being developed and various documentations) is reviewed/examined personally by one ore more persons in order to find and point out the defects in it.Software Testing 2010 ‘Verification & Validation Model’ makes it sure that. led by a leader. which incorporates Software inspections. reviews. which may cause in failure of the project. an analysis is done to ensure that all required specifications are met. Walkthroughs: Walkthrough can be considered same as inspection without formal preparation (of any presentation or documentations). This reduces the risk associated with any software project up to certain level by helping in detection and correction of errors and mistakes. which are unknowingly done during the development process. which formally reviews the documents and work product during various phases of the product development life cycle. Methods and techniques used in the Verification and Validation shall be designed carefully. as the product development goes through different stages. certain rules are followed at the time of development of a software product and also makes it sure that the product that is developed fulfills the required specifications. During the Page 31 . walkthroughs. This process helps in prevention of potential bugs. the planning of which starts right from the beginning of the development process. The Verification part of ‘Verification and Validation Model’ comes before Validation. The work product and related documents are presented in front of the inspection team.e. Few terms involved in Verification: Inspection: Inspection involves a team of about 3-6 people. buddy checks etc. the member of which carry different interpretations of the presentation. The bugs that are detected during the inspection are communicated to the next level in order to take care of them. The software should confirm to its predefined specifications.

Even when the walkthroughs can help in finding potential bugs. Functional design Verification etc. Functional design verification. All types of testing methods are basically carried out during the Validation process. it should satisfy all the functional requirements set by the user. to find out bugs which the author couldn’t find previously.) has its corresponding Validation activity (such as Functional Validation/Testing. Validation is done during or at the end of the development process in order to determine whether the product satisfies specified requirements. the presenter/author introduces the material to all the participants in order to make them familiar with it. internal/system design verification and code verification (these phases can also subdivided further). Functional Validation/Functional Testing. Each Verification activity (such as Requirement Specification Verification. Buddy Checks: This is the simplest type of review activity used to find out bugs in a work product during the verification. The software product should functionally do what it is supposed to. which are used during the various phases of Validation process. is verified! What is Validation? Validation is a process of finding out if the product being built is right? i. test suits and test cases are developed. Validation and Verification processes go hand in hand. design code etc. The activities involved in Verification process are: Requirement Specification verification. they are used for knowledge sharing or communication purpose. but visibly Validation process starts after Verification process ends (after coding of the product ends).e. Each activity makes it sure that the product is developed right way and every requirement. System/Integration Validation etc. it should do what the user expects it to do. Integration Validation/Integration Testing. Test plan. Code Validation/Testing.e. every specification. Page 32 . In buddy check. one person goes through the documents prepared by another person in order to find out if that person has made mistake(s) i. whatever the software product is being developed.).Software Testing 2010 walkthrough meeting. The phases involved in Validation process are: Code Validation/Testing. and System/User Acceptance Testing/Validation.

Code testing other than Unit Testing can be done by testers or developers. The product is validated to find out if it works according to the system specifications and satisfies all the user requirements. Functional testing does not deal with internal coding of the project. Making a success of software test automation Many attempts at software test automation fail because the groundwork is not carried out. User Acceptance Testing or System Validation: In this type of testing. in stead. it may happen that bugs that are yet undiscovered. This article lists five steps that are needed to succeed in this field. which the developers conduct in order to find out any bug in the code unit/module developed by them. which are not included here. the developed product is handed over to the user/paid testers in order to test it in real time scenario. That is particularly important today as more and more applications are written for use on the Web which is the most public of arenas. Functional Validation/Testing: This type of testing is carried out in order to find if the system meets the functional requirements. Integration Validation/Testing: Integration testing is carried out in order to find out if different (two or more) units/modules co-ordinate properly. which are communicated to the developers to be fixed. This helps in improvement of the final product. In this type of testing. As the user/paid testers use the software. This test helps in finding out if there is any defect in the interface between different modules. come up. the system is validated for its functional behavior.Software Testing 2010 Terms used in Validation process: Code Validation/Testing: Developers as well as testers do the code validation. Please Note: The above given Testing phases also include many subphases. Organisations are turning to automated testing tools more often than ever before to ensure that their applications are working properly prior to deployment. it checks if the system behaves as per the expectations. Page 33 . Unit Code Validation or Unit Testing is a type of testing.

configuration testing. automation is a daunting task.Use keyword approaches to enable not technical users to 'drive' the automation. Recognise that test automation is not automated software testing but computer-assisted testing. so that a simple change to data can spawn a whole new raft of tests -. data driven tests and internal monitoring & control Multiplying resources Platform testing. So how do you get quick wins with automation? This article aims to help you develop a test strategy for automation that fits your circumstances: 1.Generate re-usable components to maximize maintainability.Use a data driven approach. -. Recognise that Test Automation scripting is akin to development and programming When embarking on the use of scripted test tools the same practices used in software development apply. The Key to success with scripting is to: -. model based tests. playing to computer and human strengths and increasing management confidence in the product. preventing destabilization. Decide what your automated test goal is (and re-evaluate your test mission as it may change) Efficiency This can be one Test Automation Goal. however what other ways could computers help testing. automating regression tests or improving test coverage. 2. Service Tightening build schedules. file/database comparisons and analysing test results. Extended testing reach API based testing. For example: test data generation. reducing the time in the testing phase. component testing. Test automation may provide test execution elements.Software Testing 2010 But for many IT and quality assurance managers. where the key aspects may be reducing testing costs. This includes code standards and reviews. installations. Page 34 . model based tests and Data driven tests 3.

Decide on the right tools 2010 There are many automated testing tools that can aid testing from excel spreadsheets to Code analysers. ruby Open Source Test Tools: Wink. Allocate dedicated individuals time so they can provide real value. Rational Robot Unit Test Tools: nunit.Customer Acceptance Testing) and/or end users (UAT) themselves. Commercial GUI Regression Test tools: Mercury QTP. It also provides advice on conducting an acceptance test and the importance of starting early in development. plan to achieve small successes and grow. Decide who will perform the automation and use the tools It is critical to decide who is going to use/and or create the tools. Don't treat test automation as a part time project. Compuware TestPartner. but can still be automated using other tools such as command files or PC functionality. The key here is to find tools that are right for your environment. WATIR. SAP. htmlunit Existing Development tools: Visual Studio Team test. Winrunner. rth. ieunit. UNIX It is all too easy. jwebunit. The responsibility for acceptance testing may reside with the customer (CAT . Selenium. An Overview of Acceptance Testing An outline description of acceptance testing covering the purpose and objectives of this form of testing. Fiddler. There may also be some processes where it is more efficient to test manually. SwexplorerAutomation. You should not attempt to automate these. Acceptance Testing is traditionally seen as marking the change in a system’s ownership from the developers of the system to those that commissioned or will use the system. Java. TestCaseManager. perl.Software Testing 4. however to select an automation tool and be tempted to try to use it for the total automation of all applications. 5. web test What environment(s) do you wish to test? Web. junit. Page 35 .net. Client/Server. It is a distinct phase of testing prior to final sign-off and delivery of a system to the customers or business users. Some tasks do not lend themselves to the tool. . Overall when preparing a test automation strategy.

Implemented changes may invalidate testing that has been already conducted and require greater levels of regression testing to be carried out. Clear entry criteria may need to be put in place to ensure that the expectation of a system being ‘production ready’ has been met. Where faults are uncovered during acceptance. The cost of rework. it may be necessary to agree the correction of high severity/priority problems and to defer/timetable the correction of others before acceptance can occur. The expectation should be that the preceding stages of testing have identified and resolved software faults and that the system is ready for operational use. Ideally. completeness and outcome of previous test phases and to declare any known problems that remain prior to acceptance test commencing. ‘work-arounds’ should first be investigated before attempting to make changes to the software. The type of project or software under test may allow for parts/modules of the system that meet their acceptance criteria to be signed off in advance of others that don’t. Unlike the other test phases. an objective of acceptance testing is not to actively look for faults. it may repeat previously run test scenarios to provide confidence that preceding test phases have been completed as appropriate. the software under test should be considered as ‘frozen’ during the acceptance phase. to change software or system operation. or changed. acceptance should not seek to duplicate other test phases. As a testing phase with it’s own objectives. satisfies the specified requirements. agreement and/or deferral may need to be repeated until the point where the system is considered as acceptable. integration and systems testing) are those of defect identification and ensuring that each step in the process of building the software delivers working products (verification). Those involved in or responsible for acceptance should dictate the objectives and coverage of the test phase.Software Testing 2010 The primary objectives of preceding test phases (unit. This is an opportunity to review the effectiveness. In doing so they are likely to consider the following: • Have the acceptance test conditions been demonstrated? • Do the test conditions model realistic business scenarios? • Is there appropriate coverage of each business function? • Is there appropriate coverage of system reports and screens • Is there appropriate coverage of application menu options? • Are updated training materials and system documentation subject to test? It is important to minimise the number of changes taking place to the system during the acceptance test phase. review. However. meets customer/user expectations and is fit for business purpose (validation). For projects of this type acceptance can be an ongoing and evolving Page 36 . The objective of Acceptance Testing is to give confidence that the software being developed. at this stage of development is high. These steps of investigation. However.

Software Testing
process that allows earlier or the phased implementation of a system into production


In order to minimise the risk of software faults and system changes, acceptance should not just start at software delivery. It needs to be a function of the earliest design and development stages. Early involvement of users in the system requirements and design stages can minimise the risk of gaps and misinterpretations occurring in end system functionality. The benefits reaped at later stages can be the avoidance of re-work and the reduced cost of system delivery.

Why Software Development Teams Often Fail To Get It Right
Read the following sentence carefully; twice if you need to. Then make sure you don't fall off the chair laughing once you realize that this is often EXACTLY what the average client ends up trying to convey after they finish reading the first set of project specifications! Only the words are different. "I know you believe you understand what you think I said, but I'm not sure you realize that what you heard is not what I meant." And so it goes with the software development process. That's why all of the truly successful software development teams rely upon creating and presenting visual prototypes, including screen shots or screen mockups, in an effort to improve communications between all parties. And let's not put all of the blame on the client for failing to understand what was said during the requirements gathering process. The opportunity to "get it wrong" exists between team members, between the team and the actual users, and between the team and the project's major stakeholders. While we all agree that using visual prototypes represent the best opportunity for reducing project risk at the design phase, creating those visual prototypes can actually involve a level of effort that's nearly equal to the development phase, depending upon the size of the project and the number of screens involved. To make matters worse, many top-notch software development teams don't have system analysts on board. The task of developing the requirements often falls to the programmer who has the best communication skills and who is capable of making themselves understood by mere mortals who speak an entirely different language.

Page 37

Software Testing


But even those communication skills are not enough to ensure that what the client is asking for closely resembles what the development team is planning on building. And that brings us back to the subject of visual screen prototype tools. These tools have a lot in common with the fairy tale of Goldilocks and The Three Bears. Some of them are too hard to use. Some of them are too expensive to use, and some of them are too inflexible. It's hard to find the one that's "just right." But all of that may be about to change thanks to a new visual prototype tool called MockupScreens. And although it was designed BY a software development team FOR software development teams, you'd think it was designed by Goldilocks herself because they got it "just right." MockupScreens flattens the learning curve for creating visual prototypes. ANYONE can use this tool, and you don't have to know a thing about drawing. The level of effort required to build rich, robust and 100% actual depictions of the software is less than it takes to point and click your way through a basic PowerPoint presentation. But the results are far more spectacular, and much more realistic, because all of the users and team members see actual screens that look just as they will when they are actually created by the development team. If you already use a prototyping tool to deliver your screen, the chances are it falls into one of these categories: 1. It requires a great deal of input before it can create screens. 2. It's complicated to use and there are only one or two members of your development team that can make it perform properly. 3. It comes wrapped up in expensive annual licensing fees and support contracts that make you wince every time you renew. Or, worse, you're using some "draw" program to create your screens manually. If any of the above scenarioes sound familiar to you, then you really need to check out MockupScreens. Not only does the one-time license fee cost about the same as a week's worth of "Venti, no room" at Starbucks for your development team, but it's drop-dead easy to use as well. In fact, MockupScreens is the fastest, easiest and least expensive way to get all of the users and your development team nodding their heads at the same time and actually being confident that they are all agreeing to the same thing! Page 38

Software Testing


It's probably the best way to eliminate most all of the project risk that occurs at the specifications and design phase. The development teams that put MockupScreens together went out of their way to model the program after the simple process of manually sketching screens on paper. MockUpScreens works hard to avoid distracting users with unnecessary details by depicting all of the screens in black and white so users stay focused on important things and don't get distracted by colors and the like. But if you want to kick it up a notch, you can. MockupScreens gives you the capability to add comments, icons, questions and other elements right into the drawings. You can hide these elements from the users, and make them visible only to other development team members if you want to, or you can let it all hang out. It's your choice. You can even hold the room spellbound by having MockupScreens generate slide shows that will take the users through each screen exactly as they will appear when the system goes live. Because MockupScreens is so easy to use, you can make changes to the screens in response to user input, in real time, and continue right on with the meeting. Features like that are what raises your visibility and enhances your professional image in the eyes of the client. But as I mentioned already, probably the best part of using MockupScreens is that you don't have to be an artist to use it. Heck, you don't even have to be a programmer. All you do is boot up MockupScreens and it's all gravy from there. The keyboard shortcuts are intelligently designed and there's context-sensitive help wherever you need it (even though you probably never will need it). Additional options such as an automatic screen resizing feature that automatically adjusts the screen whenever new elements are added, free you up to focus on functionality and not design. Real-world tests with brand new MockUpScreens users consistently show that it's a snap to create as many as 5 screens in about 10 minutes! Try doing that with whatever it is you're using now. MockupScreens is going to make you and every member of your design team heros in the eyes of your clients. And if you don't believe me, download the eval version at Page 39

Estimates show nearly 90% of Fortune 100 companies. Their TestDirector program creates an uncomplicated way to execute and manage the testing process. Mercury is the global leader in business technology optimization (BTO). The leader in the industry is by far Mercury Interactive TestDirector. Success requires very effective test management. There are management tools for nearly all aspects of software testing including capturing requirements. and even several government agencies around the world rely on Mercury Interactive to fulfill their BTO strategies. This adds confidence that your software is going meet performance expectations. documentation. analyzing results. Some common questions Mercury Interactive recommends that you ask several questions before using TestDirector: Does your organization lack the software testing tools to deploy high-quality applications quickly and effectively? Does your organization have the appropriate level of communication. organization. Mercury Interactive is one of the largest and fastest growing enterprise software companies in the world. Test management is the most difficult aspect of effective testing because testing requires input from various channels at differing times. Not only do you need to carefully map out tasks and responsibilities but you also need to know what the performance expectations are. How will TestDirector help improve your business? The testing stage of software development is definitely the most complex and arguably the most important. and defect management. and structure in place for every testing project? Do you have a consistent. From my experience most organizations break down and drop the ball during the crucial testing stage. These tools facilitate communication between involved parties and simultaneously cut down on the total amount of time spent developing and running tests. repeatable testing process? Are you leveraging strategic sourcing initiatives for quality assurance? Answering these questions will help you better evaluate your organizations need for test management tools.Software Testing 2010 The Insider's Test Management Tool Learn what tools the pros are using to test software. Most internal company organizations lack the training and time to effectively act out this vital stage in the software development process. scheduling tests. I have found test management tools an invaluable resource in accomplishing these tasks. This is a company that you can rely on for high quality and consistent results. Page 40 . The primary advantage of using a test management tool is to help you manage your testing in a quick and effective manner. Common features of test management tools include the ability to repeat the process for gathering requirements. storing test scripts. There are many different test management tools to choose from. and managing any defects.

Deployment 8. This session helps you travel through the journey of software testing in the form of software testing tutorial. test plan. Utilizing a test management tool is truly a wise decision. Planning 2. Businesses are run on systems. Software Testing Tutorial Software testing is an integral part of Software Development Life Cycle. only when it works correctly and efficiently according to the customer's requirements. in the development of a software product. will mess up things. The efficiency and reliability it brings to an organization exuberates confidence and control that will then be emulate in employee performance. Maintenance Software Testing is an important factor in a product's life cycle. Using test management software will ensure that your systems are built on a solid foundation. As processes of integration smoothly take place employees gain greater trust in management and the of the company’s ability to be competitive and adapt. The potential risk of after implementation finding bugs and glitches will cost you money to fix and a lot of productivity. Introduction to Software Testing Page 41 . The process is carried in a set of steps. Good businesses have good systems. Implementation 6. which explains the whole idea about how to go through each product. It is completely web-enabled in order to efficiently support communication and cooperation among testing teams that are dispersed throughout a company. Software Testing 7. Software Development Life Cycle (SDLC) is a procedural process. The classification of Software Development Life Cycle process is as follows 1. as the product will have greater life. Analysis 3. Complete and thorough software testing with the help of TestDirector will keep the business running smoothly during and after implementation. Testing software or any product in day-to-day business applications or in our daily routine work becomes necessary as going around with these. Design 4. Software Development 5.Software Testing 2010 TestDirector has four modules: requirements. test lab and defects management which are integrated to enable a smooth flow of information between various aspects of the total testing process.

3. Software Testing Key Concepts • Defects and Failures: As we discussed earlier. but also reduces the rework of finding the bugs in the initial stages every now and then. but most commonly due to the requirement gaps in the non-functional requirement.does the software do what it is supposed to do and function according to the specifications? As we move further we come across some questions such as "When to start testing?" and "When to stop testing?" It is recommended to start testing from the initial stages of the software development. To help testers to carry out these day-to-day activities. preventing defects. If you are new to the field of software testing. that occurs due to an error in the application. we need to know a few concepts that will simplify the definition of software testing. 2. Scope of Software Testing The primary function of software testing is to detect bugs in order to correct and uncover it. gaining confidence in and providing information about the level of quality. It is required to achieve maximum profit with good quality product. then the article software testing for beginners will be of great help. Read more on checklists for software tester. defects are not caused only due to the coding errors.Software Testing 2010 Before moving further towards introduction to software testing. due to the lack of time and budget. Thus Software testing is the process of finding defects/bugs in the system. A failure is caused due to the deviation between an actual and an expected result. Software testing is an ongoing process. Failure: It is the variance between the actual and expected result. software testing have different goals and objectives. a baseline has to be set. In short. such as usability. This not only helps in rectifying tremendous errors before the last stage. which often include: 1. testability. finding defects. which is done in the form of checklists. maintainability. A defect can turn into a failure due to the Page 42 . performance and security. within the limitations of time and money. Fault): A flaw in the system or a product that can cause the component to fail or misfunction. It also saves the cost of the defect required to find it. • • • • Error: Error or mistake is a human action that produces wrong or incorrect result. scalability. Risk: Risk is a factor that could result in negativity or a chance of loss or damage. Defect (Bug. which could lead to failure of the resultant product and increase in probability of high risk. The tester has to follow some procedural way through which he can judge if he covered all the points required for testing or missed out any. But not all defects result to failures. The scope of software testing includes execution of that code in various environment and also to examine the aspects of code . which is potentially endless but has to be stopped somewhere.

Manual Scripted Testing: • • • Black Box Testing White Box Testing Gray Box Testing The levels of software testing life cycle includes : • • • • Unit Testing Integration Testing System Testing Acceptance Testing 1. This means finding large number of infrequent defects is difficult. Input Combination and Preconditions: Testing all combination of inputs and initial state (preconditions). 1. Quality assurance is an activity. a non-functional requirement such as usability. Verification: This verifies whether the product is done according to the specification? 2. Alpha Testing 2. Static and Dynamic Analysis: Static testing does not require execution of the code for finding defects. Verification and Validation: Software testing is done considering these two factors. Software testing is classified according to two basic types of software testing: Manual Scripted Testing and Automated Testing. Software Testing Types: Software test type is a group of test activities that are aimed at testing a component or system focused on a specific test objective. software code is executed to demonstrate the results of running tests. testability or reliability. whereas in dynamic testing. Beta Testing Other types of software testing are: • • Functional Testing Performance Testing Page 43 . which proves the suitability of the product by taking care of the quality of a product and ensuring that the customer requirements are met. Various types of software testing are used with the common objective of finding defects in that particular component. Validation: This checks whether the product meets the customer requirement? Software Quality Assurance: Software testing is an important part of the software quality assurance. is not feasible.Software Testing 2010 • • • • change in the environment and or the change in the configuration of the system requirements.

Automation tools category also includes maintenance tool such as TestDirector and many other. Load Testing 2.Software Testing 1. Page 44 . read more on types of software testing. Automation testing involves automating a manual process. Software Testing Artifacts Software testing process can produce various artifacts such as: • • • Test Plan: A test specification is called a test plan. This verifies that the test results are correct and is also used to change tests when the source documents are changed. Quick Test Professional (QTP). SilkTest. Software Testing Methodologies The software testing methodologies or process includes various models that built the process of working for a particular product. Automated Testing: Manual testing is a time consuming process. LoadRunner. Rational Robot. A test plan is documented so that it can be used to verify and ensure that a product or system meets its design specification. These test cases are developed with the objective of judging the application for its capabilities or features. Test automation is a process of writing a computer program in the form of scripts to do a testing which would otherwise need to be done manually. Stress Testing Smoke Testing Sanity Testing Regression Testing Recovery Testing Usability Testing Compatibility Testing Configuaration Testing Exploratory Testing 2010 • • • • • • • • For further explanation of these concepts. etc. Test Case: Test cases and software testing strategies are used to check the functionality of individual component that is integrated to give the resultant product. These models are as follows: • • • • • • Waterfall Model V Model Spiral Model Rational Unified Process(RUP) Agile Model Rapid Application Development(RAD) These models are elaborated briefly in software testing methodologies. Traceability matrix: This is a table that correlates or design documents to test documents. Some of the popular automation tools are Winrunner. User Id: {Valid UserId. User Id and Password textboxes should be available with appropriate labels. 5. Test Sr. empty}. Test Data: Required list of variables and their values should be available. Software Testing Process Software testing process is carried out in the following sequence. User views the page to check whether it includes UserId and Password textboxes with Screen dispalys user Checking User Interface TC1. Password:{Valid. Invalid. Create Test Plan Design Test Case Write Test Case Review Test Case Execute Test Case Examine Test Results Perform Post-mortem Reviews Budget after Experience Here is a sample Test Case for you: # Software Test Case for Login Page: • • • Purpose: The user should be able to go to the Home page. Also expects interface requirements requirements. Test Suite: Test suite is a collection of test cases. Invalid UserId.No Case Test Case Name Id Steps/Action Expected Results 1. 3. 2. appropriate labels. S/w should be compatible with the Operating system. 2. empty}. i)Error message is displayed for numeric 2. Textbox for UserId should: i)User types numbers into the textbox. 6. Submit and Cancel buttons with appropriate captions should be available. 4. in order to find faults in the software system: 1.Software Testing • 2010 • • Test Data: When multiple sets of values or data are used to test the same functionality of a particular feature in the test case. Test Scripts: The test script is the combination of a test case. Page 45 . Pre-requisite: 1. 8. the test values and changeable environmental components are collected in separate files and stored as test data. 7. are available with appropriate captions TC2. 4. Login page should appear. test procedure and test data. that Submit and Cancel buttons according to the user.

System accepts data when user enters more than six characters into the password textbox. enabled 4. characters in the password ii)Data should be textbox. A-Z} ii)not allow special characters like{'$'. Fault Finding Techniques in Software Testing Finding of a defect or fault in the earlier parts of the software not only saves time and money.'*'. enabled.'!'. displayed in encrypted format. Checking functionality of ii)User checks whether the 'CANCEL' button.. ii)System clears the data available in the UserId and Password textbox when user clicks on the 'CANCEL' button. i)User enters only two characters in the password Checking functionality of textbox. System accepts data in the encrypted format else displays an error message.Software Testing i)allow only alphanumeric characters{a-z. Checking functionality of 'SUBMIT' button. ii)User checks whether his data is displayed in the encrypted format. i)Error message is displayed when user enters less than six characters in the password textbox. 3. six characters. textboxes for UserId and Password are reset to blank by clicking on the 'CANCEL' button.} iii)not allow numeric characters like{0-9} data. ii)User clicks on the 'SUBMIT' button and expects to view the 'Home' page of the application. i)User checks whether i)System displays 'SUBMIT' button is enabled or 'SUBMIT' button as disabled. ii)System is redirected to the 'Home' page of the application as soon as he clicks on the 'SUBMIT' button. TC5.. the Password textbox: i)Textbox for Password should accept more than ii)User enters more than six TC3. 2010 ii)Text is accepted ii)User types alphanumeric data when user enters alphain the textbox. 5.'#'. As we move forward towards the different Page 46 .'~'. i)User checks whether i)System displays 'CANCEL' button is enabled or 'CANCEL' button as disabled.. numeric data into the textbox. but is also efficient in terms of security and profitability. TC4.

Though it is difficult to measure such an abstract constraint. There is a procedure that is to be followed for finding a bug in the application. which helps the tester in answering the question . with respect to. There are various techniques involved alongwith the types of software testing. collection of data. measurement of a software is for understanding. Page 47 .Software Testing 2010 levels of the software. 3. 2. controlling and improvement of the software system. This procedure is combined into the life cycle of the bug in the form of contents of a bug. 3. Thus it is recommended to start testing from the initial stages of the life cycle. The cost of finding the defect also increases. productivity and performance evaluation. Here is where change management comes into picture. needs to be controlled. It answers questions such as: 1. Testers play a vital role in this. it is essential to do so. How can the under developed code be improved?. when the software is under development and after the system is ready for use. Software is subject to changes. But. Some of the common software metrics are: • • • • • • • • Code Coverage Cyclomatic complexity Cohesion Coupling Function Point Analysis Execution time Source lines of code Bug per lines of code In short. etc. This life cycle is named as the bug life cycles. 2. clarifying goals. This gives rise to the development of newer and updated versions of software. It helps in judging the quality of the software. changing environmental conditions. cost and effort estimation. How is the quality of the code that has been developed?. as well as configuration and compatibility issues. What is the estimation of each process activity?. it becomes difficult and tedious to go back for finding the problems in the initial conditions of the components. in identifying where the problem has raised. varying user requirements. there should be some source of getting back to the older versions easily and working on them efficiently. The elements that are not able to be to log a bug? Measuring Software Testing There arises a need of measuring the software. depending upon the severity and priority of that bug. cost overruns. both. There are some important uses of measuring the software: • • • Software metrics helps in avoiding pitfalls such as 1.

you can actually get paid to test video games. Believe it or not.Certified Software Quality Engineer CQIA. There are many industries specializing in this field. If you are planning to choose the software testing industry as your career ground.Software Testing Software Testing as a Career 2010 Software testing is a good career opportunity for those who are interested in the software industry.Certified Software Process Engineer CAST.Certified Associate in Software Testing Quality Assurance Certifications: • • • • CSQA. we will have a look at various software testing techniques and methodologies that are in practice today. you might like to go through this extensive list of software testing interview questions. you can acquire these software testing certifications.Certified Test Manager CSPM. Software Testing Interview Questions I hope this article has helped you gain a deeper insight into software testing. methodologies and different software testing strategies. Software Testing Methodologies There are different types of software testing methodologies in the field of software testing and quality assurance. • • • • • • • ISTQB. Software Testing Certifications Software testing certifications will not only boost up ones knowledge.Certified Software Quality Analyst Software Quality Assurance Certification CSQE. but also prove to be beneficial for his academic performance. Video game testing is an offshoot of software testing. I consider that this article on software testing tutorial must have given you a clearer idea on various software testing types.Certified Software Test Professional CTM.Certified Software Project Manager CSPE. There are some software testing certification programs that can support the professional aspirations of software testers and quality assurance specialists. Page 48 .Certified Software Tester CSTP.International Software Testing Qualifications Board CSTE. In the following article. You can read more on how to become a video game tester. Before you step out for a job in the testing field or before you take your first step towards becoming a software tester.Certified Quality Improvement Associate Software testing is indeed a vast field and accurate knowledge is crucial to ensure the quality of the software developed.

Software Testing Methodologies These are some commonly used software testing methodologies: Page 49 . test and report errors or bugs in the product or piece of code. Test Director. • • • • • • • • • • • • • • • • • • White box testing Black box testing Gray box testing Unit testing Integration testing Regression testing Usability testing Performance testing Scalability testing Software stress testing Recovery testing Security testing Conformance testing Smoke testing Compatibility testing System testing Alpha testing Beta testing The above software testing methods can be implemented in two ways . in an attempt to observe the output and examine whether it is in accordance with certain pre-specified conditions. controlled as well as uncontrolled operating conditions.removing all the bugs and errors from the code and making the software error-free and capable enough of providing accurate and optimum outputs. here's the answer to this question. So what is software testing? Well. There are different types of software testing techniques and methodologies. LoadRunner. the same process is performed by a computer by means of an automated testing software such as WinRunner. A software testing methodology is different from a software testing technique. than writing it. In case of automated software testing. Different sets of test cases and testing strategies are prepared. Software Testing Methods There are different types of testing methods or techniques as part of the software testing process. all of which aim at achieving one common goal . if not more. Effectively and efficiently testing a piece of code is equally important.e. Manual software testing is done by human software testers who manually i. etc. Software testing is nothing but subjecting a piece of code to both. We will have a look at a few software testing methodologies in the later part of this article.manually or by automation. I have enlisted a few of them below.Software Testing 2010 Software testing is an integral part of the software development life cycle (SDLC). for those of you who are new to software testing and quality assurance. physically check.

The benefit of this methodology is that in this case. This can often lead to wastage of time.Software Testing • • • • • • 2010 Waterfall model V model Spiral model RUP Agile model RAD Let us have a look at each one of these methodologies one by one. you move on to the next step only after you have completed the present step. a thorough analysis and review of the achieved product or output is performed. Spiral Model As the name implies. If it is not as per the specified requirements or expected standards. time delays are minimized and optimum utilization of resources is assured. This Page 50 . However. and so on. Once the initial cycle is completed. For example. 3. Requirement analysis Test case design Test case implementation Testing. The basic steps involved in this methodology are more or less the same as those in the waterfall model. Also. it has many shortcomings since bugs and errors in the code are not discovered until and unless the testing stage is reached. By following this approach. 2. systematic and orthodox approach. The main benefit of this methodology is its simplistic. this model follows a non-iterative approach. 4. Waterfall Model The waterfall model adopts a 'top down' approach regardless of whether it is being used for software development or testing. as the development team goes about its requirement analysis activities. money and valuable resources. a second cycle follows. The basic steps involved in this software testing methodology are: 1. both the development and testing activities go hand-in-hand. However. the testing team simultaneously begins with its acceptance testing activities. debugging and validating the code or product Deployment and maintenance In this methodology. the spiral model follows an approach in which there are a number of cycles (or spirals) of all the sequential steps of the waterfall model. There is no scope for jumping backward or forward or performing two steps simultaneously. 5. V Model The V model gets its name from the fact that the graphical representation of the different test process activities involved in this methodology resembles the letter 'V'. this model follows both a 'top-down' as well as a 'bottom-up' approach (you can visualize them forming the letter 'V').

read on. Agile Model This methodology follows neither a purely sequential approach nor does it follow a purely iterative approach. Each cycle consists of four phases namely. wherein the requirements are constantly changing. elaboration. Fast and incremental development is one of the key principles of this methodology. In this case. Software testing life cycle consists of the various stages of testing through which a software product goes and describes the various activities pertaining to testing that are carried out on the product. Necessary changes and modifications are made after joint discussions with the customer or the development team (in the context of software testing).Software Testing 2010 methodology follows an iterative approach and is generally suited for very large projects having complex and constantly changing requirements. rather than merely following theoretical processes. the product or the output is reviewed and a further cycle (made up of the same four phases) follows if necessary. Rational Unified Process (RUP) The RUP methodology is also similar to the spiral model in the sense that the entire testing procedure is broken up into multiple cycles or processes. Rapid Application Development (RAD) The name says it all. At the end of each cycle. Today. So. After understanding the various requirements. With the applications of information technology growing with every passing day. Software Testing Life Cycle The software testing life cycle identifies various testing activities and also explains which testing activity needs to be carried out when. It Page 51 . It is a selective mix of both of these approaches in addition to quite a few new developmental methods. you will find certain organizations and companies adopting a slightly modified version of the RUP. a rapid prototype is prepared and is then compared with the expected set of output conditions and standards. inception. it can be unsuitable if the project is large. Continuous customer interaction and participation is an integral part of the entire development process. the importance of proper software testing has grown multifold. Here are some more advantages of rapid application development. Though this approach does have its share of advantages. Different phases of the life cycle of software testing have been explained in this article. This was a short overview of some commonly used software testing methodologies. which goes by the name of Enterprise Unified Process (EUP). practical and visible outputs and results. Here's an explanation of the STLC along with a software testing life cycle flow chart. The focus is on obtaining quick. the methodology adopts a rapid development approach by using the principle of component-based construction. complex and happens to be of an extremely dynamic nature. construction and transition.

Test Design 5. Final Testing and Implementation 11. with regard to the Software Development Life Cycle or SDLC to avoid any complications. The software testing life cycle diagram can help one visualize the various software testing life cycle phases. Software Testing Life Cycle Phases Software testing has its own life cycle that meets every stage of the SDLC. However. It is advisable to carry out the testing process from the initial phases. They are 1. Test Planning 3. Result Analysis 8. the way it is conducted differs from one organization to another. Test Analysis 4. Test Verification and Construction 6. Requirement Stage 2. Reporting and Rework 10. a software testing life cycle tutorial. Bug Tracking 9. This refers to the life cycle of the testing process. Test Execution 7. Introduction to Software Testing Life Cycle 2010 Every organization has to undertakes testing of each of its products. Post Implementation Page 52 .Software Testing won't be wrong to call this article.

testers and users can be formed. Without a good plan. Thus a panel of developers. no work can lead to success be it software-related or routine work. Formal meetings of the panel can be held in order to document the requirements discussed which can be further used as software requirements specifications or SRS. Testers can also involve themselves as they can think from the users' point of view which the developers may not.Software Testing 2010 Requirement Stage This is the initial stage of the life cycle process in which the developers take part in analyzing the requirements for designing a product. Test Planning Test planning is predetermining a plan well in advance to reduce further risks. A test plan document Page 53 .

3. ie. Approval: This decides who can approve the process as complete and allow the project to proceed to the next level that depends on the level of the plan. Responsibilities: This phase assigns responsibilities to the person who can be held responsible in case of a risk. This phase decides whether manual or automated testing is to be done. The test plan structure is as follows: 1. Features to be tested: This describes the coverage area of the test plan. Staffing and training needs: Training on the application/system and training on the testing tools to be used needs to be given to the staff members who are responsible for the application. the list of features that are to be tested that are based on the implicit and explicit requirements from the customer. 12.Software Testing 2010 plays an important role in achieving a process-oriented approach. 5. project plan. Test Design Test design is done based on the requirements of the project documented in the SRS. Environmental needs: The special requirements of that test plan depending on the environment in which that application has to be designed are listed here. different paths Page 54 . The criterion which is used has to explain which test item has passed or failed. Test Items The items that are referred to prepare this document will be listed here such as SRS. This also helps users and testers to avoid incomplete functions and prevent waste of resources. Features that are out of scope of testing. Testing tasks: This stage is needed to avoid confusion whether the defects should be reported for future function. GUI features that don't hamper the further process can be included in the list. It should be in acceptance with the higher and lower levels of the plan. 6. 10. 8. Test Analysis Once the test plan documentation is done. Item pass/fail criteria: Related to the show stopper issue. like incomplete modules or those on low severity eg. the next stage is to analyze what types of software testing should be carried out at the various stages of SDLC. 9. 7. In automation testing. 14. Approach: This is the test strategy that should be appropriate to the level of the plan. Test deliverable: This includes a list of documents. a test plan is documented. Once the requirements of the project are confirmed. Introduction: This describes the objective of the test plan. 13. 2. charts that are required to be presented to the stakeholders on a regular basis during testing and when testing is completed. 4. Features not to be tested: The incorporated or comprised features that can be skipped from the testing phase are listed here. reports. Suspension criteria and resumption requirements: The suspension criterion specifies the criterion that is to be used to suspend all or a portion of the testing activities. Risks and contingencies:This emphasizes on the probable risks and various events that can occur and what can be done in such situation. 11. whereas resumption criterion specifies when testing can resume with the suspended portion.

the functionality of the tests is done in this phase. Test Verification and Construction In this phase test plans. 12. At first. Integration testing and bug reporting is done in this phase of the software testing life cycle. The bug once reported and as the development team fixes the bug. 5. 4. Result Analysis Once the bug is fixed by the development team. top level testing is done to find out top level failures and bugs are reported immediately to the development team to get the required workaround. 9. Test Execution Planning and execution of various test cases is done in this phase. When the development team is done with a unit of code. i. 3. the test design and automated script tests are completed.: Number of test runs required. Severity: Degree of severity of the defect. Defect Submitted By: Name of the tester who detected/reported the bug. Defect Profile Document contains the following Defect Id: Unique identification of the Defect. and declare the result as pass/fail. which can help in minimizing the number of records to be searched.Software Testing 2010 for testing are to be identified first and writing of scripts has to be done if required. Test reports have to be documented properly and the bugs have to be reported to the development team. The contents of a bug well explain all the above mentioned things. 8. Bug Tracking This is one of the important stages as the Defect Profile Document (DPD) has to be updated for letting the developers know about the defect. There originates a need for an end to end checklist that covers all the features of the project. 1. Summary: This field contains some keyword information about the bug. Regression Page 55 . Reporting and Rework Testing is an iterative process. Status: This field displays current status of the bug.: The version information of the software application in which the bug was detected and fixed. the testing team is required to help them in testing that unit and reporting of the bug if found. Build No. 11. 10. Description: Detailed description of the bug. Assigned To: Name of the developer who is supposed to fix the bug. Test Case Id: Test case identification for that defect. Priority: Priority of fixing the bug.e after the successful execution of the test case. 6. it has to undergo the testing process again to assure that the bug found is resolved. 2. the testing team has to retest it to compare the expected values with the actual values. Once the unit testing is completed. Date of Submission: Date at which the bug was detected and reported. Version No. Stress and performance testing plans are also completed at this stage. 7.

These stages are collectively named as bug life cycle. load. Page 56 . is done. Final Testing and Implementation This phase focuses on the remaining levels of testing. the software is released for production. Read More on: • • • Types of Software Testing Software Testing Methodologies Software Testing Tutorial This was an overview of the software testing life cycle. Thanks to the information technology boom and continuous innovation in the software industry. performance and recovery testing. the software has to undergo one more round of top level testing. Bug Life Cycle Bug is any error in the software that prevents it from producing desired output. Creating plans for improvement and enhancement is an ongoing process. This helps to prevent similar problems from occuring in the future projects. and will always be.Software Testing 2010 testing has to be done. Thus testing is an ongoing process. stress. the recording of errors that occurred during various levels of the software testing life cycle. Post Implementation Once the tests are evaluated. Various documents are updated and different matrices for testing are completed at this stage of the software testing life cycle. Once the Quality Analyst assures that the product is ready. planning for improvement of the testing process for future applications is done in this phase. In short. The application needs to be verified under specified conditions with respect to the SRS. Before release. the need for software testing is. such as acceptance. growing. A bug goes through different stages until it gets resolved.

the status of the bug is changed to 'assign'. It can be assigned to the team who created the software or it may be assigned to some specialized team. fault. he examines the bug by retesting the product. Open When the bug is reported to the testing lead. From its discovery to its resolution. a bug passes through various stages. Software bug is defined as any error. This bug is then send to the testing lead for approval. Life Cycle of a Bug Given below are the stages of a bug life span. After assigning the bug to the software team. If he finds that the bug is genuine. he approves it and changes its status to 'open'. The presence of the bug becomes evident when the tester tries to run the newly developed application and it does not respond in an expected manner. Test reports describe in detail the behavior of bug at each stage. Assign Once the bug has been approved and found genuine by the testing lead. commonly called as 'bug life cycle'. New This is the first stage of bug life cycle in which the tester reports a bug. Software testing happens in the later stage of SDLC. At every step the software evolves into a more advanced product. mistake which prevents the software from producing the expected output. During this phase. Bug is often the result of human errors either in the source code or the design itself. Test Page 57 .Software Testing 2010 Software development comprises of various phases which are collectively called as Software Development Life Cycle (SDLC). flaw. it is then send to the concerned software development team for its resolution. the product is checked for errors as well as it is verified against the user requirements.

Verified If the software development team sends the fixed bug back for retesting.How To Log A Bug (Defect) Software Testing . then the bug is 'closed.' Reopened If the bug still exists. Understanding bug life cycle is important from the point of view of delivering an error free software to the customer. then the status of one bug is changed to 'duplicate'. it means that the bug will be fixed in the next releases of the software. There can be myriad reason why the software team may not consider fixing the bug urgently. In this case. fixing one bug automatically takes care of the other bug.Bug Life Cycles Software Testing . Once. This includes lack of time. it is the prerogative of the development team to decide if the bug is really genuine or not.Bug and Statuses Used During A Bug Life Cycle Bug life cycle is an important concept in software testing. the testing lead might have approved the bug stating it as a genuine one. If they doubt the presence or impact of the bug. the software development team may not always agree. before sending the bug back to the testing team. tested and approved. Page 58 . Rejected Although. its status is changed to 'test' in the report. Duplicate If the development team finds that the same bug has been repeated twice or there are two bugs which point to the same concept. Ultimately. Deferred If the development team changes the status of the bug to 'deferred'.Software Testing 2010 The team to which the bug has been assigned works on the removal of bug.' This is the final stage in which the bug has been fixed. If at the end of the test. it is sent back to the testing team for a retest. it is not found then its status is changed to 'verified. The bug then traverses the entire of its life cycle once again. then its status is changed to 'reopened'. Read more on • • • Software Testing . they are finished with fixing the bug. then the bug undergoes rigorous testing procedure again. then they may change its status to 'rejected'. However. low impact of the bug or negligible potential of the bug to induce major changes in the normal functioning of the software. Closed If no occurrence of bug is reported and if the software functions normally.

We have compiled here a list of some common software testing interview questions. What are the advantages of working as a tester for a product based company as opposed to a service based company? Do you know how a product based testing differs from a project based testing? Can you give a suitable example? Do you know what is exactly meant by Test Plan? Name its contents? Can you give a sample Test Plan for a Login Screen? How do you differentiate between testing a product and testing any web-based application? What is the difference between Web based testing and Client server testing? How to perform SOAP Testing manually? Explain the significance of Waterfall model in developing a product. Remember. Software Testing Interview Questions on Quality Assurance • How do you ensure the quality of the product? Page 59 . However. If you are the kind of a person. yet very keen about making a career in the software field. Software testing field offers several job positions in testing. you should also keep yourself abreast with the latest tools and trends in the software testing industry. who are interested in pursuing a career in the software industry. Software testing industry presents a plethora of career opportunities for candidates. Typically. Interview Questions for Software Testing Software Testing Interview Questions on Product Testing • • • • • • • • What will be the test cases for product testing? Give an example of test plan template. it is imperative that you have a sound understanding of the field you are hoping to venture in. Quality Control etc. More on job interview tips.Software Testing Software Testing Interview Questions 2010 If you are looking for a job in software testing industry. who does not enjoy software development. There are several types of software testing and software testing methodologies. you must also be equipped with the answers for the most likely questions you'll be facing during an interview. Quality Assurance (QA). before going for an interview. which you must be thorough with. Have a look. we have divided the questions into five common categories. Preparing for the Interview Before applying for any IT job. so as to improve your chances of acquiring a job in this particular industry. software testing is a volatile field. the things that you learned in your curriculum may have become obsolete by the time you are ready for a job. Hence. Besides being technically sound. your set of interview questions for software testing would depend upon the particular area of software testing you are interested in. you need to have your basics in place.. it is imperative that along with a sound knowledge of the corresponding field.. then software testing could be the right option for you. hence.

Explain System Integration Testing. How does compatibility testing differ while testing in Internet explorer and testing in Firefox? Software Testing Interview Questions on Testing Scenarios • • • • • • • • • • How do you know that all the scenarios for testing are covered? Can you explain the Testing Scenario? Also explain scenario based testing? Give an example to support your answer. Can you explain the term in a few words? What are the major components of the risk? When do you say your project testing is completed? Name the factors. Explain Data Integrity Testing.2? Explain Release Acceptance Testing. What do you mean by a walk through and inspection? What is the procedure for testing search buttons of a web application both manually and using Qtp8. What is the procedure for planning test automation? What is your opinion on the question that can a test automation improve test effectiveness? Can you explain data driven automation? Name the main attributes of test automation? Do you think automation can replace manual testing? How is a tool for test automation chosen? How do you evaluate the tool for test automation? What are the main benefits of test automation according to you? Where can test automation go wrong? Page 60 .Software Testing • • • • • • • • • • 2010 What do you do when there isn't enough time for thorough testing? What are the normal practices of the QA specialists with perspective of a software? Can you tell the difference between high level design and low level design? Can you tell us how Quality Assurance differs from Quality Control? You must have heard the term Risk. Explain Forced Error Testing. what are the other factors that we need to check in order to exit a testing process ? What is the procedure for finding out the length of the edit box through WinRunner? Software Testing Interview Questions on Automated Testing • • • • • • • • • • • What automated testing tools are you familiar with? Describe some problems that you encountered while working with an automated testing tool. Consider a yahoo application. What are the test cases you can write? Differentiate between test scenario and test case? Is it necessary to create new Software requirement document. if it is a 'Migrating Project'? Explain the difference between smoke testing and sanity testing? What are all the scenarios to be considered while preparing test reports? What is an 'end to end' scenario? Other than requirement traceability matrix. test planning report.

which when conducted help to eliminate defects from the program. You can explore the Internet for more software testing interview questions and of course. Can you explain the difference between a Bug and a Defect? Explain the phases of bug life cycle What are the different types of Bugs we normally see in any of the projects? Also include their severity. When the end product is given to the client. What is the difference between Bug Resolution Meeting and Bug Review Committee? Who all participate in Bug Resolution Meeting and Bug Review Committee? Can you name some recent major computer system failures caused by software bugs? What do you mean by 'Reproducing a bug'? What do you do. Hope this article helps you to get the job of your dreams. Provide an example for high priority and low severity and high severity and low priority? Explain Defect Life Cycle in Manual Testing? How do you give a BUG Title & BUG Description for ODD Division? Have you ever heard of a build interval period? Software testing is a vast field and there is really no dearth of software testing interview questions. it should work correctly according to the specifications and requirements of the software. the solutions. What types of scripting techniques for test automation are you aware of? Name the principles of good testing scripts for automation? What tools can you use for support of testing during the software development life cycle? Can you tell us it the activities of a test case design be automated? What are the drawbacks of automated software testing? What skills are needed to be a good software test automator? Software Testing Interview Questions on Bug Tracking • • • • • Can you have a defect with high severity and low priority and vice-versa i. – Dale Emery Page 61 .Software Testing • • • • • • • • • 2010 Can you describe testing activities? What testing activities you need to automate? Describe common issues of test automation. if the bug was not reproducible? • • • • • How can you tell if a bug is reproducible or not? On what basis do we give priority and severity for a bug. Good Luck! Types of Software Testing Software Testing is a process of executing software in a controlled manner. Testing is a process of gathering information by making observations and comparing them to expectations.e high priority and low severity? Justify your answer. There are different types of software testing. Defect in software is the variance between the actual and expected results.

There are various types of software testing strategies such as white box testing strategy. For example: • • • • Functional testing is done to detect functional defects in a system. test cases are designed to help the developers. So. but also to check whether the program is behaving according to the given specifications and testing strategies. which needs to be fixed. Performance Testing is performed to detect defects when the system does not perform according to the specifications Usability Testing to detect usability defects in the system. though its the software. viz. etc. testing turns to be mandatory. which can be applied to various parts of a software process such as test case management. in which test cases are designed and reviewed by the team.Software Testing 2010 In our day-to-day life. Types of Software Testing Various software testing methodologies guide you through the consecutive software testing types. when we go out. before executing it. • • Manual Scripted Testing: This is considered to be one of the oldest type of software testing methods. It also helps to identify the defects / flaws / errors that may appear in the application code. To determine the true functionality of the application being tested. The bug life cycle helps the tester in deciding how to log a bug and also guides the developer to decide on the priority of the bug depending upon the severity of logging it. here is some information on software testing . defect management. etc. Need of Software Testing Types Types of Software Testing. Software testing includes two basic types of software testing. It is the process of analyzing or operating software for the purpose of finding bugs. we do check it before purchasing them for our satisfaction and to get maximum benefits. to go about for beginners. Test cases provide you with the guidelines for going through the process of testing the software. Software bug testing or software testing to log a bug. executing test cases. grey box software testing strategy. reporting of the bugs/defects. does it work in extreme climatic conditions. if its writing. depends upon different types of defects. when we intend to buy a pen. Security Testing is done to detect bugs/defects in the security of the system. Those who are new to this subject. The list goes on as we move on towards different layers of testing. What is Software Testing? Software Testing is a process of verifying and validating whether the program is performing correctly with no bugs. does it break if it falls. For example. explains the contents of a bug that is to be fixed. clothes. shopping any product such as vegetable.e. This can be done with the help of various bug tracking tools such as Bugzilla and defect tracking management tools like the Test Director. Testing not only means fixing the bug in the code. hardware or any product. Page 62 . Automated Testing: This software testing type applies automation in the testing. we test the pen before actually purchasing it i. pens. black box testing strategy. Manual Scripted Testing and Automated Testing.

without considering how the system generates the output. the system is tested beyond the normal expectations or operational capacity Usability Testing: This type of testing is also called as 'Testing for User Friendliness'. This checks whether the application is behaving according to the specification. This type of software testing is also called as Narrow Regression Testing. Stress Testing : In this type of performance testing. Testing is done by re-executing the previous versions of the application. Smoke Testing: Smoke testing is used to check the testability of the application. Installation Testing: This type of software testing identifies the ways in which installation procedure leads to incorrect results. Read more on introduction to usability testing. catastrophic problems or any type of system crash. Load Testing : In this type of performance testing. the system is raised beyond the limits in order to check the performance of the system when higher loads are applied. 2. that is internally or externally applied to the system. Sanity Testing: Sanity testing checks for the behavior of the system.Software Testing 2010 Other Software Testing Types Software testing life cycle is the process that explains the flow of the tests that are to be carried on each step of software testing of the product. Performance Testing: This type of testing checks whether the system is performing properly.e Verification and Validation Model is a perfect model which is used in the improvement of the software project. without dealing with the finer details. Performance testing depends upon the Load and Stress Testing. The V. Recovery Testing: Recovery testing is very necessary to check how fast the system is able to recover against any hardware failure. the software is tested for the functional requirements. according to the user's requirements. Parallel Testing: Parallel testing is done by comparing results from two different systems like old vs new or manual vs automated. This testing checks the ease of use of an application.Model i. Regression Testing: Regression testing is one of the most important types of testing. Functional Testing: In this type of testing. It is also called as Behavioral Testing. Black Box Testing It explains the process of giving the input to the system and checking the output. Checklists for software tester sets a baseline that guides him to carry on the day-today activities. 1. This model contains software development life cycle on one side and software testing life cycle on the other hand side. it checks whether the application is ready for further major testing and working. It is also called 'Build Verification Testing or Link Testing'. That means. Page 63 . in which it checks whether a small change in any component of the application does not affect the unchanged components.

Configuration Testing: This testing is done to test for compatibility issues. This testing includes Alpha and Beta testing. how user-friendly the application is. User Interface Testing: This type of testing is performed to check. Inter-Systems Testing: This type of software testing method is an interface between two or more application systems. This type of software testing validates that the system meets its functional and non-functional requirements and is also intended to test beyond the bounds defined in the software/hardware requirement specifications. User Acceptance Testing: Acceptence Testing is performed to verify that the product is acceptable to the customer and it's fulfilling the specified requirements of that customer. It determines minimal and optimal configuration of hardware and software. Read more on compatibility testing. System Testing: System testing is the testing conducted on a complete. Error-Handling Testing: This software testing type determines the ability of the system to properly process erroneous transactions. disk drives and CPU. which is similar to adhoc testing. with various combinations of hardware and software packages. to evaluate the system's compliance with the specified requirements. Scenario Testing: This type of software testing provides a more realistic and meaningful combination of functions. Read more on exploratory testing. Volume Testing: This testing is done. The user should be able to use the application. This testing is done after system testing. and determines the effect of adding or modifying resources such as memory.Software Testing 2010 Compatibility Testing: Compatibility Testing determines if an application under supported configurations perform as expected. Exploratory Testing: Exploratory Testing is a type of software testing. without any assistance by the system personnel. and is performed to explore the software features. integrated system. Alpha Testing: Alpha testing is performed at the developer's site by the customer in a closed environment. Compliance Testing: This type of testing checks whether the system was developed in accordance with standards. Manual-Support Testing: This type of software testing is an interface between people and application system. rather than artificial combinations that are obtained through domain or combinatorial test design. procedures and guidelines. 1. Page 64 . when huge amount of data is processed through the application.

how the system processes the input. Read more on brief introduction to security testing. Condition Coverage: In this type of software testing.Software Testing 2010 2. while performing these tests. means security testing of the system. each and every condition is executed by making it true and false. This mostly focuses in the design and construction of the software architecture. it is required to go through the code in order to find out any possible defect in the code. is not mandatory. White Box Testing It is the process of giving the input to the system and checking. The presence of the developer. Path Coverage: Each and every path within the code is executed at least once to get a full path coverage. Integration testing is further classified into Bottom-Up Integration and Top-Down Integration testing. or willful damage of code. in each of the ways at least once. Statement Coverage: This type of testing assures that the code is executed in such a way that every statement of the application is executed at least once. how well a system protects itself against unauthorized internal or external. 1. Static and Dynamic Analysis: In static analysis. Page 65 . Bottom-Up Integration Testing: In this type of integration testing. Security Testing: Testing that confirms. Whereas. Security testing assures that the program is accessed by the authorized personnel only. Top-Down Integration Testing: This is totally opposite to bottom-up approach. in dynamic analysis the code is executed and analyzed for the output. which is one of the important parts of the white box testing. Decision Coverage: This type of testing helps in making decision by executing the application. to generate the output. It is mandatory for a tester to have the knowledge of the source code. Unit Testing: This type of testing is done at the developer's site to check whether a particular piece/unit of code is working fine. 2. Beta Testing: This type of software testing is done at the customer's site by the customer in the open environment. Unit testing deals with testing the unit as a whole. at least once to judge whether it results in true or false. as it tests the top level modules are tested and the branch of the module are tested step by step using 'Stubs' until the related module comes to an end. Integration Testing: Integration testing is performed when various modules are integrated with each other to form a sub-system or a system. This is considered to be the last step in the software development life cycle as the product is almost ready. the lowest level components are tested first and then alleviate the testing of higher level components using 'Drivers'.

You could go through some software testing interview questions. to prepare yourself for some software testing tutorials. ISO 9001. using the above mentioned software testing types. Capability Maturity Model Integration (CMMi): The CMMi acts as a guiding force in the improvement of the processes of an organization. the activity or process that proves the suitability of a product for the intended purpose could be described as quality assurance. International Standards Organization (ISO): It is a European standard used for quality assurance. The quality assurance procedures are implemented in software testing. ISO 9003. The ISO 9000 and ISO 9003 documents contain supporting guidelines. and helps you check if the software satisfies the requirement of the customer. while the ISO 9002 is used for production and installation only. Quality Assurance Certification The process of quality assurance helps in testing the products and services as per the desired standards and the needs of customers. The management of development. and many other products are discussed in the following article. The ISO 9000 systems makes use of different documents or procedures for quality assurance. These various software testing methods show you the outputs. The ISO 9001 looks after the design. Total quality management is vital for the survival and profitability of business nowadays. P-CMM. etc. The final inspection is done with the help of the ISO 9003 model. The priorities for improvement are established and it is seen that these priorities are implemented properly with the help of CMMi. installation and maintenance/servicing. ISO 9002. namely. acquisition and maintenance of the services and products of a company is also improved with the help of CMMi. A set of proven practices are placed in a structure to assess the process area capability and organizational maturity of a company.. the application is tested for the code that was modified after fixing a particular bug/defect. are some of the most sought after quality certifications in the IT-ITES sector. organic food. In short. The quality assurance process takes care of the quality of the products and ensures that customer requirements pertaining to the products are met. Software testing is indeed a vast subject and one can make a successful carrier in this field. production. People Capability Maturity Model (P-CMM): The P-CMM model is similar to SW-CMM Page 66 . Quality Assurance Certification (Software Industry) Certifications like the ISO and CMMi. The certifications used to assess different products have different parameters which should be understood thoroughly. Software testing methodologies and different software testing strategies help to get through this software testing process.Software Testing 2010 Mutation Testing: In this type of software testing. The quality assurance certifications for the software industry.

heating & cooling equipment. The short account of various agencies awarding the certifications would help the concerned people in the industries. BS 7799: It is a security standard which originated in the mid-nineties.. The P-CMM model makes use of the best current practices used in organizational and human resource development to achieve its objectives. drugs & vaccines. The FDA certifies different types of products like the dietary supplements. concrete products. cosmetic products. animal drugs & food. The management and development of the workforce of a company is guided by the P-CMM model. Private labelers. Retailers. QAI Certification Program The Quality Assurance International (QAI) is an agency which awards the organic certification to the Producers. and till the year 2000 it evolved into a model known known as BS EN ISO17799. It is difficult to comply with the requirements/standards of this model since it covers the security issues comprehensively and contains the control requirements that are significant in number. organizing and retaining the manpower or the required talent. etc. The quality assurance certificates awarded by various agencies also act as a motivational force for industries to maintain the required standards.Stress Testing Stress testing is a process for establishing limits of adverse environments in which the system/software/website under test will crash. This model is used to assist the customers in measuring the service provider's capability. Distributors and other 'links' involved in the production of organic food. Know more about stress testing. e Services Capability Model (eSCM): The eSCM model serves the needs of the BPO/ITES industries.Software Testing 2010 (Software Capability Maturity Model) in its approach. The measurement is needed for establishing and managing the outsourcing relationships which improve continually. Page 67 . The objective of P-CMM is to improve the software development capability of an organization by means of attracting. motivating. health care equipment. Rigorous tests are conducted in order to award the quality assurance certificates. Processors. gas appliances. home equipment. Software Testing . medical devices. Food and Drug Administration Certification The Food and Drug Administration (FDA) of the US awards quality assurance certification for the food products which comply with the performance and safety standards. developing. Canadian Standards Association (CSA) International The various products certified under the CSA are building products. etc.. The quality control and quality assurance certifications help in developing the trust of customers in a particular product.

For a financial industry/sector. Testing carried out by the developer of the system/software/website may not be sufficient to help unveil conditions which will lead to crash of the system/software when it is actually submitted to the operating environment. when the limit of normal operation is crossed. It is always better to be prepared for extreme conditions rather than letting the system/software/website crash. sudden rise or decline in the price of materials that can affect financial projections etc. stress testing may include different parameters and operating process for testing of different systems. 2. stress testing helps find out the level of robustness and consistent or satisfactory performance even when the limits for normal operation for the system (software/hardware) is crossed. Most important use of stress testing is found in testing of software and hardware that are supposed to be operating in critical or real time situation. 3.Software Testing 2010 Stress testing has different meaning for different industries where it is used. 4. it is not considerably as high as it really could be. under or over clocking of underlying hardware. Stress testing in connection with websites or certain software is considered to be an effective process of determining the limit. Stress Testing in IT Industry Stress testing in IT industry (hardware as well as software sectors) means testing of software/hardware for its effectiveness in giving consistent or satisfactory performance under extreme and unfavorable conditions such as heavy network traffic. Almost 90% of the software/systems are developed with an assumption that they will be operating under normal scenario. And even if it is considered that the limit of normal operating conditions will be crossed. working under maximum requests for resource utilization of the peripheral or in the system etc. Such as a website will always be online and the server hosting the website must be able to handle the traffic in all possible ways (even if the traffic increases manifold). for example interest rates. etc. a mission critical software or hardware that works in real time scenario etc. The cost or effect of a very important (critical) software/system/website failure under extreme conditions in real time can be huge (or may be catastrophic for the organization or entity owning the software/system). repo and reverse repo used in the financial sector. at which the system/software/hardware/website shows robustness. In other words. effectively manages the load than the normal scenario and even shows effective error management under extreme conditions. stress testing means a process of testing financial instruments to find out their robustness and level of accuracy they can maintain under extreme conditions such as sudden or continuous market crash at a certain level. Need for Stress Testing Stress testing is considered to be important because of following reasons: 1. For the manufacturing industry. stress testing means a process that can help understand a patient’s condition. heavy processes load. For medical industry. Page 68 . sudden or extreme change in various parameters. is always available to perform its task.

Acceptance testing is also known as validation testing. These tools are configured to automate a process of increasing stress (i. To help overcome problems like denial of service attacks. even non-technical) that involves a customer and a system developed for the customer and developers of the system. but evaluates the overall functioning of the system and compares it with the requirements specified by them. factory acceptance testing and application testing etc.Software Testing 2010 5. And in software engineering. This type of testing is generally carried out by a user/customer where the product is developed externally by another party. engineering. Acceptance testing (also known as user acceptance testing) is a type of testing carried out in order to verify if the product is developed as per the standards and specified criteria and meets all the requirements specified by customer. It's not always possible to unveil possible problems or bugs in a system/software. unless it is subjected to such type of testing. Intensity of the adverse conditions is increased slowly while measuring all the parameters till the point where the system/software/website crashes. Few of the actions involved in stress testing are bombarding a website with huge number of requests. availability and performance of the system/software/website being tested. User acceptance testing is considered to be one of the most important testing by user before the system is finally delivered or handed over to the end user. race condition etc.e. in case of web servers for a web site. The collected data (observation and parameter values) are used for further improvement of the system/software/website. security breach related problems due to spamming.Acceptance Testing Acceptance testing is associated not only with software field but also to any other field (such as manufacturing. memory leak. hacking and viruses etc. spreading virus etc. QA testing. running of many resource hungry applications in a computer. Acceptance testing falls under black box testing methodology where the user is not very much interested in internal working/coding of the system. final testing. creation and increasing degree of adverse environment) on a system/software/website and capturing values of various parameters that help confirm the robustness.. acceptance testing Page 69 . Software Testing . problems arising out of conditions where software/system/website need to handle requests for resource allocation for requesting processes at the time when all the required resources are already allocated to some other process that needs some more resources to complete its work (which is called as deadlock situation). making numerous attempts to access ports of a computer in order to hack it and use it for various purposes such as spamming. This type of testing is mostly done with the help of various stress testing softwares available in market.

field acceptance testing or end-user testing). Acceptance testing in software engineering generally involves execution of number test cases which constitute to a particular functionality based on the requirements specified by the user. This type of testing and test case creation involves most experienced people from both sides (developers and users) like business analysts. Types of Acceptance Testing User Acceptance Testing: User acceptance testing in software engineering is considered to be an essential step before the system is finally accepted by the end user. The test cases and test criterion in acceptance testing are generally created by end user and cannot be achieved without business scenario criteria input by user. user acceptance testing is a process of testing the system before it is finally accepted by user. The user may choose to perform the testing in an iterative manner or in the form of a set of varying parameters (for example: missile guidance software can be tested under varying payload. Depending upon the outcome if it is as desired by the user or consistent over the number of test suites run or non conclusive. developers. During acceptance testing. A sign-off on contract stating the system as satisfactory is possible only after successful acceptance testing. The outcome of the acceptance testing can be termed as success or failure based on the critical operating conditions the system passes through successfully/unsuccessfully and the user’s final evaluation of the system. Test cases suites are run against the input data provided by the user and for the number of iterations that the customer sets as base/minimum required test runs. end users etc. Alpha Testing & Beta Testing: Alpha testing is a type of acceptance testing carried out at Page 70 . Process involved in Acceptance Testing 1. Based on the outcome of the test runs. 5.). the system may get rejected or accepted by the user with or without any specific condition. In general terms. test specialists etc. business customers (end users). Acceptance testing is done in order to demonstrate the ability of system/product to perform as per the expectations of the user and induce confidence in the newly developed system/product. The outputs of the test cases run are evaluated against the criterion/requirements specified by user. the system has to pass through or operate in a computing environment that imitates the actual operating environment existing with user. specialized testers. 2. different weather conditions etc. user may call it successful/unsuccessful or suggest some more test case runs.Software Testing 2010 may be carried out at two different levels. Test cases are created with the help of business analysts. developers. 4. one at the system provider level and another at the end user level (hence called user acceptance testing. 3.

operating systems etc. Many a times. other systems/applications. Network. What is Compatibility Testing Compatibility testing is a type of testing used to ensure compatibility of the system/application/website built with various other objects such as other web browsers. for example. Developers generally lookout for the evaluation of following elements in a computing environment (environment in which the newly developed system/application is tested and which Page 71 . Compatibility testing can be automated using automation tools or can be performed manually and is a part of non-functional software testing. Compatibility testing is one of the several types of software testing performed on a system that is built based on certain criteria and which has to perform specific functionality in an already existing setup/environment. OS. This type of testing helps find out how well a system performs in a particular environment that includes hardware. the user goes on testing the system and the outcome is noted and observed by the developer simultaneously. decide many things such as use of the system/application in that environment. such as a user who speaks and can read only a particular language). Read on to know more about compatibility testing.Compatibility Testing Compatibility testing is a non-functional software testing that helps evaluate a system/application's performance in connection with the operating environment. The users provide their feedback to the developer for the outcome of testing. Feedback from users is used to improve the system/product before it is released to other users/customers. This leads to a situation where the development efforts taken by developers prove to be in vain. network. hardware or OS they are already using. demand of the system/application etc. Operational Acceptance Testing: This type of testing is also known as operational readiness/preparedness testing. Software Testing . This type of testing is also known as field testing. Compatibility of a system/application being developed with. In this type of testing. operating system and other software etc. Contact and Regulation Acceptance Testing: In contract and regulation acceptance testing. users (in case if its very specific type of requirement. It is a process of ensuring all the required components (processes and procedures) of the system are in place in order to allow user/tester to use it. the system is tested against the specified criteria as mentioned in the contract document and also tested to check if it meets/obeys all the government and local authority regulations and laws and also all the basic standards.Software Testing 2010 developer’s site by users (internal staff). hardware platforms. network. Beta testing is a type of testing done at user’s site. users prefer not to opt for an application/system just because it is not compatible with any other system/application.

Hardware: Evaluation of the performance of system/application/website on a certain hardware platform. variance in capacity and operating speed of underlying hardware etc. How helpful is it? Compatibility testing can help developers understand the criteria that their system/application needs to attain and fulfill. Peripherals: Evaluation of the performance of system/application in connection with various systems/peripheral devices connected directly or via network. Macintosh GForce). It also helps the users to find out which system will better fit in the existing setup they are using. Databases: Many applications/systems operate on databases. motherboards etc. Compatibility between versions: Evaluation of the performance of system/application in connection with its own predecessor/successor versions (backward and forward compatibility). in order to get accepted by intended users who are already using some OS. For example: printers. as it is related to user’s experience of the application/website. Firefox etc.. (usually browser compatibility testing is also looked at as a user experience testing.Software Testing 2010 has similar configuration as the actual environment in which the system/application is supposed to fit and start working). The most important use of the compatibility testing is as already mentioned above: to ensure its performance in a computing environment in which it is supposed to Page 72 . the developer may choose to test it for various combinations of chipsets (such as Intel. For example: A website is tested for compatibility with browsers like Internet Explorer. Browser: Evaluation of the performance of system/website/application on a certain type of browser. while using it on different browsers). software and hardware etc. Database compatibility testing is used to evaluate an application/system’s performance in connection to the database it will interact with. messaging tools etc. telephone lines etc. fax machines. For example: If an all-platform compatible game is developed and is being tested for hardware compatibility. For example: Windows 98 was developed with backward compatibility for Windows 95 etc. Operating System: Evaluation of the performance of system/application in connection with the underlying operating system on which it will be used. web servers. For example: Software compatibility with operating tools for network. Network: Evaluation of the performance of system/application/website on network with varying parameters such as bandwidth. Softwares: Evaluation of the performance of system/application in connection with other softwares. which is set up to replicate the actual operating environment. network.

Users are able to accomplish many of these computer functions more readily by enlisting the infinite services provided by the Internet. Computers & Internet Introduced in the 1940s.Software Testing 2010 operate. the computer has become one of the most predominant electronic devices to come out of the field of technology.How to Use Son of Citation Machine Ace SEO Tricks for Ace Ranking! Tips for Getting the Best Server Racks for Your Home and Office Page 73 . such as word processing and financial planning. Docking Station: Which One Do I Need? Consider AT&T Internet Service and Other Top Providers to Improve Your Connection How to Optimize your Website How does Twitter Work How does Skype Work USB Cable Length Limits Install Ubuntu from USB Photocopiers . Explore the Internet world and its impact on society. This helps in figuring out necessary changes/modifications/additions required to make the system/application compatible with the computing environment. Learn more about the evolution of the computer and how its technology continues to change our world. • • • • • • • • • • • • • • • • • • • • • • • • • • • • Compare Windows 7 Versions AMD Vs Intel i3 vs i5 Best Antivirus for Mac How to Clean Install Snow Leopard Best Wireless Keyboard Firewall for Windows 7 WPA Vs WPA2 Pandora Radio Ninja Saga Convert MP4 to WMV Macbook Pro Accessories Firewall Settings Best Video Editing Software Xbox 360 PC Controller Laptop Stand Vs. more efficiently. Computers have assisted users in the home. business and government sects of society in performing a variety of tasks.A Brief History Best PC Controller How to Take a Screenshot in Windows XP Son of Citation .

Why and How? The Truth About How To Make Money Online Cloud Storage Fastest Browser Web 3.Software Testing • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 2010 Best Cydia Sources 2010 Farmville Farm Designs SMS Text from Computer WPA Vs WEP Restaurant City Cheat Play Halo 3 Online Best Windows 7 Gadgets Xbox 360 3 Red Lights Can Be Corrected By You A Step By Step Tutorial on Ripping Xbox 360 Games Website Development Contract Companies Use Twitter for Business Component Activities of SEO! Ways to Market Your Business With LinkedIn Sims 3 Serial Code Helvetica Font Tap Defense for Computer Farmville Cheat Engine Web 3.PS3 YLOD Permanent Fix Macbook Pro Battery Norton Ghost 15 Review Telus Reverse Lookup Hire Magento Developer From India.Xbox 360 e74 Error Fix Guide Can Ipad Replace Main Computer? Simple Techniques for Getting Ps3 Red Light of Death Repaired Find Out How You Can Play Backup Games for the PS2 PS3 Yellow Light of Death Repair .0 Convert DVD to AVI Best Wireless Printer Page 74 .0 Examples Farmville Cash Cheat Tips About Unlimited Broadband Tips to Get High Speed Unlimited Broadband Macbook Pro 2010 Adobe Reader Repair How to Start a Blog Ubuntu System Requirements Social Media Optimization Helps You to Promote Your Business Bejeweled Blitz Online Computer Support .How to Fix Windows Registry MP4 to MP3 Converter Netbook Comparison Install Windows 7 from USB Fix Red Ring of Death at Home .

Software Testing • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 2010 Data Entry Work from Home How to Use Twitter Read Eclipse Online for Free M4A File Format Activation Codes .exe Flyer Templates for Microsoft Word M4A File Farmville Tips How to Make Firefox Faster Windows 7 Firewall Best Cydia Apps 2010 eSATA Port Intel Core i3 Vs Core 2 Duo CRT Monitor Cash System X Review Windows 7 Antivirus How to Convert AVI to WMV How to Flash Xbox 360 Kubuntu System Requirements Antivirus for Mac Macbook Pro Update Cartoon Yourself for Free Retractable USB Cable Erase Search History Reset Computer To Earlier Date Converting AVI to DVD Direct TV Internet WPA Key Windows 7 System Requirements What is a DAT File? Page 75 .Cannot Find Server Easy Backup Wizard Fastest Wireless Router Best Home Page How to Rip a DVD on a Mac What is Seaport.How to Find Activation Codes How to Permanently Delete Facebook Account Best USB Hub Antivirus Live Antivirus for Windows 7 System Restore Not Working Best USB Flash Drive TV to Computer Connection How to Rip a DVD How to Clear a Browser Cache How to take a Screenshot on a Laptop DNS Error .

Software Testing 2010 Page 76 .

Sign up to vote on this title
UsefulNot useful