Sunteți pe pagina 1din 17

Designing System Test Cases and Scenarios

Craig Borysowich Jul 4, 2007 | Comments (3)

inShare 1 The purpose of the system test is to ensure that the customer's documented requirements are met, in preparation for acceptance test. Test cases and scenarios are designed to accomplish this purpose. PREPARING THE TEST CASES AND SCENARIOS Maximize Efficiency The preparation of the test cases and scenarios is a tedious and time-consuming task. Use the following guidelines to maximize efficiency in completing this process: Keep information in one location only, to maximize re-use and minimize the effect of changes. Preparation Steps To prepare the test cases and scenarios for each business process, follow the procedures in the Test Plan and complete the following steps: identify the business scenario types to be tested, identify test cases for each requirement, create test scenarios that incorporate all of the test cases, Complete steps one time only to avoid redundancy and extra work. Complete as many steps as possible, as early as possible.

document the test script that includes the system entry information necessary to test the scenario and the expected result in terms of the system, after each step, (i.e., identification of the business scenario types, creation of the test cases, creation of the test scenarios, and documentation of the test scripts), review the information to ensure accuracy and completeness. Identify Business Scenario Types Identify the business scenario types, which are the situations that occur in the real business world. A business scenario type is a typical real life circumstance that is handled by the system being tested. A business scenario type can represent various situations, (e.g., a simple situation, or an exceptional situation, that requires complex processing). For example, a simple business scenario type for a banking system is a bank customer with a savings account, with a starting balance of $1000.00 and one savings transaction per month; or for a welfare system a simple business scenario type is a single-parent household with one child and no income. An example of an exceptional business

scenario type for a banking system is a bank customer who opens a two-year certificate of deposit and withdraws the funds early; or for a welfare system, a household that applies with a single parent who later marries and becomes a step-parent household with income. A sample of business scenario types illustrates the process. Identify Test Cases For each documented and approved acceptance requirement, identify the test cases using Preparing Test Cases. Create Test Scenarios For each of the business scenario types, create a test scenario that consists of as many test cases as possible. Include only the test cases that can occur for that business scenario type. For example, the business scenario type with a bank customer with a savings account, with a starting balance of $1000.00 and one savings transaction per month, would not include any test cases applicable to a checking account. During this process, you may need to create additional test scenarios to accommodate all of the test cases. To ensure the test scenarios include all of the test cases, map the test case conditions to the scenarios. For example, use a test case coverage matrix, with the business scenario types in the left hand column matched to the test case conditions across the top row. In the row for each business scenario type, mark each of the tests that will be included in the test scenario. Plan the order of the test cases within the scenario carefully. Items to consider include: Arrange the test cases into the scenario in an order that allows the data produced by the system, as the result of one test, to be used as input to the next test. Order the test cases so that the scenario follows a path that is typical of the real business world. Take into account any functional dependencies or priorities that may affect the order. Document the test scenario on the test scenario summary template as illustrated in the test scenario sample by: identifying a unique identifier, (e.g., a scenario number), identifying the business scenario type,

listing prerequisite test case numbers for any tests that must be completed successfully, prior to tests within the scenario, listing the test case number for each test case, in the order in which the tests will occur. Create Test Scripts Once the system construction is known, use the test scenario summary as a guide for creation of the test script. Include the following in the test script:

Instruct the tester on what to do in terms of system input. For example, prepare a step-by-step narrative (e.g., enter Mason, John in the name field on the Name screen) or documentation to support the data input process, (e.g., screen samples with the appropriate data filled in). Include every step necessary to establish the condition, even if there is no test attached. Identify the timing of the action, (e.g., the simulated date on which to take the input action and the simulated date on which the expected result is to be reviewed, or for cycle testing, scenarios might be arranged into logical days, weeks, months, and years over an actual two month period.). Identify the expected result in terms of the system output. For example, the expected result can be represented in terms of narrative (e.g., an edit message "not known to system" is displayed on the Name screen) or documentation (e.g., screen samples or reports with the appropriate data filled in). For each test case condition, provide a space for the documentation of the actual result, which will be completed when the tests are conducted. Use the test scenario summary as the face sheet for the test script.

