Daily Archives: 09/03/2012

What Should Testers Do in the Early Design Stage?

Are software testers needed in the early design stage of the products? If they are, what should they do? I often hear such questions asked by my friends. As far as I am concerned, many medium and small-sized companies in our country do not attach importance to the testing job in the early stage or even the whole process of developing products. Example one: some companies hold the view that the investment in testing during the early stage is high and meaningless, so they will start design test cases after the first period of development ends. Example two: some hold that testers do not have to participate in the requirements mapping work, they just need to accept. As a result, the marketing department and the development department will discuss about the demands directly, and the test manager will just refer to the demand design documents. Example three: the test manager does participate in the requirements design at the beginning, and work out the test plan. But the quality of the products is what the engineer deploying on the scene determines. At the user’s place, something unsatisfactory and failed will be found. To save time, the testers have to adjust the software at the user’s place, with no regard for whether the product needs an overall testing.

Not to say whether these methods are even more costing, it is easier for us to get the answer of “what should testers do during the early stage”: it will be nice if the test plan is made during the early stage, and it is okay if it is not made. But the testing should be done. It is also uncertain that what kind of product will be handed to the user. But there is only one aim: the product should be able to be used by the users, no matter for a mature or a newly started company.

For Microsoft, there are three product life cycles: Product Definition, Product Development and Product Serving. To make the best use of the resources, the testers mainly participate in the Product Development and Product Serving work. Their major duties are: to determine the priority levels of all the products’ functions; to review the definition of the product using conditions; to review the user experience documents.

Of course, every company should have its own development mode that fits itself, but there is no difference between their goals when deciding whether to let the testers do these jobs: firstly, the testers should know what the customers demand; secondly, the tester should tell what demands are reasonable and what are not according to his own experience and from the angle of testing and preserving, then gives feedbacks to the project manager or the marketing department. Lastly, the tester should make test plans according to the demands and the software framework documents.

Each company and each team of the company does not have to take the same pattern. We should act according to actual circumstances, but the focus should not vary, neither should the goal, just like some companies in our country apply the CMM blindly, which is just imitation, but with no soul.

Did you like this? Share it:

The Differences between Performance Testing and Stress Testing

Performance testing is used to test the performance of software in a system. The performance testing can be done in every period of testing. Even in the element layer, the performance of a single module can also be evaluated by doing white-box testing. However, when the whole system is integrated, the actual performance of the system can be really tested.

Performance testing is often done with stress testing, and needs hardware and software testing equipments, which means, it is necessary to measure the use of resources in a demanding environment (for example, the processor cycle). The outward testing equipments can monitor the testing, when something happens (such as interruptions), it can record it. By testing the system, testers can find what reduces the efficiency and what causes the system bugs.

Stress testing is a kind of test which adds stress continuously to the system. By determining a system’s choke point or a failed performance point, the testing will enable you to know the maximum service level of the system. For example, you can measure when the system’s performance will decline or when it breaks down.

Performance test is a common used term when doing load test and force test alternately. Performance testing puts emphasis on the overall system. It has close relationship with the intensity, stress/load testing. Accordingly, stress and intensity testing should be done with performance testing.

The difference between stress testing and performance testing is their aim of the testing.

The aim of stress testing is to figure out the maximum load the system can support. The precondition is that the performance of the system can be tolerated. For example, it is usually agreed that the page should respond within 3 seconds. In a word, it tests the maximum load the system can bear on the condition that the performance can be tolerated.

Performance testing is for testing the response and the speed of the system and other performance indexes. Its precondition is that there is a certain load. For example, it will test the performance indexes when 100 users are online, and see if every user can operate normally. To sum up, it tests the performance of the system according to some indexes (such as the time of response) with different load (or with a certain load). If we say, some website performs badly, but to be exact, we should say, when how many people are online, the website performs badly.

In general, it is like a formula: overall performance=the load quantity*performance index. The overall performance is fixed, and stress testing is to test the biggest load when the performance indexes are the lowest, and performance test is to test the performance indexes when the load quantity is determined.

Did you like this? Share it:

Hypertable Beats HBase Thoroughly in Performance Test

About Hypertable

clip_image002

Hypertable system includes three components: Hyperspace, Master and Range Server. Hyperspace is a lock service, akin to Google’s Chubby, mainly used for synchronization and testing whether there’s node failure and storing the top-level location information. Master is used to complete task allocation, future load balancing and post-disaster reconstruction (Automatically recover services after Range Server fails), and other functions. Range Server is the actual workers of Hypertable, primarily responsible for providing services for the data in a Range. Moreover, it shoulders the responsibility of reconstruction, ie replaying the local log to restore the former state before its own fault. Additionally, it accesses Hypertable client and other components.

Introduction

Both Hypertable and HBase are scalable open source database products, and their design blueprint based on Google BigTable. The main difference is that Hypertable relies on C++ language, and HBase is written based on Java. The test environment is 16 servers which are connected through Gigabit Network.

Test Environment:

OS: CentOS 6.1

CPU: 2X AMD C32 Six Core Model 4170 HE 2.1 Ghz

RAM: 24GB 1333MHz DDR3

Disk: 4X 2TB SATA Western Digital RE4-GP WD2002FYPS

The NameNode running of Hypertable and HBase is on No.1 test machine, while DataNodes is running on No.4 to No.5 test machine. Meanwhile, RangeServer and RegionServers run on the same set of computers and are configured to use all memory resources. Three Zookeeper and Hyperspace copies run on the No.1 and No.3 test machines. In this test, the table is configured to use Snappy compression, as well as use Bloom filters to load Row Key.

Random Write Test

