Tag Archives: server

Introducing LocalDB, an improved SQL Express

Introduction

It gives me great pleasure to introduce a new version of SQL Express called SQL Express LocalDB.

LocalDB is created specifically for developers. It is very easy to install and requires no management, yet it offers the same T-SQL language, programming surface and client-side providers as the regular SQL Server Express. In effect the developers that target SQL Server no longer have to install and manage a full instance of SQL Server Express on their laptops and other development machines. Moreover, if the simplicity (and limitations) of LocalDB fit the needs of the target application environment, developers can continue using it in production, as LocalDB makes a pretty good embedded database too.

Background

Before focusing on technical description of LocalDB, I’d like to provide some background on the direction we took building it.

Today SQL Server Express serves two distinct needs. On one hand it is a free edition of SQL Server. The installation, management and programming of SQL Express in this role is expected to be 100% compatible with other editions. It can be used for learning, training and to run relatively small production database (with less than 10GB of data). Upgrade from SQL Express to paid SQL Server editions is a matter of typing in a license key and no installation is required.

But SQL Express is also SQL Server edition for developers writing applications targeting SQL Server. In this role the programming of SQL Express is still expected to be 100% compatible with other SQL Server editions, but SQL Express is supposed to be small, simple, low-footprint, require no configuration or administration, run as non-admin user, etc.

Our approach so far was to try to make SQL Express perform well in both roles. But as SQL Server product matured, and in effect added more complexity, it became harder and harder for SQL Express to be both compatible with other SQL Server editions and small/simple. The challenge is most visible in installation and configuration of SQL Express. In SQL Server "Denali" we decided to change the approach it and introduce a dedicated version of SQL Express for developers – LocalDB that delivers the simplicity and yet is compatible with other editions of SQL Server at the API level.

Also, by making LocalDB a better SQL Express for developers, we hope to be able to improve the regular SQL Express to be a better free SQL Server. We’d be very happy to hear your feedback in this area, especially if you’re using SQL Express as a database server and find any issues caused by the new features that were introduced to fit the needs of developers and desktop environment.

Source: http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx

Did you like this? Share it:

Non-Functional Software Testing

If functional software testing is the practice of verifying and validating a software package — in other words making sure the software works and does was it was designed to do — then non-functional software testing is everything else beyond that. One of the first of these “everything-else” categories is performance testing.

Performance Testing

Testing the performance of a new or existing program is the process of determining how well an application performs under actual working conditions. Performance testing was not a great concern for software developers until the rise of client/server technology. In the earlier days of computer development, most programs were standalone, independent creations that were restricted to local environments. Having thousands and thousands of users attempting to access the same information simultaneously was not a consideration.

All of that emphasis on standalone software went away with the advent of the Internet. Suddenly, a program was expected to concurrently service similar requests of any number of users. The need for performance testing became evident in a hurry.

Performance Testing Requirements

The first requirement for testing performance is that the program in question be completely functional. That means that all functional testing should have been completed successfully, and all bugs should have been corrected. Performance testing also requires that the testing be done automatically, with the aid of a service that is designed to simulate multiple users performing identical actions in a short (or, at least, defined) period of time.

Performance testing attempts to verify that an application can perform satisfactorily while serving a given number of users. Typically, the number of virtual users will be determined by the testing program but it can often be more than a thousand simulated users. Hence the requirement for automation. Endurance testing, an element of performance testing sometimes referred to as “stability testing,” verifies that the application can continue to perform for an extended period of time under conditions that are as near to real-life parameters as possible. Load testing can easily fit into this category, as it attempts to verify either the number of simultaneous users that can be serviced or the level of parallel requests for data manipulation (this can include transfer quantity and/or data modification activity).

Stress testing, another form of performance testing, attempts to find the point at which the application begins to break down or fall apart under duress. One of the important elements of stress testing is to determine how the program reacts to overload situations: does it just quit, or does it systematically shut down, sending warning messages to users and management as appropriate?

Usability Testing

Usability testing is the method of checking to see if the program is easy to use and performs things the user wants in an intuitive manner. A relatively new practice employed by software developers is to have the users perform these tests themselves. The results are solicited through the use of surveys, which contain questions such as “Did you find the program easy to use?” and “Do you have any suggestions for improvements?” This form of testing is extremely useful to the developer because it often gets to the direct root of any existing usability problems.

The term “user-friendly” comes to mind under the umbrella of usability testing. “User-friendly” often refers to the user being able to progress through the program without having to make any abstract or unexpected decisions, which could cause the program to inadvertently abort. This may take the form of yes/no questions, radio-button pushing, or having the user make a selection from a dropdown list of choices. The more user-friendly a program is, the less likely it is to fail the usability test. Of course, writing user-friendly code for such a program puts a much greater demand on the programmer.