The test scenario sample provides an illustration of a prepared scenario, including the test script. Review the Tests Use the procedures defined in the Test Plan to conduct reviews after the completion of each step, (i.e., review the types of business scenarios, the test cases, the business scenarios, and the test scripts). Tips and Hints Carefully consider the selection of simulated dates to be used for the test cases to avoid confusion with the current calendar dates; e.g., choose dates far in the future. Use the Project Encyclopedia to store the test cases and a relationship defined to link the test cases to the scenarios. Use an identifier on the Test Case Coverage Matrix, such as redline or bold, to indicate that a test case has been completed successfully. It is a good strategy to execute a number of test scenarios that include common prerequisite tests, before proceeding with other scenarios. For example, ensure that information can be added to a system, before testing changes to information.

How to Report Bugs Effectively

by Simon Tatham, professional and free-software programmer [ English | Portugus | | esky | Dansk | Deutsch | Espaol | Franais | Mag yar | Italiano | | Nederlands | Polski | | ]

Introduction

Anybody who has written software for public use will probably have received at least one bad bug report. Reports that say nothing ("It doesn't work!"); reports that make no sense; reports that don't give enough information; reports that give wrong information. Reports of problems that turn out to be user error; reports of problems that turn out to be the fault of somebody else's program; reports of problems that turn out to be network failures. There's a reason why technical support is seen as a horrible job to be in, and that reason is bad bug reports. However, not all bug reports are unpleasant: I maintain free software, when I'm not earning my living, and sometimes I receive wonderfully clear, helpful, informative bug reports. In this essay I'll try to state clearly what makes a good bug report. Ideally I would like everybody in the world to read this essay before reporting any bugs to anybody. Certainly I would like everybody who reports bugs to me to have read it. In a nutshell, the aim of a bug report is to enable the programmer to see the program failing in front of them. You can either show them in person, or give them careful and detailed instructions on how to make it fail. If they can make it fail, they will try to gather extra information until they know the cause. If they can't make it fail, they will have to ask you to gather that information for them. In bug reports, try to make very clear what are actual facts ("I was at the computer and this happened") and what are speculations ("I think the problem might be this"). Leave out speculations if you want to, but don't leave out facts. When you report a bug, you are doing so because you want the bug fixed. There is no point in swearing at the programmer or being deliberately unhelpful: it may be their fault and your problem, and you might be right to be angry with them, but the bug will get fixed faster if you help them by supplying all the information they need. Remember also that if the program is free, then the author is providing it out of kindness, so if too many people are rude to them then they may stop feeling kind.
"It doesn't work."

Give the programmer some credit for basic intelligence: if the program really didn't work at all, they would probably have noticed. Since they haven't noticed, it must be working for them. Therefore, either you are doing something differently from them, or your environment is different from theirs. They need information; providing this

information is the purpose of a bug report. More information is almost always better than less. Many programs, particularly free ones, publish their list of known bugs. If you can find a list of known bugs, it's worth reading it to see if the bug you've just found is already known or not. If it's already known, it probably isn't worth reporting again, but if you think you have more information than the report in the bug list, you might want to contact the programmer anyway. They might be able to fix the bug more easily if you can give them information they didn't already have. This essay is full of guidelines. None of them is an absolute rule. Particular programmers have particular ways they like bugs to be reported. If the program comes with its own set of bug-reporting guidelines, read them. If the guidelines that come with the program contradict the guidelines in this essay, follow the ones that come with the program! If you are not reporting a bug but just asking for help using the program, you should state where you have already looked for the answer to your question. ("I looked in chapter 4 and section 5.2 but couldn't find anything that told me if this is possible.") This will let the programmer know where people will expect to find the answer, so they can make the documentation easier to use.
"Show me."

