It is very important to define which operating systems and on which browsers the application should be tested. Once you define the browsers on which the system should work, make sure you check all functionality on all browsers. If there is not enough time/budget, you can check the design and the main functionalities of the site with all browsers. Most of the cosmetic problems generally appear in Internet Explorer 6.0. We like to use IETester (http://www.my-debugbar.com/wiki/IETester/HomePage), the application supports all Internet Explorer versions.
For comparing the design of a site on different browsers, there is one tool named Adobe BrowserLab that works great. With it you can compare a web page in one browser next to a page in another browser or overlay the pages entirely. The tool supports the following browsers:
The best testers have the most bug reports resolved. A good bug report is one that assists in resolving an issue. Ensure that your bug reports can easily be reproduced by making them as clear and concise as possible. Here are several steps that you can follow:
| Reproducibility | Definition |
| Always | The defect appears at all times. |
| Sometimes | The defect does not appear every time. |
| Random | The defect occurs sporadically. |
| Not reproducible | The defect cannot be reproduced again. |
| Severity | Description |
| Block | When a bug stops the user from working with some aspect of the system. These bugs have the highest priority. |
| Crash | When an error page appears. Sometimes this happens when the developers forget instances of the system. |
| Major | When a bug has a major impact on the functionality of a large aspect of the software. |
| Minor | When a bug causes major harm to some piece of functionality, but does not impact many aspects of the software. |
| Tweak | There is no problem with the feature, but the way it is working should be slightly changed (tweaked). |
| Text | A problem with the text and/or labels of the software. Usually typing mistakes or labels that don’t match the specifications. |
| Feature | This is a new feature that should be implemented, in most cases it is not a bug. The tester can be asked to add such a report in order to inform the developers about a new feature that should be added to the software. |
Be sure to include:
These days, more and more people in the IT business work with clients or have coworkers that are not from their own country and who communicate in another language. No matter how well you learn to understand a language, there still can be misunderstandings that can lead to problems of all types. It helps to have a pre-planned method and agreed terminology to report bugs.
Start to test with the idea that there should be bugs. There is not a system that does not have a few errors. This mindset will help you to be more focused on finding problems.
Sometimes, due to a variety of reasons, users do not enter something as they are intended to, press buttons out of order, or otherwise misuse the software. It is important to try to account for these situations.
If you have a registration form to test, try doing things OTHER than fill out the form. It was built to accept data, so try not entering anything and pressing the button for registration, enter invalid data such as email that does not have the “@” symbol or very long zip code or name. Use boundary cases (inputs at or just beyond maximum and minimum limits) to attempt to receive errors. There are symbols that can break the database or break the request from the database if they are entered and saved in the system. Such examples are the percentage (%) symbol, inverted commas(“”), and two minuses (–) together.
If you have a combination of actions that need to be done one after another, change their sequence. Make sure that you have checked all situations that you can think of, according to the system you test.
The above tips should not turn the QA process into a highly critical and aggressive testing period. Do not test and report bugs for unrealistic situations. Make sure you have understood the specification for the application and do not tease the developers with unrealistic bugs.
Think about the users, question yourself. Is this system user friendly? Can you easily navigate the program? Is the text within the system clear and understandable? Are the error messages helpful? There are a lot of examples in your own personal life. Think about when you sit at home on your personal computer – which sites or programs do you prefer? Why? Which you do not like? Why? Usability is always the answer.
Sometimes bugs are shared verbally with the developers. This can work against you. Make sure that you keep written documentation of all your discussions about issues or anything concerning a project. The best practice is to have reports on every issue you find. Sometimes when communicating bugs verbally, many testers complain that the developers take the credit for their work or that managers who calculate the productivity of a tester by the number of bugs he/she reports do not give full credit.
Communication with your team members is just as important as knowing good techniques for testing and is key for the successful achievement of a quality product. You need to be flexible. During your work you will meet junior developers that have never worked with testers or people who will disagree with your findings. Some developers just need to get used the fact that they have bugs in their programs. This is normal. You need to persuade them that a tester for a developer is not like a critic for an author. Help them understand that you are a team and you both want the same thing. Prove your statement with facts and knowledge of the system and specifications.
Black box testing uses external descriptions of the software with no knowledge about the internal structure. If you want to become competitive and help further your career, you should take a peak at the source code and ask questions of the developers. For cosmetic issues, you can read and learn about HTML and CSS and report specific CSS styles/areas of a web page that need fixing. Some tools that can help are the Web Developer Toolbar and the Firefox Add-on, Firebug. Some knowledge about Databases also will be helpful, this way you can more clearly understand the processes in the system and the reasons why some bugs appear. With more knowledge of how the software works, you will speed up the developer’s work and make yourself more efficient in the process.
Approving a high quality product is a hard and complicated process. Learn from your mistakes and from the bugs you found. Keep good communication with your coworkers, defend your position in a positive manner, keep learning, and continue testing.
Outspoken Media just interviewed 11 famous SEO experts to answer 11 great questions about link building. We saw that Dori had gone through and answered these link building questions on her blog, so we thought we’d do the same. We hope you find these answers useful to your own link building campaigns.
1) What are a few emerging link tactics that you’ve seen in the past 12 months providing tremendous value to sites/pages? Can you give a specific example or two?
I haven’t found any new link tactics in the past 12 months that provide tremendous value. All the great tactics that truly provide tremendous value have been around for a while.
2) The SEO industry has become so stingy with linking to quality content to the point that many people who used to share a lot of it simply don’t bother, as it is not worth the cost of doing so. Is this a trend which spreads? Are we canaries in the coal mine, or is this just an issue impacting the SEO niche because it is far too saturated? What can Google do to encourage organic linking on the WWW (outside of nepotism, hype, spin, misinformation & ego-baiting)?
We don’t like to look greedy, so we don’t perform the stingy acts on our company web site. However the reason we created SpyderMate initially was as a linkbait tool. So for SpyderMate we don’t freely post external links. We feel it’s justified there however because we are offering a free and very useful service to the community.
3) What are the criteria for the “perfect link”?
The perfect link has the following attributes:
a) High authority domain & page
b) Minimal amount of external links on same page
c) Web site is very relevant to yours
d) The anchor text matches a keyword you are battling for
e) It’s located within the obvious content section of the web page
f) obviously it’s not tagged rel=”nofollow”
4) How do you go about creating a link marketing plan that will A:) Get tangible search results in a 6 to 12 month period and B:) Create sustainability for the website you are creating the plan for (i.e. keeping the links clean and adding links with long term value)
Well first you find out what keywords they should be targeting. Then you go through all their competitors ranking for the keyword phrases and scour all their backlinks. Once you make sure you got a link from every backlink they have possible then you move on. Next you target the more lower hanging fruit longtail keywords through your list of standard directories that you submit to. This helps re-enforce your short-tail keywords with long tail variation power. After this you go for the seriously powerful links. These are your premium directory listings, your serious linkbait web sites and your powerful friend’s web sites. These sites target the more generic short-tail keywords that help raise all your longtails associated around them. The maintain sustainability you consistently create great new content and linkbait to create a consistent flow of natural inbound, quality, relevant links.
5) If you could choose a link on a lower authority page that would provide a moderate amount of targeted traffic or a link on a higher authority page that would provide absolutely no traffic – all other attributes being equal – for ranking benefits on the site you’re developing links for, which would you choose and why?
This depends entirely on how relevant and how well converting the lower authority page would be. It also depends on current rankings, whether or not there is a keyword I could boost my rankings for that would beat the conversions coming directly from this link. So if i had a site with a low conversion rate that had a high payout I would go with the lower authority link. If I had a site with a high conversion rate and a lower average payout I’d go with the high authority link.
6) Do you feel that you can conserve pagerank or that it’s still worth the effort to sculpt your links, by limiting the number of links on a page, creating them with JavaScript, passing them through a blocked page or using nofollow?
I believe you can, but also don’t believe it’s worth the effort, especially on a site that you’re constantly updating. There are other tasks you can spend your valuable time on that provide more value to your web presence.
7) Please discuss what link deprecation is and what impact it may have on a link building campaign.
I believe link deprecation to be the result of poorly built links primarily. The only reason this should occur is due to the age of the links. Actually losing links only happens to links that were easily attained and therefore easily lost. The best links are very hard to come by and last the test of time.
8) Do you think search engines are trying to find a way to depend less on link popularity and more on other algorithmic/social media factors?
I believe they are, but I don’t think it plays much of a role currently. I also think basing searches on social media is not viable for many categories of web sites. The fact that social media sites like Facebook are social make your likes inherently based around your friend’s general interests as well as your own. Even though I’m heavily interested in SEO, it does not mean I’m going to bother liking SEO articles I find interesting left and right because I know it will annoy my friends. I want to share things that I know my friends will also be interested in. This is not a system that a true search engine can be built upon. A search engine can however leverage this information is done on the right level.
9) How much do you stress internal linking on your own or clients’ sites? Do you have a quick rule of thumb or strategy to maximize the effectiveness of internal links?
I’ve found that emphasizing your traffic generating pages through inbound links is critical. Using carefully placed inbound links to associate relevant topics and re-emphasize targeted anchor text is extremely helpful, especially for that highest level page in the link scheme. Enough said.
10) What’s a successful link development strategy many overlook or dismiss?
Linkbait. People tend to dismiss serious linkbait strategies because of the time/costs associated with them. They tend to think other efforts are easier, but nothing generates those truly unique, critical, powerful links like well done linkbait.
11) What have you been most WRONG about over the course of your link building/SEO career?
I was most wrong about how effective thousands of links coming from the same authoritative web site, with different anchor text, coming from different pages, linking to different pages were at lifting my rankings. Domain diversity is absolutely crucial. I’ve learned that one great warrior is better than thousands of mediocre warriors.
Facebook Application Response Timeout
Have you ever gotten the message The URL [your application url here] did not respond. even when everything seems to be working on your side?
One probable reason is that Facebook has a certain response timeout – approximately 12 seconds. If your page fails to respond in this time, Facebook will leave it and display an error message. I used a few simple tricks and managed to work around this issue. Try them out:
Make the Facebook application lighter:
Speed up your Facebook app:
AJAX calls have the same timeout issue (although the timeout here is approximately 13 seconds). Additionally all AJAX calls pass through the Facebook server which slows them down. The result is the following JavaScript error: “error”:1349011,”errorSummary”:”Failed to fetch app Ajax” .
I found a simple solution to avoid it: Use FBJS AJAX and a timer to abort the request when it reaches the time limit and send a new one.
Facebook API Response Time and Error Count
The Facebook API itself sometimes has latency issues causing your app pages to be fetched slower, increasing the risk of reaching the response timeout. Errors in request to their servers are also known to happen. You should always be informed about the Facebook Platform Status.
Syntax Limitations in FQL
The Facebook API allows you to make your own queries using a query language similar to SQL. There is a list of tables you can access (you can only view information; you are not allowed to update the information in any of these tables). You can easily make your own queries, but you should keep in mind that you cannot do a number of normal (for SQL) things such as join tables, use ‘distinct’, ‘limit’, ‘group by’, etc., or use “from” against more than one table. You can easily do these operations in the code, however. Combined with the use of the multiquery functionality, things should work almost as fast as if you were using pure SQL.
Facebook API Changes
As you may guess, the Facebook API still is in development, so you should keep yourself up to date with the constant changes in its platform. Some of these changes are potentially breaking, some features are being deprecated or changed, and some cool new things are being added. It is useful to read the Facebook Developer Roadmap to be informed for the specific changes that have been planned and when to expect them. Here are some of the upcoming ones:
Until recently, some of the API changes, even when prepared for them, had unexpected effects on some applications (in some cases, bugs appeared) and there was nothing we could do about it.
In late February, Facebook introduced a tool to help us prepare for the changes – the Migrations tool. When Facebook announces a new feature or fix, you can first do some testing before going to the Migrations tab in your application settings and choosing to enable it (it is disabled by default).
In conclusion, I can assure you that whatever problems you may stumble upon there is a huge community of developers willing to help you out. Just go to the Facebook Developers Forum. There is also lots of documentation and useful tips in the Facebook Developers Wiki. Have fun!
Reasons to backup:
Most modern servers use RAID for redundancy. This usually means that when you put something on the server, it gets written to two hard drives. In the event that one hard drive goes down, you can replace it with no disruption to service. This is an example of redundancy, and will help protect you against a very specific type of failure. Some systems, like Google, will have multiple servers, allowing an entire server to go down without disruption to service. It is important to have redundancy so that services to your company or to your clients are not disrupted, but it is not a replacement for backups.
Backups involve creating a second copy of your data. Often times, multiple backups from different points in time will be maintained. Restoring a backup takes time, and can result in disruption of service. Backups help protect from user errors like accidental deletion and software errors that could corrupt data. Having more than one copy of your files is very important for recovery from these errors.
If you host your own email, this is probably one of the most important things to backup. If your email is hosted, see if you can backup your email, or see what your provider is doing to backup your email.
If you have a document management system or some other type of server that you store your files on, this is also a very important group of files to back up.
If you have a lot of people, it can be very difficult to back up each desktop that you have. A better solution is to make sure that all important files are stored on a server so you only need to back up a single server. You should have a plan in place for what happens when a desktop goes down in order to reduce the impact on the productivity of the person who was using it.
If your website collects data, or if you have any web applications that collect data, make sure that you back up the databases and other information stores. SQL databases have backup programs that can be run. You can set your operating system to run the backup regularly. Also, if there is space where users can upload files, make sure to back up the files as well.
Custom software can be expensive to develop. Make sure that you have a backup of any custom software that you have had built so that you can easily deploy it again if you need to.
You may have documents or other information that is hosted on the internet. If at all possible, you should take your own backups. If you cannot take your own backups, how reliable is the service provider? Think carefully about each of the services that you are subscribed to. These could be Salesforce, Google Docs, email providers, Online stores (do you need your amazon.
Each company produces different types of products. Make sure that you go through the list of products that you have and ask yourself what would happen and how you would recover if you lost some data. Make sure to think about digital components that are created to support physical products.
The number of backup programs that exist and techniques that are available are too numerous to count, so I will only cover a few concepts.
It is a good idea to have a copy of your data locally and a copy of your data offsite. The offsite backup is important in the event that your office is destroyed. The location of the offsite backup could also be destroyed, so having an onsite backup will help protect you against that. Another reason to keep an onsite backup is that if you need to restore an item, the backup is immediately available.
Human memory is flawed, people take vacations and sick time, and staffing changes. If your backup is automated, these events will have a smaller impact on your backup system. An automated backup system can grab all of your data every night, and push it to an offsite location over the internet or a T1 pipe. There may be parts of the backup that must be done manually, like changing media, or a few parts of the backup that are difficult to automate, but the more automatic it is, the better. Still, make sure to check it periodically to make sure that it is still taking the backup and you are not getting errors.
Depending on how much you need to back up, you may want different types of media. Tape drives are popular for large quantities of data. CD or DVD media is a cheap way to back up small amounts of data, but make sure that you get high quality media, and check it from time to time to make sure that it is not deteriorating. Hard drives are very convenient since they are rewritable. Keep in mind that hard drives fail. Using RAID for redundancy is a good way to help protect yourself from hard drive failure.
After you have created your backup system and are making sure that it runs, make sure to test it by restoring data from the backup. If you cannot restore a backup, it is not really a backup.
If you are backing up confidential or sensitive data, make sure that the backup is at least as secure as the data that you are backing up. A compromised backup is just as bad as the data being compromised since you have a copy of everything. If the backup is encrypted, make sure that enough people have the key, and that the key is backed up somewhere. If you encrypt the data and lose the key, you lose the backup.
Make sure that you always know what backup is current, what backup is old, and when you’ve taken the backups. Your software may take care of this for you. If it does not, putting dates on the folders, or a file with the information within the folder can be good ways to keep organized. You also need to know where it is going and how to restore it. Make sure that this is documented in case the person who built the backup is not available when a restore is needed. You can also streamline the backup process by making sure that the files that need backing up are organized in as few places as possible.
Make sure that multiple people know where the backup is and how to restore it. It is a good idea to have some documentation on the backup system, how the backups are created, any manual steps and when they need to be performed, and how to restore each component of the backup, either fully or partially.
Virtual machines typically have a way to make a copy of the entire machine. This can be taken advantage of to backup an entire system from all of the software that is in stalled to the data files that are on the machine.
rsync is used to copy files from one place to another, optionally over the network or internet. All data transfers are encrypted. When files are copied, only the files that have changed are copied, reducing the amount of bandwidth required for most cases. rdiff-backup is similar, but it will keep incremental backups making it so that you can revert to a previous version of your backup. To save space, files are only saved twice if they have changed.
dd can make a copy of a hard drive. This can be used to make an image of your operating system hard drive from time to time. If you ever need to restore, you can reload the image to the drive, and all of your software will be ready to go.
There is enough backup software out there that I could not hope to cover all of it. Look at your needs and find the group of software that fills your needs.
Make sure you think carefully about why you are backing up your data. Your reasons for backing up your data will have an impact on how you back it up. What would happen to you or your business if you lost some or all of your files? Who is going to be able to restore your files?