Showing posts with label Quality Assuarance Engineering. Show all posts
Showing posts with label Quality Assuarance Engineering. Show all posts

Friday, May 21, 2010

Agile testing

Agile testing is a software testing practice that follows the principles of the agile manifesto, emphasizing testing from the perspective of customers who will utilize the system. Agile testing does not emphasize rigidly defined testing procedures, but rather focuses on testing iteratively against newly developed code until quality is achieved from an end customer's perspective. In other words, the emphasis is shifted from "testers as quality police" to something more like "entire project team working toward demonstrable quality."
The Word Agile means "Moving Quickly" and this explains the whole concept of Agile Testing. Testers have to adapt to rapid deployment cycles and changes in testing patterns.
Agile testing involves testing from the customer perspective as early as possible, testing early and often as code becomes available and stable enough from module/unit level testing.
Since working increments of the software are released often in agile software development, there is also a need to test often. This is commonly done by using automated acceptance testing to minimize the amount of manual labor involved. Undertaking only manual testing in agile development may result in either buggy software or slipping schedules, as it may not be possible to test the entire build manually before each release.
In Agile Testing, testers are no longer a form of Quality Police. Testing moves the project forward leading to new strategy called Test Driven Development. Testers provide information, feedback and suggestions rather than being last phase of defense.
Testing is no more a phase; it integrates closely with Development. Continuous testing is the only way to ensure continuous progress.
Reduce feedback loops, Manual regression tests take longer to execute and, because a resource must be available, may not begin immediately. Feedback time can increase to days or weeks. Manual testing, particularly manual exploratory testing, is still important. However, Agile teams typically find that the fast feedback afforded by automated regression is a key to detecting problems quickly, thus reducing risk and rework.
Keep the code clean. Buggy software is hard to test, harder to modify and slows everything down. Keep the code clean and help fix the bugs fast.
Lightweight Documentation Instead of writing verbose, comprehensive test documentation.
Agile testers: • Use reusable checklists to suggest tests • Focus on the essence of the test rather than the incidental details • Use lightweight documentation styles/tools • Capturing test ideas in charters for Exploratory Testing • Leverage documents for multiple purpose

Agile software development