One of the very best ways you can report a bug is by showing it to the programmer. Stand them in front of your computer, fire up their software, and demonstrate the thing that goes wrong. Let them watch you start the machine, watch you run the software, watch how you interact with the software, and watch what the software does in response to your inputs. They know that software like the back of their hand. They know which parts they trust, and they know which parts are likely to have faults. They know intuitively what to watch for. By the time the software does something obviously wrong, they may well have already noticed something subtly wrong earlier which might give them a clue. They can observe everything the computer does during the test run, and they can pick out the important bits for themselves. This may not be enough. They may decide they need more information, and ask you to show them the same thing again. They may ask you to talk them through the procedure, so that they can reproduce the bug for themselves as many times as they want. They might try varying the procedure a few times, to see whether the problem occurs in only one case or in a family of related cases. If you're unlucky, they may

need to sit down for a couple of hours with a set of development tools and really start investigating. But the most important thing is to have the programmer looking at the computer when it goes wrong. Once they can see the problem happening, they can usually take it from there and start trying to fix it.
"Show me how to show myself."

This is the era of the Internet. This is the era of worldwide communication. This is the era in which I can send my software to somebody in Russia at the touch of a button, and he can send me comments about it just as easily. But if he has a problem with my program, he can't have me standing in front of it while it fails. "Show me" is good when you can, but often you can't. If you have to report a bug to a programmer who can't be present in person, the aim of the exercise is to enable them to reproduce the problem. You want the programmer to run their own copy of the program, do the same things to it, and make it fail in the same way. When they can see the problem happening in front of their eyes, then they can deal with it. So tell them exactly what you did. If it's a graphical program, tell them which buttons you pressed and what order you pressed them in. If it's a program you run by typing a command, show them precisely what command you typed. Wherever possible, you should provide a verbatim transcript of the session, showing what commands you typed and what the computer output in response. Give the programmer all the input you can think of. If the program reads from a file, you will probably need to send a copy of the file. If the program talks to another computer over a network, you probably can't send a copy of that computer, but you can at least say what kind of computer it is, and (if you can) what software is running on it.
"Works for me. So what goes wrong?"

If you give the programmer a long list of inputs and actions, and they fire up their own copy of the program and nothing goes wrong, then you haven't given them enough information. Possibly the fault doesn't show up on every computer; your system and theirs may differ in some way. Possibly you have misunderstood what the program is supposed to do, and you are both looking at exactly the same display but you think it's wrong and they know it's right. So also describe what happened. Tell them exactly what you saw. Tell them why you think what you saw is wrong; better still, tell them exactly what you expected to see.

If you say "and then it went wrong", you have left out some very important information. If you saw error messages then tell the programmer, carefully and precisely, what they were. They are important! At this stage, the programmer is not trying to fix the problem: they're just trying to find it. They need to know what has gone wrong, and those error messages are the computer's best effort to tell you that. Write the errors down if you have no other easy way to remember them, but it's not worth reporting that the program generated an error unless you can also report what the error message was. In particular, if the error message has numbers in it, do let the programmer have those numbers. Just because you can't see any meaning in them doesn't mean there isn't any. Numbers contain all kinds of information that can be read by programmers, and they are likely to contain vital clues. Numbers in error messages are there because the computer is too confused to report the error in words, but is doing the best it can to get the important information to you somehow. At this stage, the programmer is effectively doing detective work. They don't know what's happened, and they can't get close enough to watch it happening for themselves, so they are searching for clues that might give it away. Error messages, incomprehensible strings of numbers, and even unexplained delays are all just as important as fingerprints at the scene of a crime. Keep them! If you are using Unix, the program may have produced a core dump. Core dumps are a particularly good source of clues, so don't throw them away. On the other hand, most programmers don't like to receive huge core files by e-mail without warning, so ask before mailing one to anybody. Also, be aware that the core file contains a record of the complete state of the program: any "secrets" involved (maybe the program was handling a personal message, or dealing with confidential data) may be contained in the core file.
"So then I tried . . ."