Security Testing

The latest addition to the whole software testing scheme involves the testing of security. Again, the need for this type of testing became evident with the creation of the Internet. Hackers originally took pleasure in breaking into a system and modifying the performance of an application. Their motivation was primarily self-identification to show the world just how smart they were. As the Internet became more commercial, though, it quickly became evident that there was money to be made in the practice of hacking.

There are numerous programs and services available to scan soon-to-be-released software for security breaches. They present a risk-based analysis as to the vulnerability of the program indicating whether the defects found are in need of immediate attention, or if they can possibly wait for the next release. At any level, they merely point out the security problems – it’s still up to the developers to come up with the solutions.

The difficulty with testing security is that it involves the human element. Passwords, personal questions, or other means of authenticating the user must be safeguarded by the user themself. If the user is not dutifully inclined to protect said security information, then all the security testing in the world is for naught. Writing passwords down, giving passwords to others, or just leaving a computer open and unattended are invitations for a security disaster.

Wrapping It Up

I hope you have enjoyed and gotten something out of this exploration on non-functional software testing. Obviously, my approach was merely an overview of the whole concept. Entire books (emphasis on the plural) have been written on the subject. My intent was to present you with the major facets and, hopefully, spark some interest in the subject.

Source: http://buildmobile.com/non-functional-software-testing/

Did you like this? Share it:

Heavy Load Testing

Visual Studio Team Agents 2010 consists of Test Load Agent, Test Load Controller and Lab Agent. Team Test Load Agent monitors a request for a new test from the controller by running a service locally. Team Test Load Controller is run by a service, and the service controls the test agents and reports the status and errors of the test. It can also transfer the sources into running test and data collection in logic, or has effect on the system running the testing environment again.

The main function of Test Load Agent is to cascade various machines to produce heavier load and higher stress when doing the load test. It is rarely seen that an average level PC can produce a load of 50 people, which still cannot compare with some great websites or systems with thousands or more people online. Thus, enough load and stress can be produced when we connect several server level machines, so that the results will be meaningful to us.

More than 3 computers are required when using Load Agent, and VS 2010 For Tester, Controller, Agent1, Agent2, etc. are supposed to be installed. If the number of computers is limited, you can install the Controller and Agent in the same computer, but the test will be limited, as the picture below shows.

clip_image002

As the picture above shows that, Team Agents include the Agent and Controller software, which are highly extendable and customizable, so that the testers enjoy great flexibility. Testers can do load testing directing at Web apps and organizations to improve service quality by measuring the performance of Web apps and servers under load more accurately.

Application & Practice: to modify and test x64 bits CLR program set with VS 2010

Visual Studio Team Test 2010 Load Agent testing platform provides host process for the test. You can enjoy the new feature that network emulation has been introduced for performance testing, and what’s more, Visual Studio 2010 has developed another feature, which is that it can test the program set in 64bits CLR. With Visual Studio 2008, the host process can only be tested in the 32bits mode, and the internal storage has been limited to 2GB. But with Visual Studio Team Test 2010, there is no such limit.

Here are the steps to modify and test x64 bits CLR program set with VS 2010.

1) Set your program set as opening your program set on “Any CPU” platform, and open the “Build” tab, then set your platform target as “Any CPU”.

clip_image004

2) Open test settings, and set the host process platform as “MSIL”. Open the “Local.testsettings” to set and then choose “Hosts” and at last choose the MSIL under the Host Process Platform options.

clip_image006

Tips:

If you have not installed Test Load Agent, you will find that only one CPU will be occupied by the local requests when doing performance test with VS 2010. It is because the process to generate stress is VSTESTHost.exe. Accordingly, if you want every CPU of a multinuclear CPU to produce stress, you have to use Visual Studio Team System Test Load Agent.

Did you like this? Share it:

SQl resource-DB testing

SQL resource

The purpose of this book is to quickly provide you with the skills you need to solve problems and perform tasks using the Transact-SQL language. I wrote this book in a problem/solution format in order to establish an immediate understanding of a task and its associated Transact-SQL solution. You can use this book to look up the task you want to perform, read how to do it, and then perform the task on your own system. While writing this book, I followed a few key tenets:

• Keep it brief, providing just enough information needed to get the job done.

• Allow recipes and chapters to stand alone—keeping cross-references and distractions to a tolerable minimum.

