<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Learn Software Development &#187; Techniques</title>
	<atom:link href="http://learnsoftwareprocesses.com/category/techniques/feed/" rel="self" type="application/rss+xml" />
	<link>http://learnsoftwareprocesses.com</link>
	<description>All about the processes involved in software development</description>
	<lastBuildDate>Sun, 20 May 2012 19:17:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Different types of software errors and handling them properly</title>
		<link>http://learnsoftwareprocesses.com/2012/02/14/different-types-of-software-errors-and-handling-them-properly/</link>
		<comments>http://learnsoftwareprocesses.com/2012/02/14/different-types-of-software-errors-and-handling-them-properly/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 18:58:14 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Bug]]></category>
		<category><![CDATA[Defect]]></category>
		<category><![CDATA[Problems]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[QE]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Defect handling]]></category>
		<category><![CDATA[Defects]]></category>
		<category><![CDATA[Error handler]]></category>
		<category><![CDATA[Error handling]]></category>
		<category><![CDATA[Errors]]></category>
		<category><![CDATA[Software processes]]></category>
		<category><![CDATA[Software systems]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Test processes]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/?p=981</guid>
		<description><![CDATA[<p>Errors are a major headache to software programmers, developers as well as testers. They cause the whole software system or application to falter, produce unexpected results and cause the software to behave abnormally. Some errors cause more harm while some cause less, some of them are easy to discover whereas some are hideous and cause [...]]]></description>
			<content:encoded><![CDATA[<p>Errors are a major headache to software programmers, developers as well as testers. They cause the whole software system or application to falter, produce unexpected results and cause the software to behave abnormally. Some errors cause more harm while some cause less, some of them are easy to discover whereas some are hideous and cause huge frustration to developers and testers. Some errors are as active and disruptive like a volcano and others are dormant. Every software system or application suffers from many errors, and it is now seen as impossible to remove all the errors from a software system.<br />
Therefore error handling becomes an important factor in deciding the success of a program. Error handling is the way a program is built to handle the errors that disturb its functioning.<br />
- The error handling procedure should be very strong and smart.<br />
- Error handling requires a lot decision making.<br />
- The error handling process, like other processes, is also a victim of defects and can sometimes not work properly.<br />
The main steps involved in an Error handling process are detection, anticipation and resolution of the errors that occur during the execution of the software program or application. Some applications even employ programs called “error handlers” developed specifically for handling the errors. A software system or application is said to have good error handling capabilities if it is able to recover from errors without causing the whole program to terminate, or if it is not able to handle that error, properly terminate the program without causing any data loss. Such forceful termination is nothing but an error handling mechanism.<br />
The basic factors causing the run time errors are invalid input data and adverse function parameters.<br />
Lack of memory is another defect causing factor.<br />
A Software application comprises of various small programs. These programs may conflict with each other during the run time.  Similarly web applications also experience errors due to electrical noise and malware or other undue pressure on the server.<br />
A software system or application can overcome these errors by its error handling process. Thus we can define the error handling defects as the defects that reduce the efficiency of the error handling process.<br />
On the initiation of the error handling process, the discrepancy between the expected behavior and actual behavior is identified. Whenever there is some discrepancy in the behavior of the program, a defect is created. The test script that was being executed at the time of encounter of the defect is tested. This process is called defect creation. After this, the discovered defect is verified i.e., whether or not the defect is valid. A severity level is assigned to the defect. This severity level indicates the impact and visibility of the defect on the program. The defect can cause the core functionality to go out of order or stop working. It can affect the operational environment. Such defects prevent the user from accessing the features and functionalities of the software system or application.<br />
Incorrect navigation links are also a defect.<br />
According to the level of severity of the encountered errors and the problems they can cause, they are assigned priorities. This process is defect prioritization. Several priority codes have been defined. For example, there are some defects that do not even allow the testing to take place. Defects causing such errors are given the highest priority. The defect is once again confirmed and this process is called defect confirmation. After the defect confirmation the defect is analyzed, the affected code is redesigned, developed and tested again for any shortcomings. This process following the defect confirmation is called defect resolution. The defects after being resolved are once again reviewed by the developer and certain test scripts are run to confirm that the defect has been resolved. After the verification the defect is closed.</p>
<table>
<tr>
<td>Lessons Learned in Software Testing</td>
<td>Software Testing: An ISTQB-ISEB Foundation Guide</td>
<td>Software Testing (2nd Edition)</td>
</tr>
<tr>
<td><iframe src="http://rcm.amazon.com/e/cm?t=learnsoftware-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0471081124&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</td>
<td><iframe src="http://rcm.amazon.com/e/cm?t=learnsoftware-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=1906124760&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</td>
<td><iframe src="http://rcm.amazon.com/e/cm?t=learnsoftware-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0672327988&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</td>
</tr>
</table>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2012/02/14/different-types-of-software-errors-and-handling-them-properly/' addthis:title='Different types of software errors and handling them properly '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2012/02/14/different-types-of-software-errors-and-handling-them-properly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some of the properties to look for in a Scrum coach &#8211; Part 1</title>
		<link>http://learnsoftwareprocesses.com/2011/08/01/some-of-the-properties-to-look-for-in-a-scrum-coach-part-1/</link>
		<comments>http://learnsoftwareprocesses.com/2011/08/01/some-of-the-properties-to-look-for-in-a-scrum-coach-part-1/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 18:19:01 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Scrum Coach]]></category>
		<category><![CDATA[Scrum Problems]]></category>
		<category><![CDATA[Scrum team]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Giving Scrum advice]]></category>
		<category><![CDATA[Scrum expert]]></category>
		<category><![CDATA[Scrum Team]]></category>
		<category><![CDATA[Scrum training]]></category>
		<category><![CDATA[Selecting a scrum coach]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/?p=852</guid>
		<description><![CDATA[<p>In previous posts, I have mentioned about the importance of the Scrum coach. In this post, I am going to trying to provide more details on what a Scrum coach needs to do. You can find a lot of people who claim to be Scrum coaches, but whether you are finding the best person for [...]]]></description>
			<content:encoded><![CDATA[<p>In previous posts, I have mentioned about the importance of the Scrum coach. In this post, I am going to trying to provide more details on what a Scrum coach needs to do. You can find a lot of people who claim to be Scrum coaches, but whether you are finding the best person for your team and organization can take a bit of time. Since the Scrum coach can effectively make or break your Scrum team and have a huge impact on the productivity of the Scrum teams in your organization, it is important that you take the right amount of time and effort in order to get a Scrum coach that meets your needs. So how do you find a Scrum coach:<br />
- A good Scrum coach should project an air of being an expert in Scrum. A coach should be a person who seems enthusiastic about the teaching of Scrum, who believes that Scrum is the way to do software development. If a Scrum coach has doubts or seems to project an air of less than competency, then such a Scrum coach is probably not the right choice for you. A Scrum coach would consider it terribly important to ensure that every Scrum team is successful in its effort, all issues that the team is facing are resolved as best as possible.<br />
- Scrum coaches have a good amount of experience and a lot of knowledge about the various processes involved in Scrum teams. You want a Scrum coach who seems to have experience in the issues you may face, and is able to use the right techniques to solve your problems. For this purpose, the Scrum coach you hire for your team or organization should have a wide amount of experience in solving Scrum issues, know about the right set of processes and techniques to follow, and be able to guide your teams through these. The Scrum coach should be able to show their past experience in Scrum, their experience with different Scrum teams, be able to talk about difficult Scrum problems they have solved (and this experience should seem believable). If you have team members who have been working on Scrum, some amount of discussion with them can help determine easily whether the Scrum coach has a good amount of experience. Do not compromise on this, since the Scrum coach you hire can mean the success or failure of your Scrum teams.</p>
<p>I will provide more information on the properties that a Scrum coach should have in the next post ..</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2011/08/01/some-of-the-properties-to-look-for-in-a-scrum-coach-part-1/' addthis:title='Some of the properties to look for in a Scrum coach &#8211; Part 1 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2011/08/01/some-of-the-properties-to-look-for-in-a-scrum-coach-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tech Tip: Point-to-point tunneling protocol &#8211; PPTP</title>
		<link>http://learnsoftwareprocesses.com/2009/07/23/quick-tech-tip-point-to-point-tunneling-protocol-pptp/</link>
		<comments>http://learnsoftwareprocesses.com/2009/07/23/quick-tech-tip-point-to-point-tunneling-protocol-pptp/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 13:47:30 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Point-to-point protocol]]></category>
		<category><![CDATA[Point-to-point tunneling protocol]]></category>
		<category><![CDATA[PPP]]></category>
		<category><![CDATA[PPTP]]></category>
		<category><![CDATA[Technical Tip]]></category>
		<category><![CDATA[Tunneling]]></category>
		<category><![CDATA[virtual private network]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/?p=251</guid>
		<description><![CDATA[<p>Overview of Point-to-point Protocol:</p> <p>The Point-to-Point Protocol (PPP) provides a standard method for transporting multi-protocol datagrams over point-to-point links. PPP was originally emerged as an encapsulation protocol for transporting IP traffic between two peers.PPP is comprised of the following main components: * Encapsulation: A method for encapsulating multi-protocol datagrams. * Link Control Protocol: The LCP [...]]]></description>
			<content:encoded><![CDATA[<p>Overview of Point-to-point Protocol:</p>
<p>The Point-to-Point Protocol (PPP) provides a standard method for transporting multi-protocol datagrams over point-to-point links. PPP was originally emerged as an encapsulation protocol for transporting IP traffic between two peers.PPP is comprised of the following main components:<br />
* Encapsulation: A method for encapsulating multi-protocol datagrams.<br />
* Link Control Protocol: The LCP is used to automatically agree upon the encapsulation format options, handle varying limits on sizes of packets, detect a looped-back link and other common misconfiguration errors, and terminate the link.<br />
* Network Control Protocol: An extensible Link Control Protocol (LCP) for establishing, configuring, and testing and managing the data-link connections.<br />
* Configuration: Easy and self configuration mechanisms using Link Control Protocol. This mechanism is also used by other control protocols such as Network Control Protocols (NCPs).</p>
<p>Introduction TO PPTP :</p>
<p>PPTP packages data within PPP packets, then encapsulates the PPP packets within IP packets (datagrams) for transmission through an Internet-based VPN tunnel. PPTP supports data encryption and compression of these packets.<br />
The PPTP protocol is designed to perform the following tasks:<br />
    * Query the status of Comm Servers<br />
    * Provide In-Band management<br />
    * Allocate channels and place outgoing calls<br />
    * Notify NT Server on incoming calls<br />
    * Transmit and Receive User Data with flow control in both directions<br />
    * Notify NT Server on disconnected calls.</p>
<p>PPTP-based Internet remote access VPNs are by far the most common form of PPTP VPN. In this environment, VPN tunnels are created via the following two-step process:<br />
1. The PPTP client connects to their ISP using PPP dial-up networking.<br />
2. Via the broker device (described earlier), PPTP creates a TCP control connection between the VPN client and VPN server to establish a tunnel.</p>
<p>Once the VPN tunnel is established, PPTP supports two types of information flow:<br />
* control messages for managing and eventually tearing down the VPN connection. Control messages pass directly between VPN client and server.<br />
* data packets that pass through the tunnel, to or from the VPN client.</p>
<p>PPTP also supports VPN connectivity via a LAN.<br />
PPTP supports authentication, encryption, and packet filtering. </p>
<p>Though PPTP remains a popular choice for VPNs, one drawback of PPTP is its failure to choose a single standard for authentication and encryption. Two products that both fully comply with the PPTP specification may be totally incompatible with each other if they encrypt data differently.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2009/07/23/quick-tech-tip-point-to-point-tunneling-protocol-pptp/' addthis:title='Quick Tech Tip: Point-to-point tunneling protocol &#8211; PPTP '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2009/07/23/quick-tech-tip-point-to-point-tunneling-protocol-pptp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Types of testing</title>
		<link>http://learnsoftwareprocesses.com/2008/12/16/types-of-testing/</link>
		<comments>http://learnsoftwareprocesses.com/2008/12/16/types-of-testing/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 18:22:49 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Terms]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Types]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/2008/12/16/types-of-testing/</guid>
		<description><![CDATA[<p>What are the different types of testing that one normally comes across ? If there are others besides these, please add in the comments.</p> <p>• Black box testing &#8211; This is a testing method that is not based on any knowledge of internal design or code. Tests are based on requirements and functionality. • White [...]]]></description>
			<content:encoded><![CDATA[<p>What are the different types of testing that one normally comes across ? If there are others besides these, please add in the comments.</p>
<p>• Black box testing &#8211; This is a testing method that is not based on any knowledge of internal design or code. Tests are based on requirements and functionality.<br />
• White box testing &#8211; based on knowledge of the internal logic of an application&#8217;s code. Tests are based on coverage of code statements, branches, paths, conditions. This is more like testing based on code, and is typically handled by a person who has knowledge of coding.<br />
Black box and White Box testing are the 2 most well know types of testing.<br />
In addition, there are testing carried out at different stages, such as unit, integration and system testing.<br />
• Unit testing &#8211; the most &#8216;micro&#8217; scale of testing; to test particular functions or code modules. This is testing that happens at the earliest stage, and can be done by either the programmer or by testers (further stages of testing are typically not done by programmers). Not always easily done unless the application has a well-designed architecture with tight code; may require developing test driver modules or test harnesses. It could also be used to denote something as basic as testing each field to see whether the field level validations are okay.<br />
• Incremental integration testing &#8211; this stage of testing means the continuous testing of an application as and when new functionality is added to the application; the testing requires that various aspects of an application&#8217;s functionality be independent enough to work separately before all parts of the program are completed, or that test drivers be developed as needed; this testing is done by programmers or by testers.<br />
• Integration testing &#8211; This form of testing implies the testing of the combined parts of an application to determine if they function together correctly. When we say combined parts, this can mean code modules, individual applications, client and server applications on a network, etc. Integration testing can reveal whether parts that seem to be well built by themselves work properly when they are all fitted together. Integration testing should be done by testers.<br />
• Functional testing &#8211; Functional testing means testing of Black-box type testing geared to functional requirements of an application; functional testing should be done by testers. Functional testing is geared to validate the work flows that happen in the project.<br />
• System testing &#8211; System testing is a black-box type of testing that is based on testing against individual overall requirements specifications; the testing covers all combined parts of a system and is meant to validate the marketing requirements for the project.<br />
• End-to-end testing &#8211; End to end testing sounds very similar to system testing just with the name itself, and is similar to system testing. The testing operates at the &#8216;macro&#8217; end of the test scale, at the big picture level ; end-to-end testing involves testing of the complete application environment in a situation that simulates the actual real-world use, the final use, (example, interacting with a database, using network communications, or interacting with other dependencies in the system such as hardware, applications, or systems if appropriate).<br />
• Sanity testing &#8211; Sanity testing, as it sounds like, is typically an initial testing effort to determine if a new software version is performing well enough to accept it for a major testing effort. This sort of testing could also happen on a regular basis to ensure that regular builds are worth testing. For example, if the new software is crashing systems every 5 minutes, bogging down systems to a crawl, or destroying databases, the software may not be in a &#8216;sane&#8217; enough condition to warrant further testing in its current state. Sanity testing is not supposed to be a comprehensive testing.<br />
• Regression testing &#8211; Regression testing plays an important part of the bug life cycle. Regression testing involves re-testing after fixes or modifications of the software or its environment. It can be difficult to determine how much re-testing is needed, especially near the end of the development cycle, but there should never be an attempt to try and minimise the need for regression testing. Automated testing tools can be especially useful for this type of testing.<br />
• Acceptance testing &#8211; Acceptance testing, as the name suggests, is the final testing based on specifications of the end-user or customer, or based on use by end-users/customers over some limited period of time. This type of testing can also mean the make or break situation for a project to be accepted.<br />
• Load testing &#8211; Again, as the name suggests, load testing means testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system&#8217;s response time degrades or fails. This is part of a system to ensure that even when a system is under heavy load, it will not suddenly collapse, and can help in infrastructure planning.<br />
• Stress testing &#8211; Stress testing is a term often used interchangeably with &#8216;load&#8217; and &#8216;performance&#8217; testing. Stress testing is typically used to describe conducting tests such as system functional testing while under unusually heavy loads, heavy repetition of certain actions or inputs, input of large numerical values, large complex queries to a database system, etc.<br />
• Performance testing &#8211; Performance testing is a term often used interchangeably with &#8216;stress&#8217; and &#8216;load&#8217; testing. Ideally &#8216;performance&#8217; testing (and any other &#8216;type&#8217; of testing) is defined in requirements documentation or QA or Test Plans. Performance testing is also used to determine the time periods involved for certain operations to take place, such as launching of the application, opening of files, etc.<br />
• Usability testing &#8211; Usability testing is becoming more critical with a higher focus on usability. Usability testing means testing for &#8216;user-friendliness&#8217;. Clearly this is subjective, and will depend on the targeted end-user or customer. User interviews, surveys, video recording of user sessions, and other techniques can be used. This is done ideally through the involvement of specialist usability people.<br />
• Install/uninstall testing &#8211; testing of full, partial, or upgrade install/uninstall processes. Given that the first thing users see is an installer, how the installer works, whether people are able to get clarity, and so on are some of the measurements through installer testing. In addition, the install / uninstall / repair etc should work smoothly.<br />
• Recovery testing &#8211; One does not like to anticipate such problems, but given that crashes or other failure can occur, recovery testing measures how well a system recovers from crashes, hardware failures, or other catastrophic problems.<br />
• Security testing &#8211; Security testing is getting more important now, with the focus on increased hacking, and security measures to prevent data loss. Security testing determines how well the system protects against unauthorized internal or external access, willful damage, etc and may require sophisticated testing techniques.<br />
• Compatibility testing &#8211; Compatibility testing determines how well the software performs in a particular hardware/software/operating system/network/etc environment.<br />
• Exploratory testing &#8211; This type of testing is often employed in cases where we need to have a creative, informal software test that is not based on formal test plans or test cases; testers may be learning the software as they test it, common in situations where the software being developed is of a new type.<br />
• Ad-hoc testing &#8211; similar to exploratory testing, but often taken to mean that the testers have significant understanding of the software before testing it.<br />
• User acceptance testing &#8211; determining if software is satisfactory to an end-user or customer. Similar to the acceptance test described above.<br />
• Comparison testing &#8211; Comparison testing means comparing software weaknesses and strengths to competing products, very important to evaluate your market, and to determine which are the features you need to develop.<br />
• Alpha testing &#8211; testing of an application when development is nearing completion; minor design changes may still be made as a result of such testing. Typically done by end-users or others, not by programmers or testers.<br />
• Beta testing &#8211; Also called pre-release testing, it is the testing when development and testing are essentially completed and final bugs and problems need to be found before final release. Typically done by end-users or others, not by programmers or testers. The advantage is that you can test with users, as well as get verification about software compatibility on a wide range of devices.<br />
• Mutation testing &#8211; a method for determining if a set of test data or test cases is useful, by deliberately introducing various code changes (&#8216;bugs&#8217;) and retesting with the original test data/cases to determine if the &#8216;bugs&#8217; are detected. Proper implementation requires large computational resources.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2008/12/16/types-of-testing/' addthis:title='Types of testing '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2008/12/16/types-of-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Strategies/Techniques</title>
		<link>http://learnsoftwareprocesses.com/2008/12/03/testing-strategiestechniques/</link>
		<comments>http://learnsoftwareprocesses.com/2008/12/03/testing-strategiestechniques/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 19:17:01 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/2008/12/03/testing-strategiestechniques/</guid>
		<description><![CDATA[<p>Some of the testing strategies that need to be kept in mind.</p> <p>• Black box testing should make use of randomly generated inputs (only a test range should be specified by the tester), to eliminate any guess work by the tester as to the methods of the function • Data outside of the specified input [...]]]></description>
			<content:encoded><![CDATA[<p>Some of the testing strategies that need to be kept in mind.</p>
<p>• Black box testing should make use of randomly generated inputs (only a test range should be specified by the tester), to eliminate any guess work by the tester as to the methods of the function<br />
• Data outside of the specified input range should be tested to check the robustness of  the program<br />
• Boundary cases should be tested (top and bottom of specified range) to make sure the highest and lowest allowable inputs produce proper output<br />
• The number zero should be tested when numerical data is to be input<br />
• Stress testing should be performed (try to overload the program with inputs to see where it reaches its maximum capacity), especially with real time systems<br />
• Crash testing should be performed to see what it takes to bring the system down<br />
• Test monitoring tools should be used whenever possible to track which tests have already been performed and the outputs of these tests to avoid repetition and to aid in the software maintenance<br />
• Other functional testing techniques include: transaction testing, syntax testing, domain testing, logic testing, and state testing.<br />
• Finite state machine models can be used as a guide to design functional tests </p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2008/12/03/testing-strategiestechniques/' addthis:title='Testing Strategies/Techniques '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2008/12/03/testing-strategiestechniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