There are a lot of things you might do when an error or bug comes up. Many of them make the problem worse. A friend of mine at school deleted all her Word documents by mistake, and before calling in any expert help, she tried reinstalling Word, and then she tried running Defrag. Neither of these helped recover her files, and between them they scrambled her disk to the extent that no Undelete program in the world would have been able to recover anything. If she'd only left it alone, she might have had a chance.

Users like this are like a mongoose backed into a corner: with its back to the wall and seeing certain death staring it in the face, it attacks frantically, because doing something has to be better than doing nothing. This is not well adapted to the type of problems computers produce. Instead of being a mongoose, be an antelope. When an antelope is confronted with something unexpected or frightening, it freezes. It stays absolutely still and tries not to attract any attention, while it stops and thinks and works out the best thing to do. (If antelopes had a technical support line, it would be telephoning it at this point.) Then, once it has decided what the safest thing to do is, it does it. When something goes wrong, immediately stop doing anything. Don't touch any buttons at all. Look at the screen and notice everything out of the ordinary, and remember it or write it down. Then perhaps start cautiously pressing "OK" or "Cancel", whichever seems safest. Try to develop a reflex reaction - if a computer does anything unexpected, freeze. If you manage to get out of the problem, whether by closing down the affected program or by rebooting the computer, a good thing to do is to try to make it happen again. Programmers like problems that they can reproduce more than once. Happy programmers fix bugs faster and more efficiently.
"I think the tachyon modulation must be wrongly polarised."

It isn't only non-programmers who produce bad bug reports. Some of the worst bug reports I've ever seen come from programmers, and even from good programmers. I worked with another programmer once, who kept finding bugs in his own code and trying to fix them. Every so often he'd hit a bug he couldn't solve, and he'd call me over to help. "What's gone wrong?" I'd ask. He would reply by telling me his current opinion of what needed to be fixed. This worked fine when his current opinion was right. It meant he'd already done half the work and we were able to finish the job together. It was efficient and useful. But quite often he was wrong. We would work for some time trying to figure out why some particular part of the program was producing incorrect data, and eventually we would discover that it wasn't, that we'd been investigating a perfectly good piece of code for half an hour, and that the actual problem was somewhere else. I'm sure he wouldn't do that to a doctor. "Doctor, I need a prescription for Hydroyoyodyne." People know not to say that to a doctor: you describe the

symptoms, the actual discomforts and aches and pains and rashes and fevers, and you let the doctor do the diagnosis of what the problem is and what to do about it. Otherwise the doctor dismisses you as a hypochondriac or crackpot, and quite rightly so. It's the same with programmers. Providing your own diagnosis might be helpful sometimes, but always state the symptoms. The diagnosis is an optional extra, and not an alternative to giving the symptoms. Equally, sending a modification to the code to fix the problem is a useful addition to a bug report but not an adequate substitute for one. If a programmer asks you for extra information, don't make it up! Somebody reported a bug to me once, and I asked him to try a command that I knew wouldn't work. The reason I asked him to try it was that I wanted to know which of two different error messages it would give. Knowing which error message came back would give a vital clue. But he didn't actually try it - he just mailed me back and said "No, that won't work". It took me some time to persuade him to try it for real. Using your intelligence to help the programmer is fine. Even if your deductions are wrong, the programmer should be grateful that you at least tried to make their life easier. But report the symptoms as well, or you may well make their life much more difficult instead.
"That's funny, it did it a moment ago."