• Focus on features that are typically implemented entirely using Transact-SQL. For example, I cover the new Resource Governor feature because it will typically be deployed by DBAs using Transact-SQL—whereas I do not cover Policy-Based Management due to its underlying dependencies on SQL Server Agent, SQL Server Management Objects (SMO), and SQL Server Management Studio. Fortunately, most of the new SQL Server engine improvements are entirely Transact-SQL based, and therefore are included in this book.

• Write recipes that help a range of skill sets, from novice to professional. I begin each chapter with basic recipes and progressively work up to more advanced topics. Regarding new SQL Server 2008 features, I have interwoven them throughout the book in the chapters where they apply. If you are just looking for a refresh on new Transact-SQL features, I specifically call them out at the beginning of each chapter in which they exist.

Although a key tenet of this book is to keep things brief, you’ll notice that this book is still quite large. This is a consequence of the continually expanding SQL Server feature set; however, rest assured that the recipes contained within are still succinct and constructed in such a way as to quickly give you the answers you need to get the job done.

Source: http://www.vietnamesetestingboard.org/zbxe/?mid=download&category=17246&document_srl=586034&listStyle=&cpage=

Did you like this? Share it:

BACK END TEST GUIDE for SQL

1. INTRODUCTION

This document is to discuss general test specification issues for SQL server back end testing and to provide testers a test design guide that includes test methodology. Most systems, i.e. Forecast LRS, Delta, KENAI, KBATS and so on, that are developed by ITG have client-server architectures. However, only a few projects have their back end completely tested.

1.1 Why back end testing is so important

A back end is the engine of any client/server system. If the back end malfunctions, it may cause system deadlock, data corruption, data loss and bad performance. Many front ends log on to a single SQL server. A bug in a back end may put serious impact on the whole system. Too many bugs in a back end will cost tremendous resources to find and fix bugs and delay the system developments. It is very likely that many tests in a front end only hit a small portion of a back end. Many bugs in a back end cannot be easily discovered without direct testing. Back end testing has several advantages: The back end is no longer a "black box" to testers. We have full control of test coverage and depth. Many bugs can be effectively found and fixed in the early development stage. Take Forecast LRS as an example; the number of bugs in a back end was more than 30% of total number of bugs in the project. When back end bugs are fixed, the system quality is dramatically increased.

1.2 Differences between back end testing and front end testing

It is not easier to understand and verify a back end than a front end because a front end usually has friendly and intuitive user interfaces. A back end has its own objects, such as, tables, stored procedures and triggers. Data integrity and protection is critical. Performance and multi-user support are big issues. Slowness in operation can be vital to the project’s future. There are no sufficient tools for back end testing. SQL language is mainly a testing tool. MS Access and MS Excel can be used to verify data but they are not perfect for testing. However, there are a large number of test tools available for front end testing. To be able to do back end testing, a tester must have strong background in SQL server and SQL language. It is relatively difficult to find testers who understand both SQL server and SQL testing. This causes a shortage of back end testers.

Source: http://www.vietnamesetestingboard.org/zbxe/?mid=download&category=17246&document_srl=590218&listStyle=&cpage=

Did you like this? Share it:

AMD Sends ‘Bulldozers’ Into War of the Server Chips

31

On Monday, the chip designer released both 8- and 16-core server processors based on its modular “Bulldozer” architecture — the Opteron 4200 and 6200 — in a bid to remain relevant in the market for chips that power cloud services, corporate data centers, and supercomputers. The market is dominated by arch-rival Intel, and there’s fresh competition from the makers of low-power embedded processors, including ARM chips.

The new chips arrive after the company sliced its workforce by 11 percent, saying it needed to cut costs in order to keep pace with rivals like Intel. With the chips, the company is looking to improve on its small and eroding share of the server market. At the end of the third quarter this year, Intel’s share of the PC server processor market stood at 95.1%, while AMD topped out at 4.9%, according to IDC.

AMD is targeting the processors at the three main segments of the server market: corporate data centers using virtualization technology, web-scale data centers supporting public and private clouds, and high-performance computing. “You’ve got to be, to some degree, everything to everyone,” said John Fruehe, director of product marketing for AMD’s server products.

The Opteron 6200 ups the number of cores in an x86 server processor to 16, though it’s hard to make a direct comparison to processors with traditional cores. Each Bulldozer module consists of a pair of integer units and a floating point unit that share resources, including cache. Each integer unit has four pipelines, and each floating-point unit has two floating-point processors. Eight modules yields a processor with 16 cores. In traditional multi-core processors, each integer unit has its own set of resources.

Source: http://www.wired.com/wiredenterprise/2011/11/amd-bulldozers/

Did you like this? Share it: