Welcome Everyone Who:

Wants:

· To do right things right first time.

Does not want:

· To do things without value.

Knows that:

· Software Testing never ends, it just stops.

· Software Quality does not happen by accident; it has to be planned.

Believes that:

· There's always one more bug during Software Testing.

· Software Testing is the art of thinking.

Powered By Blogger

Saturday, March 20, 2010

QA in Startups

Much has been written, about the risks of e-Business applications."Web-time" is a widely acknowledged phenomenon. We all agree that quality is imperative for an e-Business, as all the competition is just a click away. Unfortunately, most of us can agree that a Web startup is not an environment in which quality testing is typically found.

Development is fast and loose. Marketing is pushing to be beat the competition to market.The rules change every day. An e-Business needs to respond immediately to market pressures. And an e-Business cannot afford poor performance or that big revenue drain, downtime.

Any startup or DotCom is a work in progress. Even when the whole company understands and is committed to the importance of quality assurance testing, unexpected events lead to surprises. The key is to keep plugging away at the following tasks:
  • Work Smart
  • Define Processes

I Work Smart

Here's my advice for making the testing organization lean and mean. This is especially critical in an Extreme Programming environment or anywhere the ratio of developers to testers is high.

Evaluate tools. Put as much time as you can into tool evaluation, such as those for automated testing, defect tracking, and configuration management. Identify the vendors who can help you the most, and get as much information from them as you can. Ask fellow testers for their recommendations and experiences. Install new tools and try them out. Select tools that are appropriate for you and your company. It doesn't do any good to buy a tool you don't have time to learn how to use, especially if your testing team is small. You might end up choosing tools that are lesser known but still meet your needs. For example:
  • Depending on your budget, you can use product as expensive as QTP or go with an open source Selenium.
  • For defect tracking you can useTestTrack . It is far less expensive than its competitors, but it is easy to implement and customize. If you are really tight on budget you can use the free Bugzilla.
  • For configuration management, innovative company which produces an inexpensive, easy to implement and learn yet robust tool, Perforce. If you are looking for free tools use freeware, CVS - it lacks some features, but if the development team is small and can work around its drawbacks, it will work.
  • These tools won't necessarily meet your needs - just be open and creative when evaluating tools. Investigate alternatives!

Design automated tests that work for you.

  • Modular and self-verifying to keep up with the pace of development.
  • Verify the minimum criteria for success. Make sure the developers write comprehensive unit tests. Acceptance tests can't cover every path through the code.
  • Perform each function in one and only one place to minimize maintenance time.
  • Contain modules that can be reused, even for unrelated projects
  • Do the simplest thing that works. This XP value applies as much to testing as to coding.
  • Report results in easy-to-read format. Create easy-to-read reports from your test results and post them so that everyone can monitor status and keep the project on track. The project team will gain confidence as they see the percentage of successful tests increases.

In addition, the developers try to design the software with testability in mind. This might mean building hooks into the application to help automate acceptance tests. Push as much functionality as possible to the backend, because it is much easier to automate tests against a backend than through a user interface.

Search the Web for resources. Here are some examples:

www.softwareqatest.com/index.html
Everything from basic definition and articles on how to test Web applications to comprehensive lists of Web tools to links to other informative sites.

www.kaner.com/writing.htm
Articles by Cem Kaner

www.qaforums.com

>Get input about quality from all departments in the company.

>Insist on a test environment that is exact replica of, but is entirely independent from, production. You can't emulate a production load without the equivalent of production hardware and software. Since the production architecture is likely to change in response to increased traffic and other considerations, this is a moving target. The test environment will need to be updated in synch with the production environment. The architecture is key too. If the production servers are clustered, your testing had better be done in a clustered environment. If part of an application runs on a stand-alone machine, it must do so in your test environment. Establishing and keeping up development, test and production environments can be a huge challenge, but it is very important. Even when the entire company is sold on the idea of a proper test environment, there are business and technical reasons (read: excuses) that get in the way of reproducing the production environment in for testing . Don't be complacent, and never give up. Make sure you have the best test environment you can get for each application going into production, and work actively with your information systems team to get the environment you really need. Even small applications can deceive you.

In short: Dig your heels in and refuse to launch until some semblance of a test environment is established. Remember, it is harder to get the test environment once the new application is in production. Make it a requirement of release.


II. Define Processes


>Define quality. Work with marketing and product development to define quality for each product: Should the priority be good, fast, or cheap?


>Enforce the process.

>Innovate! Look for new ways. You have creative people at your company who can help! Get input from as many different groups as you can.

Summary - As You Grow

All companies change as they grow beyond the 'startup' size and environment. As your organization grows, educate new employees about project process and quality practices. Listen to them; take advantage of their fresh outlook and new ideas.Take the initiative. If a gap results from a re-organization, fill it yourself. Quality assurance can be a frustrating job,especially in a Web startup. Pick your battles. Keep striving for better quality. Above all, enjoy the experience!

No comments:

Post a Comment