Say "intermittent fault" to any programmer and watch their face fall. The easy problems are the ones where performing a simple sequence of actions will cause the failure to occur. The programmer can then repeat those actions under closely observed test conditions and watch what happens in great detail. Too many problems simply don't work that way: there will be programs that fail once a week, or fail once in a blue moon, or never fail when you try them in front of the programmer but always fail when you have a deadline coming up. Most intermittent faults are not truly intermittent. Most of them have some logic somewhere. Some might occur when the machine is running out of memory, some might occur when another program tries to modify a critical file at the wrong moment, and some might occur only in the first half of every hour! (I've actually seen one of these.) Also, if you can reproduce the bug but the programmer can't, it could very well be that their computer and your computer are different in some way and this difference is causing the problem. I had a program once whose window curled up into a little ball

in the top left corner of the screen, and sat there and sulked. But it only did it on 800x600 screens; it was fine on my 1024x768 monitor. The programmer will want to know anything you can find out about the problem. Try it on another machine, perhaps. Try it twice or three times and see how often it fails. If it goes wrong when you're doing serious work but not when you're trying to demonstrate it, it might be long running times or large files that make it fall over. Try to remember as much detail as you can about what you were doing to it when it did fall over, and if you see any patterns, mention them. Anything you can provide has to be some help. Even if it's only probabilistic (such as "it tends to crash more often when Emacs is running"), it might not provide direct clues to the cause of the problem, but it might help the programmer reproduce it. Most importantly, the programmer will want to be sure of whether they're dealing with a true intermittent fault or a machine-specific fault. They will want to know lots of details about your computer, so they can work out how it differs from theirs. A lot of these details will depend on the particular program, but one thing you should definitely be ready to provide is version numbers. The version number of the program itself, and the version number of the operating system, and probably the version numbers of any other programs that are involved in the problem.
"So I loaded the disk on to my Windows . . ."

Writing clearly is essential in a bug report. If the programmer can't tell what you meant, you might as well not have said anything. I get bug reports from all around the world. Many of them are from non-native English speakers, and a lot of those apologise for their poor English. In general, the bug reports with apologies for their poor English are actually very clear and useful. All the most unclear reports come from native English speakers who assume that I will understand them even if they don't make any effort to be clear or precise.

Be specific. If you can do the same thing two different ways, state which one you used. "I selected Load" might mean "I clicked on Load" or "I pressed Alt-L". Say which you did. Sometimes it matters. Be verbose. Give more information rather than less. If you say too much, the programmer can ignore some of it. If you say too little, they have to come back and ask more questions. One bug report I received was a single sentence; every time I asked for more information, the reporter would reply with another single sentence. It took me several weeks to get a useful amount of information, because it turned up one short sentence at a time.

Be careful of pronouns. Don't use words like "it", or references like "the window", when it's unclear what they mean. Consider this: "I started FooApp. It put up a warning window. I tried to close it and it crashed." It isn't clear what the user tried to close. Did they try to close the warning window, or the whole of FooApp? It makes a difference. Instead, you could say "I started FooApp, which put up a warning window. I tried to close the warning window, and FooApp crashed." This is longer and more repetitive, but also clearer and less easy to misunderstand. Read what you wrote. Read the report back to yourself, and see if you think it's clear. If you have listed a sequence of actions which should produce the failure, try following them yourself, to see if you missed a step.

Summary

The first aim of a bug report is to let the programmer see the failure with their own eyes. If you can't be with them to make it fail in front of them, give them detailed instructions so that they can make it fail for themselves. In case the first aim doesn't succeed, and the programmer can't see it failing themselves, the second aim of a bug report is to describe what went wrong. Describe everything in detail. State what you saw, and also state what you expected to see. Write down the error messages, especially if they have numbers in. When your computer does something unexpected, freeze. Do nothing until you're calm, and don't do anything that you think might be dangerous. By all means try to diagnose the fault yourself if you think you can, but if you do, you should still report the symptoms as well. Be ready to provide extra information if the programmer needs it. If they didn't need it, they wouldn't be asking for it. They aren't being deliberately awkward. Have version numbers at your fingertips, because they will probably be needed. Write clearly. Say what you mean, and make sure it can't be misinterpreted. Above all, be precise. Programmers like precision.

Bug writing guidelines

HISTORY

EDIT

TABLE OF CONTENTS
1. 2. 3. 4. 5. 6. Preliminaries Writing precise steps to reproduce Writing a clear summary Finding the correct product and component Specific types of bugs Original document information

TAGS FILES

If you need help with Mozilla software (for example with Firefox or Thunderbird), use one of the available support options. Do not edit this page! Please read this page to learn how to report a bug using Bugzilla, which is Mozilla's bug tracking system. If you're new to reporting bugs, you may want to try getting help from the more experienced contributors. See the Community section on the QA page for pointers. If you're going to report a Firefox bug, you can also get assistance in the #firefox channel on irc.mozilla.org. See also How to write a proper bug. Effective bug reports are the most likely to be fixed. These guidelines explain how to write such reports.

Preliminaries
1. Make sure your software is up to date.

Ideally, test an in-development version to see whether your bug has already been fixed (e.g. Firefox Beta, Aurora, or bleeding-edge Nightly).

2. Search Bugzilla to see whether your bug has already been reported (tutorial). 3. Open the Enter a new bug form, which will guide you through most of the bug reporting process.

If you have multiple issues, please file separate bug reports.

Writing precise steps to reproduce


How can a developer reproduce the bug on his or her own computer? Steps to reproduce are the most important part of any bug report. If a developer is able to reproduce the bug, the bug is very likely to be fixed. If the steps are unclear, it might not even be possible to know whether the bug has been fixed. Describe your method of interacting with Firefox in addition to the intent of each step.

Imprecise: "Open Gmail in another window". Precise: "Press Cmd+N to open a new browser window, then type https://mail.google.com/ in the address bar and press Enter". After your steps, precisely describe the observed result and the expected result. Clearly separate facts (observations) from speculations.

Imprecise: "It doesn't work" Precise: "Instead of showing my Inbox, it shows the message 'Your browser does not support cookies (error -91)'." If the bug seems egregious, there might be something unusual about your setup that's a necessary part of the steps to reproduce the bug. See if you can reproduce the bug in a new Firefox profile. If the bug only happens in your existing profile, try to figure out what settings, extensions, or files in your profile are needed to reproduce the bug.

What if my bug seems "random" or "intermittent"?

Writing a clear summary


How would you describe the bug using approximately 10 words? This is the first part of your bug report a triager or developer will see. A good summary should quickly and uniquely identify a bug report. It should explain the problem, not your suggested solution.

Good: "Cancelling a File Copy dialog crashes File Manager"

Bad: "Software crashes" Good: "Down-arrow scrolling doesn't work in <textarea> styled with overflow:hidden" Bad: "Browser should work with my web site"

Finding the correct product and component


You will be asked to categorize your bug into a "product" and a "component" within that product, in order to direct your report to the correct developers. If you're using Firefox, the bug is most likely in "Firefox", "Toolkit", or "Core".

List of components in the "Firefox" product - Most parts of Firefox that you interact with directly List of components in the "Toolkit" product - Interface widgets and some frontend features List of components in the "Core" product - Web page rendering, networking, etc. When in doubt, search for similar bugs and see what component they are in. If none of the components seem appropriate, look for a "General" component in the most appropriate product.

Specific types of bugs


If you are reporting a crash bug, please include a Breakpad ID or attach stack trace, and include the crash signature in the bug summary. If you are reporting a memory use or leak bug, please attach the output of about:memory (Firefox 6+). Ideally, find steps to reproduce an increase in what is shown in about:memory (even after clicking the "Minimize memory usage" button at the bottom). If you have trouble finding steps to reproduce, try the Firefox Support page titled High Memory Usage. If you are a C++ developer,more precise tools are available. If you are reporting a bug involving a specific web page, please try to make a reduced testcase and attach it to the bug report. If the bug was recently introduced, finding a regression window can help identify the cause of the bug.