Software development process
Activities and steps
Requirements · Specification
Architecture · Design
Implementation · Testing
Deployment · Maintenance
Methodologies
Agile · Cleanroom ·
Iterative · RAD  · RUP  · Spiral
Waterfall · Lean
V-Model  · TDD
Supporting disciplines
Configuration management
Documentation
Quality assurance (SQA)
Project management
User experience design
Tools
Compiler  · Debugger  · Profiler
GUI designer
Integrated development environment
Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.
The term was coined in the year 2001 when the Agile Manifesto was formulated.
Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
Conceptual foundations of this framework are found in modern approaches to operations management and analysis, such as lean manufacturing, soft systems methodology, speech act theory (network of conversations approach), and Six Sigma.[

 

Thursday, May 6, 2010

LUNASCAPE

LUNASCAPE is the world's first and only triple engine browser. It has been downloaded over 15 million times and it's available globally in 11 languages. Try it yourself the new kind of speed and versatility.


Triple Engine goes Triple Add-on

Triple Engine goes Triple Add-on
Lunascape is now compatible with the expanding array of Firefox add-ons in addition to the already supported Internet Explorer add-ons and Lunascape plug-ins, achieving the greatest degree of extensibility and flexibility among Web browsers. Transferring your add-ons from Firefox is very easy.

Extensible AND Fast

Extensible AND Fas
Lunascape6 achieves the utmost extensibility without compromising one of the fastest speeds in the market. You can browse lightning fast while enjoying ample add-ons. We've also made special effort in ensuring fast launch even with many add-ons.

Simply Refined Interface

Orion skin
A new interface mode, ORION, is added to version 6 as a default. This sleek minimalist interface has all the basic functions and will get you going in no time. You can still customize many aspects of interface to your liking.

Triple Engine Side-by-Side Display

Triple Engine Side-by-Side Display
Our unique Triple Engine keeps evolving. To better support web designers and developers, we have implemented “split tab display”. You can view a web page in 3 rendering engines side-by-side to easily check the browser compatibility.

Triple Engine, Triple Add-on, and Beyond

On top of the Triple Engine, we now support Triple Add-ons and provide you with more advanced yet easy-to-use interfaces. We consider this as an important step towards the unified browsing platform. With Lunascape, you can have all you need to interact with the Web in a single platform that is personalized just for you.

Compatible with Firefox Add-ons

Lunascape is a feature-rich browser that you will find most of what you want without messing with add-ons. However, there are always more and we are open to bring in good stuff. Due to popular request, Lunascape is now compatible with the vast array of Firefox add-ons. You can use them seamlessly with Lunascape's gecko engine, in addition to the already available IE add-ons and Lunascape plug-ins.
For the list of currently incompatible Firefox add-ons, click here.
Firefox Add-ons

Quick and Easy Add-on Transfer from Firefox

Do you already have a lot of Firefox add-ons? No problem. Just follow the simple wizard, and voila, you get all of your Firefox 3.x add-ons into Lunascape 6.
Add-on Transfer from Firefox

Extensible and Fast

Lunascape6 achieves the utmost extensibility without compromising one of the fastest speeds in the market. You can browse fast while enjoying ample add-ons. While it is well known that having too many add-ons slow down the speed, we have worked hard at mitigating that. Our test shows that Lunascape's launch speed is faster than Firefox with the same set of installed add-ons.

Benchmark


LaunchSpeed

Use Firefox Add-ons Even More Effectively

Smart Add-on Organizaer

Did you ever have a problem with too many add-on icons taking over your toolbar? Lunascape prepared a special add-on organizer that neatly packs the icons away through automated categorization.
Smart Add-on Organizer

Enhanced Floating Sidebar a la Desktop Gadget

The revamped floating sidebar can be really handy. Not only can you use multiple Firefox sidebar add-ons at a time, you can use them separately from the browser or even in another monitor. It's like desktop gadget.
Floating Sidebar

New Minimalist Interface - ORION

We have added a new mode that is sleek and easy-to-use. Yes, we heard you loud and clear. No more clutter.
ORION

Triple Engine Side-by-Side Split Tab Display

Now that you can operate tabs with various split displays, it is easier than ever for Web designer and developers to check their creation side-by-side to ensure browser compatibility.
Cascade Tab Display

Triple Engine API for Cross Browser Extension

Beyond unifying 4 major browsers into a single platform through triple engines and add-ons, we have extended APIs to further support triple engine, making it possible to develop cross browser extensions. *Plug-in development instruction in English will be prepared shortly.
 

Browsers are not made equal, but you can have it all with Lunascape

You spend many hours of your day doing something on the Internet, but may not have thought about what a browser can do and which browser is right for you. That’s ok, you are not the only one. In fact, many people use a browser that came pre-installed with the computer, just because it’s there or thinking it’s all the same.
In reality, however, each browser is different in its own way. At Lunascape, we take a different approach. Rather than competing with each one of them, we combine the best of all browsers.
Lunascape is the world’s only triple engine browser. What this means is that you can have the best features, performance, and speed of, Windows Internet Explorer, Mozilla Firefox, Google Chrome, and Apple Safari all in one browser and can view any website in an optimal way without a need to open another browser.
Yeah, that’s right. Lunascape = IE (Trident)+Firefox (Gecko)+Chrome・Safari (Webkit)
On top of that, our technology achieves one of the fastest browsing speed and provides you with full of features and customizable options. It is light, snappy, and fun.
Lunascape has been downloaded over 15 million times in our home base Japan, and we are rapidly growing users all over the world since the launch of multilingual versions.
No more oh-so-slow moment. No more messed-up page display. No more juggling multiple browsers. Your internet experience is a lot better with Lunascape. Experience it yourself, the whole new speed and versatility.

:: Browser Compatibility Check for Internet Explorer Versions from 5.5 to 9 ::

IETester is a free WebBrowser that allows you to have the rendering and javascript engines of IE9 preview, IE8, IE7 IE 6 and IE5.5 on Windows 7, Vista and XP, as well as the installed IE in the same process.
New in v0.4.3 : Added option to run IE9 tab !
This is an alpha release, so feel free to post comments/bugs on the IETester forum.
Requirement : Windows 7, Windows Vista or Windows XP with IE7 minimum (Windows XP/IE6 config has some problems and IE8 instance do not work under XP without IE7)
Note for IE9 : IETester installer does not include IE9 files, so you will need to install IE9 preview and copy files manually : See How To install IE9 under IETester (IE9 Preview requires Vista SP2 or Windows 7).
Download IETester v0.4.3 (27MB)
(IETester v0.4.3 zipped intaller for people unable to download .exe files due to proxy limitations)
(You can download previous versions from the ChangeLog page)

Known problems and limitations :

  • The Previous/Next buttons are not working properly
  • Focus is not working properly
  • Java applets are not working
  • Flash is not working on IE6 instance in user mode : A solution is to launch IETester as admin user and Flash will work.
  • CSS Filters are not working correctly in user mode : A solution is to launch IETester as admin user and CSS Filters will work

Companion.JS

(pronounced Companion dot JS or CJS) is a Javascript debugger for IE. The current version is 0.5.3.
Companion.JS adds the following features to IE :
  • Detailled javascript error reporting (call stack and real file name where the error occured).
  • "Firebug"-like Console API feature.
  • Javascript console feature useful to inspect javascript objects at runtime.
  • A toolbar icon to open the Companion.JS panel. 
To be able to use Companion.JS you'll need to have a Microsoft script debugger installed. There are many cases where you already have this component install. To check if you need it see Installing Companion.JS for details.
Here are some screenshots :

Detailled Error reporting
In the top-left corner the notifying panel which pops-up when an error occurs in the current page if the Companion.JS panel is not open. At the bottom of the page...

 
Console API feature

IE Tab :: Run Internet Explorer on Firefox

Everything runs very fine with firefox. But, whenever I wish to read any non-English blog, or some parts of Microsoft website, I had no other options than blaming firefox. Asian languages can be viewed on firefox by installing support for Asian fonts on windows, but Microsoft, not at all. IE Tab is such a firefox add-on that can convert your firefox temporarily into Internet Explorer.

The most important feature is that you can run one of your tabs as firefox and other one as IE. Also, you can download Microsoft updates using the same add-on with you firefox running in IE mode. Here are the features of the add-on.
By default, a status bar icon will be added to your firefox. If you want, you can add an icon to your tool bar too. A mouse over snap of the status bar icon is shown in the snap. A left click on the snap will switch rendering engine of the current page. If your current page is run as on firefox browser, clicking turns it into IE and vice versa. Right clicking will open the file filter options. You can add site to this filter to make IE as a default for such sites. And center click, usually clicking on your mouse scroll button will open the same page in a new tab on other engine. By default, Ctrl+Click on the status bar icon opens the same page in the actual IE browser [not IE Tab on FF].

ietab-mouseover.gif
You can perform the above operations even by right clicking on the tab or page. The snaps below show the extra options available on menu when you right click. By right clicking on tab, you get options to switch rendering engine or to open the tab on external application. The same options can be obtained for following links when you right click on different links. My opinion about this add-on is totally YES YES. A nice one to have. Now, you can forget what Internet Explorer is….
tab-rightclick.gif
link-right-click.gif

Sunday, March 14, 2010

Bugzilla

What is Bugzilla?

Bugzilla is a "Defect Tracking System" or "Bug-Tracking System". Defect Tracking Systems allow individual or groups of developers to keep track of outstanding bugs in their product effectively. Most commercial defect-tracking software vendors charge enormous licensing fees. Despite being "free", Bugzilla has many features its expensive counterparts lack. Consequently, Bugzilla has quickly become a favorite of hundreds of organizations across the globe.

What Does Bugzilla Do?

  • Track bugs and code changes
  • Communicate with teammates
  • Submit and review patches
  • Manage quality assurance (QA)
Bugzilla can help you get a handle on the software development process. Successful projects often are the result of successful organization and communication. Bugzilla is a powerful tool that will help your team get organized and communicate effectively.

Bugzilla is Hard to Beat

Bugzilla is...

Why Should You Use Bugzilla?

Many companies are finding that Bugzilla helps reduce downtime, increase productivity, raise customer satisfaction, and improve communication. Bugzilla can also help reduce costs by providing IT support accountability, telephone support knowledge bases, and by keeping tabs on unusual system or software issues. Bugzilla can do the same for your organization, regardless of its size.

Possible Uses

  • Systems administration
  • Deployment management
  • Chip design and development problem tracking (both pre-and-post fabrication)
  • Software and hardware bug tracking
  • IT support queues
See more

Other QA Resources

http://websiteoptimization.com/services/analyze/
http://www.websitepulse.com/

http://www.webresourcesdepot.com/9-free-and-open-source-bug-tracking-softwares/
http://dotnetguts.blogspot.com/2006/12/mantis-free-web-based-bugtracking.html
http://www.bughost.com/
http://www.bugzilla.org/about/
http://www.aceproject.com/

Monday, March 8, 2010

Functional Testing in PHP using Selenium IDE

What a title, eh? Yeah, it might sound a bit like buzzword after buzzword, but functional testing in PHP is a serious topic - sometimes it means the difference between spending fifteen minutes doing a bug check and several hours depending on the size of your site. Now, it’s important to mention that functional tests are different from unit tests - we’re not going to be testing individual functions or methods, but rather we’re going to be making sure that the site works the way our users expect it to from their point of view. This means that we can check our site for error messages and verify that they pop up when they should, and stay hidden when they shouldn’t.

What’s Functional Testing?

Functional testing is fairly easy to define when you have an idea of what unit testing is, because they’re different edges of the same sword (both of which can cut you given that you don’t use them properly). Unit testing is the practice of sitting down with your code and asking, “What can I put into this function/method and what should it give me back?” You then write a bunch of tests to make sure that the function or method returns the proper values with good data that you give it, and fails when you give it bad data. Functional testing is similar in that we’re checking a bunch of “functions” for what we put in versus what we get out, though this kind of testing is a bit more “big picture” than that - we’re testing how the user is going to be interacting with the program. For this line of testing, checking for improper input is usually more important than checking that the “good” input is working, which might not exactly be the case in unit testing.
In PHP, functional testing equates to a few steps.
  1. Identify “stories” of what the user can do - “The user can change their password” or maybe “The user can perform a keyword search.” It doesn’t have to be a super-detailed or difficult task.
  2. Break down that “story” into a series of actions. Sometimes this means sub-stories, and sometimes it’s as simple as “The user clicks on the link to the search page. The search page loads. The user types in their query. The user clicks the ’search’ button. The user finds their results.”. Sub-stories would define another test to write, since you want to test your web application for small enough details to make the tests useful. If you test your entire site all at once, it’s likely going to be difficult to identify what went wrong.
  3. Write the tests - we’ll be showing you how to do this in just a little bit by using the Selenium IDE Firefox extension, but there are quite a few tools that could also help you perform these tasks.
  4. Run the tests. In fact, do it a couple times. Run the test every time you make a change that might have affected the section you wrote the test for. This is where the real value of functional testing comes in - you don’t have to go check that your entire site still works by hand when you changed that database connecting script. Anything in your site that your code change may have affected should be covered by the tests you’ve written, so you know exactly what’s not working anymore.
The Tools
For PHP functional testing, there’s nothing better to me than OpenQA’s Selenium platform. This entails a suite of different tools with tests that can be written in a multitude of different languages. The two I use most frequently are Selenium IDE (the Firefox extension), and Selenium RC. Go ahead and download them both - though make sure to bookmark this page before you reset Firefox so you can come back to my wonderful world of functional testing.
Building a test in Selenium IDE
For this brief introduction to writing tests, we’re going to do a simple Google query. Our test story would be something like, “The user can perform a search and view appropriate results.” Easy, right? So let’s get started.
  1. Install the Selenium IDE Firefox extension from the link above.
  2. Go to “Tools” -> “Selenium IDE”. You should see this screen:
    The default Selenium IDE screen
  3. Stop recording by pressing the big red circle, and open up a new tab. Go to http://www.google.com and start recording again.
  4. With Selenium IDE in “Record” mode, click on the search box and type in “hello world” or whatever overused internet meme that comes to mind, then click the search button.
  5. Upon finding the results, highlight any phrase you find on the page that you think should be there (if you searched for “all your base”, highlight “are belong to us”). Right click your selection and you should see that Selenium has added some new options for you, one of which being “verifyTextPresent”. Go ahead and click on it.
    Selenium IDE right click menu
  6. Stop recording. This will be our entire test. I bet you’re sitting there thinking, “Wait, that’s it? That’s stupid!” It’s not stupid! It’s really that easy. The point is that we’ve just proven that the search function works. Go ahead and hit the “Play” button to prove it to yourself. If everything comes up green, then the test passed and you can move onto the next test (so long as you didn’t use ‘assertTextPresent’ instead). The entire purpose of these tests is to string them together in what we call a “Test Suite” that can test all of the functionality of your site without you having to lift a finger. Save this test somewhere as myTest.html or some other cliche filename.
    There’s a distinct difference between ‘assertTextPresent’ and ‘verifyTextPresent’. This is because an assert will stop the test if that particular check fails, while a verify command will note the failure and attempt to continue. There are different purposes for both, though I find that I personally use verify commands much more often than asserts.
Using Selenium RC to automate a Selenium Test Suite
So we have a little test now. Maybe you’ve created a couple because you’re insane and making test is that much fun! Uh huh.. Anyway, you’re going to need a way to put all of these tests together into a package that runs on its own. We call this package a “Test Suite”, and Selenium IDE won’t cover doing more than one test at a time. We need a new tool for this, so I hope you’ve downloaded Selenium RC from the link above.
First thing’s first - you need to make sure you’ve got Java Runtime Environment 1.5 or above installed on your system. You can check this by opening your command line console (Start, Run, ‘cmd’) and typing the command “java -version” and hitting enter. If it comes back with something along the lines of “java version 1.6.2″ then you’re all set. If it doesn’t understand what you’re asking it, or you have an older version of the JRE, you can download the newest version here.
  1. Before we can run tests, we need actual test suite code. It’s not obvious from the Selenium documentation what this looks like, so I’ve adapted a test suite from the Selenium Core package to use as an example that you can download here (Right click, save as - rename it to .html instead of .txt).
  2. Copy that test suite and your myTest.html file to wherever you extracted your Selenium RC package to. Within the Selenium RC package should be several folders, one of which contains the term “selenium-server”. This is where you ought to put your files for now - just for this test. Later on, you’ll probably want to become a bit more organized with it.
  3. Open up your command line and cd to your Selenium server folder you just put those files in.
    Mine’s “C:\Selenium\selenium-server-0.9.2″.
  4. Run the following command on your command line:
    java -jar selenium-server.jar -htmlSuite
    “*firefox” “http://www.google.com”
    “c:\Selenium\selenium-server-0.9.2\TestSuite.html”
    “c:\Selenium\selenium-server-0.9.2\results.html”
    What’s going on here is that we’re telling java to run selenium with an htmlSuite. That htmlSuite option takes parameters for browser, base url (the place to start the tests at), the absolute path to your test suite, and an absolute path to save results to.
  5. The test suite should complete, and you ought to have a new file in your Selenium server folder called “results.html”. Open up this file and it should look a bit like this:
    Selenium RC Test Results
This test suite only contained one test, but adding them are as easy as duplicating the table row in the sample test suite above and changing the path to whatever new test you want to run.
Applying this to practice
As a PHP developer, I find that some projects I’m assigned to require that I work on many fragile houses of cards wherein changing one little piece of code can break something on the other side of the site. Functional testing for these PHP scripts becomes not only useful, but rather important and required. Debugging your site with a functional test suite is about eleventy billion times more time efficient than doing it by hand several times a day. Build yourself a detailed test suite and check every form or action you do for both pass and failure cases - and run them after any significant changes, preferably daily. It will seem like a waste of time at first, but I guarantee you that the quality of the code you write will be better and you won’t be stuck with half-broken sites nearly as often.
How about you? How do you see functional testing affecting you, and if you’ve put it in practice, how’s it helped or hurt you?

MyUrduStuff

Search This Blog

My Urdu Stuff