The Golden Age For Software Testing In China

Jul 18 2020 Published by under Uncategorized

The China’s Computer Market 2008 Forecast Report has been released recently. It showed that in the first three quarters of 2007, the software industry in China has registered sales revenue of $50 billion, up 23.6% on pcp, accounting for 10.95% of the entire electronics and information industry’ sales revenue. As the software market matures, people have higher and higher expectations over software features, quality and reliability. In October 2005, Ministry of Labour and Social Security formally listed computer software product tester (software test engineer) as one of the new professions. In only two years’ time, software testing has become a powerful dark horse in the software industry.

Steadily rising status

“In the early 1990s, software industry was still at an infant stage in China. Most software projects were very simple, the whole code writing and development process could be handled by one person. As industry competition intensified, software companies were gradually evolving from one-man-band small shops to software engineering co-operations. Although division of labour could improve software development efficiency and functional varieties, it also lead to increasing number of bugs between modules and deteriorating qualities,” said Mr Wang Yazhi from CONCEPT Information Technology Ltd, a major software development company in Beijing. Quality impairment would not only damage a software firm’s competitiveness, it could also lead to massive economic loss for software users or even personal injuries, such as medical accidents.

As China’s software enterprises continue to prosper, the importance of software testing has also been increasingly appreciated by software companies. Many large and medium software companies have begun recruiting professional staff to take care of software testing. Ms Ran Chunjuan, a former testing manager in Wuhan Superidea Technology Ltd, said that “in Superidea, the ratio between software testers and developers is 1:4. Although this is still well behind the international best practice of 1:1, it is still a great improvement from 1:8 a few years ago.”

Industry experience appreciated

In addition to lifting the number of software testing staff, many companies are demanding higher staff quality as well, especially in areas of professional testing experience and thinking ability. “A tester without professional training can still work out 3-5 testing methods, but not necessarily detect bugs. Even if bugs are discovered, he might not be able to express the problems in proper languages, which could increase developers’ workload. Those well-trained testers can work out 10-20 testing methods, such as boundary value analysis, equivalence classes and cause-effect diagrams, to maximally discover any bugs. Professional testers can also articulate testing documents in standardised languages, thus improving the recovery rates of software problems,” said Mr Liu Fei, a former testing manager in Qualcomm. Many companies in China have now established independent testing departments, working along with R&D departments.

As companies’ software testing knowledge deepens, work scope for testing staff is expanding from system testing phase to unit testing and integration testing phases. “This requires software testers to have in-depth knowledge about the businesses a product is involved in,” said a testing manager from Founder Group, one of China’s largest software companies, “for example, when we test software for banking applications, we have to first understand the specific users in the bank. Some operators only use keyboards in the office, but if we don’t know about this and design it as a mouse-friendly control, banks will not buy, it no matter how well the software works.” Therefore it could be forecast that the status for software testers who possess technical experience and customer demand knowledge will further enhance.

A sellers’ market

“The software testing industry is at a growth stage,” said Prof Zheng Renjie, a software testing expert. The current hot market for software testers is mainly due to the rapid development in software industry itself, “companies are demanding better quality software, which has in turn stimulated demand for software testers. But talent supply and talent training are lagging behind the dramatic changes in market demand, hence a telent shortage.”

At present, software testing talent shortfall in China has exceeded 200,000, and it is rising to the 300,000 threshold. According to statistics, total software tester supply from nationwide IT training institutions is less than 10,000 per year, thus it can be foreseen that the testing talent shortage could last another 5-10 years. At the same time, talent shortage has given leverage to tester remunerations. According to a remuneration report from 51Job.com in China, starting salary for software testing engineers ranges from $400 – 650 per month, and it could increase to $1200 – 1650 for engineers with 2 to 3 years’ experience, higher than the remuneration for many developers with similar service years. As the talent supply shortage continues into 2008, software testers’ remuneration is looking for more gains.

Education and training

The shortage in software testers in China has not only lifted the remuneration levels, not also created a boom for educational and training institutions. Even two years ago, several prominent IT professional training institutions had realised the importance of software testing positions, and organized a few domestic and international software testing experts to co-develop training courses, which have successfully cultivated lots of software testing talents in the past two years. Currently in China, apart from overseas recruitment and company internal training, external professional training is also an important channel for producing software testers, amounted to 12% of total talent supply. As companies are paying more attention to labour costs control, more professional talents are expected to come from external training institutions.

While professional IT training is booming, tertiary education institutions also began to test the water. In August 2007, the first software testing education forum was held in Shanghai by various government bureaus and universities, explicitly marking “software testing” a core area in software engineering courses in China. But Dr Chen Honggang, who had been involved in development and testing of projects such as Windows95, Internet Explorer 4.0/5.0 and SQL Server 2000, commented that although universities can ease some pressures on software testing talent educations, based on overseas experience, professional training will still be the main channel for supplying software testing talents.

Comments are off for this post

Seven Principles of ISEB Software Testing

Jul 16 2020 Published by under Uncategorized

ISEB Software Testing Foundation training courses introduce students to the fundamentals of software testing, including the reasons for carrying out tests, basic test processes and the general principles that underpin testing good practice. Knowing these principles, and understanding how they affect the software tester, is crucial to passing the ISEB Software Testing Foundation exam.

1. Testing shows the presence of bugs

That is, testing can show that problems exist, but not that problems do not exist.

This principle lies at the core of ISEB Software Testing guidance. An astute test analyst understands that even if a test does not reveal any faults, the subject of the test is not necessarily error-free.

The key objective of carrying out a test is to identify defects. Working under the assumption that every product will contain defects of some kind, a test that reveals errors is generally better than one that does not. All tests should therefore be designed to reveal as many errors as possible.

2. Exhaustive testing is impossible

Exhaustive testing feeds all possible data combinations into the software, in order to ensure that no untested situation can arise once the software has been released. Except on extremely simple applications, the number of possible data combinations is forbiddingly high; it is more effective and efficient for testers to focus on risks and priorities, so that the tests are targeted to the testing needs.

3. Early testing

A product (including documents, such as the product specification) can be tested as soon as it has been created. The ISEB software testing guidance recommends testing a product as soon as possible, in order fix errors as quickly as possible. Studies have shown that errors identified late in the development process generally cost more to resolve.

For example: an error in a product specification may be fairly straightforward to fix. However, if that error is transferred to the software coding, then fixing the mistake could become costly and time-consuming.

4. Defect clustering

Studies suggest that problems in an item of software tend to cluster around a limited set of modules or areas. Once these areas have been identified, efficient test managers are able to focus testing on the sensitive areas, while still searching for errors in the remaining software modules.

5. The ‘pesticide’ paradox

Like over-used pesticide, a set of tests that is used repeatedly on the same software product will decrease in efficacy. Using a variety of tests and techniques will expose a range of defects across different areas of the product.

6. Testing is context dependent

The same tests should not be applied across the board. Different software products have varying requirements, functions and purposes. A test designed to be performed on a website, for example, may be less effective when applied to an intranet application. A test designed for a credit card payment form may be unnecessarily rigorous if performed on a discussion forum.

In general, the higher the probability and impact of damage caused by failed software, the greater the investment in performing software tests.

7. Absence of errors fallacy

Declaring that a test has unearthed no errors is not the same as declaring the software “error-free”. In order to ensure that adequate software testing procedures are carries out in every situation, testers should assume that all software contains some (albeit concealed) faults.

Summary

Software testing good practice is an essential part of ensuring the quality of IT products. While software testing cannot guarantee that the software contains no errors, it does contribute significantly to the identification and reduction of faults, improving the likelihood that the software implementation will succeed.

Comments are off for this post

Onboarding Your New Software Testing Company

Jul 14 2020 Published by under Uncategorized

Bringing on a new QA partner is just like bringing on a new employee: in order for them to do their very best work, they need to know everything they can about the company, the product, the culture, and the existing workflow processes. Though partners that have been in the industry for a while will know the ropes and can get up to speed quickly, you should still be prepared to share knowledge, documentation, and other learnings about your product and any existing testing infrastructure.

Here’s a quick guide that will help you successfully onboard your new software testing company:

Provide clear requirements

Your QA partner needs clear, actionable project requirements before they take any action related to testing. Project requirements help engineers formulate a thorough and effective test plan, so you’ll need to specify the type of testing required (in detail), your technical requirements (environment, language, platforms, etc.), and any caveats that you feel the team needs to know.

Just as important as the initial requirements is your availability at this early stage in onboarding. Make sure you are around to answer any clarifying questions your engineers have about the requirements list.

Transfer the right knowledge

If your software testing company is staffed with plenty of domain experts, skip this step. But if not, you’ll need to make sure that you pass on plenty of knowledge about your product and its place within the market — especially if you work within the financial, healthcare, or retail space, where huge amounts of sensitive user data consistently pass through your product. Domain experts will have a good feel for the nuances of your product based on years of previous experience, and they’ll uncover weak spots that are easily missed by dev teams and those QA engineers who may be totally competent, but just not as experienced in the domain.

The other benefit of contracting with a company rich in domain expertise is improved communication. Experienced QA engineers will be able to relay bugs to stakeholders using the correct terminology, and explain how the issue affects other processes within your product: what it breaks, and how it can be fixed.

Establish communication protocols

Many companies still shy away from outsourced QA because of the distance between the stakeholders and onsite dev team, and the engineers that are testing their product. But thanks to major advances in communication technology, outsourcing is a totally viable option. They may not be located down the hall, but with the right protocols in place, it will feel like they are.

First, decide what kind of communication schedule you want to enact. Do you value daily status meetings over the phone, or will an email suffice? Do you need weekly progress reports, so that you can report the latest to the CEO? Will you need a comprehensive retrospective meeting to review what’s worked and what hasn’t? Your software testing company will be able to structure itself around your schedule, and can connect with you via video/phone chat, instant messaging platform, or email — whichever you prefer.

The added bonus of outsourced QA is that the time difference works in your favor. Your code is tested at night, and you can hear or read all of the reporting when you come back into the office in the morning.

Still searching for the right one?

There are tried and true markers of success for offshore QA providers. Ensure that your prospective partner offers a majority of these:

– Hybrid offshore/onsite model

– High client and engineer retention

– Continuous training on the latest testing methodologies and tools

– Flexible scalability of resources — they’re ready to ramp-up when you are!

– Rich experience across different domains

– Experience with implementing and designing automation frameworks

As you can see, there’s a fair amount of preparation that goes into onboarding your new testing partner. Be sure that you are vigilant at the start of the relationship, as it will set the tone going forward. The more prepared and confident your QA engineers are, the better your results will be — and the more powerful and robust your product will be!

Comments are off for this post