Original document information


Author(s): Jesse Ruderman, Gervase Markham Other Contributors: Eli Goldberg, Claudius Gayle, Jan Leger, Felix Miata, Peter Mock, Chris Pratt, Chris Yeh, and others.

DEFINITION

Visual Studio Team System (VSTS)


Visual Studio Team System (VSTS) is an extension of the Microsoft Visual Studio architecture that allows it to encompass development teams, with special roles and tools for software architects, developer specialties and testers. Visual Studio is a software development environment built on the .NET Framework that is designed for managing projects and development work in a variety of languages including Visual C# .NET, Visual C++ .NET,Visual Basic .NET, Visual J# and ASP.NET. VSTS includes software development, collaboration, measurement and reporting tools that fall broadly into server-side and client-side applications. On the server-side, this involves a Team Foundation Server for data storage and collaboration management, including source control, work item tracking, and reporting services. Team Foundation Server also includes a build server that developers may use to build releases from specific elements stored in its source control system. Visual Studio's Code Analysis, Test Tools, and Code Coverage elements may be use to validate any build before it is deemed fit for release. VSTS integrates with the Team Foundation Server (TFS) through a TFS Client API that exposes Team Foundation Server functions. These include a Team Explorer for browsing and managing items in team projects, and a Source Control Explorer that provides version control, revision handling, and check-in/check-out functions. VSTS can use the Team Build system rather than its own built-in build system, and the same reporting IDE that enables inspection and analysis of VSTS elements may be applied to the Team Foundation Server and its contents as well. There's also a Team Test Load Agent, licensed separately from VSTS and TFS, is designed to support automated load testing on Web or Windows based applications. Load test results reside in a Team Foundation Server data warehouse, and may be linked to particular builds to track performance testing across the development and deployment cycles. Client-side capabilities between VSTS and Visual Studio come from specialized versions of Visual Studio modules, known as Visual Studio Team Editions. Team roles include developers, architects, testers, and database developers. A Team Explorer tool works with TFS to integrate the client-side to the server, and to enable use of TFS as the source control provider for team

projects. Support for various Microsoft Office components is also included, particularly for Microsoft Excel and Microsoft Project.
RELATED GLOSSARY TERMS: C#, intranet, ISP (Internet service provider), Expression Graphic

Designer, IronPython, IronRuby, Document Object Model (DOM) , Visual Basic (VB),browser, 136 browser colors with names
This was last updated in January 2008

Posted by: Margaret Rouse

Email Alerts
Register now to receive SearchWinDevelopment.com-related news, tips and more, delivered to your inbox.
Email Addre Submit

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

More News and Tutorials

Cloud computing causes confusion about services dependencies


Learn why service dependencies is one of the scariest things that most companies don't understand about cloud computing.

Top 3 concerns when migrating to Windows 7


Windows development tools and integration issues for emerging technologies expert, Mike Rozlog, identifies the top 3 concerns when migrating to Windows 7.

Create Windows 7 apps to win cash, trips to PDC


Microsoft is sponsoring a contest for the best applications that take advantage of Windows 7. Find out more about the contest and how to enter.

o o o o o

ARTICLES

Analysis: The state of Visual Studio Team System Beginning Visual Studio Team System development Microsoft outlines Visual Studio Team System's future Beginning Visual Studio Team System development, Part 2 Team Foundation Server Beta 3 now available
RESOURCES FROM AROUND THE WEB

o o o

There's a Visual Studio Team System Developer Center on the MS Developers Network. Also on MSDN, see the Team Foundation Server Team Center. SearchWinDevelopment.com offers a selection of resources for team development with Visual Studio Team System.

S-ar putea să vă placă și