In the random write test, Hypertable and HBase test writing four different 5TB of data, using the values 10000, 1000, 100 and 10, respectively. At the same item, the key is fixed at 20 bytes and format the random integer into zero fill.

The following chart shows the test results:

clip_image002[6]

The detailed performance test results:

clip_image004

The HBase throws an exception in the key test of 41 billion and 167 billion due to HBase RegionServers concurrent mode failure. No matter how to configure, when the speed that RegionServer produces useless data is faster than the Java garbage collection, the failure above will occur. Creating new garbage collection plan to solve the problem; however, it will take a heavy price for the run-time performance.

Matthew Hertz and Emery D. Berger published “Garbage Collection vs. Explicit Memory Management” at OOPSLA Conference in 2005, which provided a solid faith.

Random Read Test

The test mainly uses a set of random read request test to query throughput. Each system runs two tests, one to test Zipfian distribution, another to uniform distribution. The inserted key/value are fixed size, key to use fixed 20 bytes, and value to use fixed 1KB. The keys range from the integer in ASCII. Each query test returns a pair of keys. Run two tests on each system separately, one to load 5TB data and another to 0.5TB, which makes the experiment to be able to measure the performance of system memory to disk. 4,901,960,784 keys are loaded in 5TB test while 490,196,078 keys in 0.5TB test. The test client runs 128 processes (for a total of 512 process), and keep the maximum 512 queries in the whole testing process at the same time. This means each test issues 100 million queries.

Zipfian Distribution Environment Test

Configure Hypertable query cache to 2GB, and use the default value of block cache and memstore of HBase to keep good performance of HBase. See the following figure:

clip_image006

The detailed performance test results:

clip_image008

The main reason to lead to the difference is that Hypertable provides query cache and HBase can realize query cache as well, but Hypertable is subsystem of HBase. The subsystem generates a lot of garbage. Although it will improve the performance of HBase, it also brings some disadvantages, especially in ultra-large-scale write and large cell calculation of mixed workloads.

Uniform Distribution Test Environment

See the following figure:

clip_image010

The detailed performance test results:

clip_image012

The performance of HBase is close to Hypertable in the uniform distribution test, which should be due to disk IO bottleneck. Some garbage is also produced during the test.

Conclusion

In the past five years, Hypertable community has been working to perfect products. They aim at building Hypertable as a large data field of high-performance, high scalable database solution.

Did you like this? Share it:

Anonymous hacks Panda Security in response to LulzSec arrests

The hacktivist group Anonymous has attacked security firm Panda Security shortly after authorities today arrested five men part of Lulz Security (LulzSec), another hacktivist group loosely associated with the former. 28-year-old Hector Xavier Monsegur (Sabu), the leader of LulzSec, allegedly informed U.S. law enforcement of his fellow comrades’ names: Ryan Ackroyd (Kayla), Jake Davis (Topiary), Darren Martyn (pwnsauce), Donncha O’Cearrbhail (palladium), and Jeremy Hammond (Anarchaos).

Now, Anonymous has stolen the account credentials (e-mail address and passwords) of 114 employees working at Panda Security, and posted them online for everyone to see. Internal server details were also revealed. Lastly, they defaced more than two dozen subdomains within “pandasecurity.com” and other several domains owned by the security firm by modifying them to show a video recounting some of LulzSec’s hacking highlights from last year. The video is embedded above.

Here is what Anonymous posted in response to today’s events (AntiSec refers to both Anonymous and LulzSec working together):

#ANTISEC IS BACK ONCE AGAIN KNOCKING SNITCHES DOORS CAUSE TRAISON IS SOMETHING WE DONT FORGIVE

YEAH YEAH
WE KNOW…
SABU SNITCHED ON US
AS USUALLY HAPPENS FBI MENACED HIM TO TAKE HIS SONS AWAY
WE UNDERSTAND, BUT WE WERE YOUR FAMILY TOO (REMEMBER WHAT YOU LIKED TO SAY?)

IT’S SAD AND WE CANT IMAGINE HOW IT FEELS HAVING TO LOOK AT THE MIRROR EACH MORNING
AND SEE THERE THE GUY WHO SHOPPED THEIR FRIENDS TO POLICE.
ANYWAY…

LOVE TO LULZSEC / ANTISEC FALLEN FRIENDS
THOSE WHO TRULY BELIEVED WE COULD MAKE A DIFFERENCE
LOVE TO THOSE BUSTED ANONS, FRIENDS WHO ARE FIGHTING FOR THEIR OWN FREEDOM NOW
LOVE TO THOSE WHO FIGHTED FOR THEIR FREEDOM IN TUNISIA, EGYPT, LIBYA
SYRIA, BAHRAIN, YEMEN, IRAN, ETC AND ETC AND ETC
LOVE TO THOSE WHO FIGHTED FOR FREEDOM OF SPEECH, FOR A REAL DEMOCRACY,
FOR A GOVT FREE OF CORRUPTION,
FOR A FREE WORLD WHERE WE ARE ABLE TO SHARE OUR KNOWLEDGE FREELY

LOVE TO THOSE WHO FIGHT FOR SOMETHING THEY BELIEVE IN

WE ARE ANTISEC
WE LL FIGHT TILL THE END

TO FBI AND OTHER SHITS
COME AT US BROS
WE ARE WAITING FOR YOU

Visit the Sexy AntiSec Embassy: [Tor] http://ibhg35kgdvnb7jvw.onion/
Follow the Antisec Crew: https://twitter.com/AnonymousIRC
Chat: irc.anonops.li #antisec

Source: http://www.zdnet.com/blog/security/anonymous-hacks-panda-security-in-response-to-lulzsec-arrests/10542

Did you like this? Share it: