Entries Tagged 'Questions & answers' ↓

What is Boundary value analysis and Equivalence partitioning?

Boundary value analysis and Equivalence partitioning, explained with simple example:

Boundary value analysis and equivalence partitioning both are test case design strategies in black box testing.

Equivalence Partitioning:

In this method the input domain data is divided into different equivalence data classes. This method is typically used to reduce the total number of test cases to a finite set of testable test cases, still covering maximum requirements.

Continue reading →

How to hire the right candidates for software testing positions?

Do companies really judge candidate’s testing ability in interviews? Do they ask the questions that really judge the candidate’s skill? What questions should be asked to judge the candidate for software testing field? What is the key process to hire good candidates for software testing positions?

Ok, I am asking to many questions without giving answer to any of it. Well, each question mentioned above will require a separate post to address the problem fairly. Here we will address in short about – How to hire the right candidates for software testing positions?

Companies or interviewers, who are not serious about hiring right candidates, often end with hiring poor performers.

What I mean by “Not serious” here?
- They don’t know why and for what post they are hiring a candidate.
- They either fake or fail to post the exact job opening details.
- Or they don’t want to hire skilled performers at all. Hmm, jealousy might be the key here!

Whichever is the reason, there is definitely loss of organization. Loss in terms of both revenue and growth.

If you need answer to these questions, here is an informative video from Pradeep Soundararajan – Consulting tester of Satisfice Inc in India. He explained what is the current situation of software testing interview process in India and how interviewers are wrong in selecting questions to be asked to candidates. A nice start to spread the awareness and importance of software testing interviews.

Current Software Testing Interview situation:


Click on the bottom right button to see the video in full screen.

You can watch his more video’s on software testing here.

Do not forget to comment your experience on software testing interviews, either as an interviewer or as a candidate.

Related article: Choosing software testing as your career.

How to keep good testers in testing positions?

Few days back ‘Teresa’ asked me an interesting question.

“I was intrigued by your website because it seems you are truly passionate and interested in testing.  In my organization, we’ve found that it’s really hard to keep the GOOD testers in testing.  Many of the really skilled testers are always looking for change and want to get out of testing for some reason.  I would love to hear if you have any ideas on how to keep the good testers in testing?”

Teresa, first I will address this high attrition rate problem for all employees and then I will come back to addressing “How to keep good testers in testing positions?”

0% employee turnover is just a imagination and unrealistic in current competitive world. Employee turnover to certain extent is ok. However increased turnover in any company indicates some serious problems.

Though I am not a HR expert to reduce the attrition rate, I will suggest some common measures from employee perspective, which can minimize this turnover to certain extent. These measures will be applicable for every company and employee. Also we are in context of software testing so I will concentrate more on how to retain good testers in their positions.

I will address each and every solution we can try to keep low attrition rate. So sit back, get relaxed as this is going to be a long article.

Who will get help from this article?

This article will helpful to Company management, Managers, Team leads in development and testing and of course to the emerging testers who are tomorrow’s leads.

What are the effects of high attrition rate on company?

  • May lose projects in hand – as clients are not happy with high attrition rate
  • Financial burden on company
  • Cost to recruit new employees
  • Cost of new employee training
  • Time for ramp-up in new projects
  • Workload on existing employees
  • Low employee productivity due to unstable work and overtime

These are few important drawbacks of high attrition rate.

How to reduce attrition rate?

First let’s go to root cause of “why employee leave the company?”
The main reason is “lack of appreciation for their hard work”. I mean if company is not caring about employees then why would they stay in such company?

Keep in mind ‘more money’ is not always the solution! Nowadays employees are more concerned about quality of life and their family needs.

Here are some solutions on high attrition rate:

  • Hire the right people in right positions
  • Understand the employee needs and provide it to them
  • Respect them
  • Always appreciate good work
  • Regularly ask for employee input and take appropriate action
  • Offer training opportunities to gain advanced knowledge
  • Better to become employee oriented
  • Pleasant working atmosphere
  • Career growth opportunities
  • Value employee creativity
  • Job security

Last one is very important. Your employees should feel secure about their jobs. If you can’t provide job security or at least feeling of job security in employees mind then your company deserve for high attrition rate.

These are some one liner solution. Let’s take some practical solutions.

Motivation:
Any software team should consist of highly motivated and skilled people. Good motivation comes from good leadership. Good leadership provided by team leaders and managers can bring down the attrition rate. In my career I observe employees leave the company just because of their boss. Some unrealistic demands or lack of motivation and leadership can make employees think over their position and career.

So leaders should motivate and energize colleagues when they lost all hopes.

More Money:
Give them a good compensation and benefit package.

Fun at work:
As I said money is not always the solution, fun at work is also important. Only more money can’t motivate the team if you don’t have fun culture in your company. I believe in “Work hard, Play hard” culture, so plan some sporting activities, outdoor trips, different competitions between different teams etc etc… There can be so many such activities, which can act as refreshment for employees.

Help to settle employee life:
What I mean from this is to help employees providing stability in their life. I know this is not going to be a simple task but company can help employees by providing medical insurance, medical facilities to employees. Housing is the first priority of most of the employees. So help them getting good accommodation.

‘Teresa’, you asked about retaining testers in good positions. So let’s come to testers problem.

What are the common complaints from testers?

“Sometimes developers ego as they are better than testers”
“Tester is responsible for every fault”
“Schedule slips due to testers”
“Testers are not getting the respect”
“Management don’t consider them equally with developers”

These are some common complaints from testers and this makes them feel insecure in their job, affecting their daily work and may result in high attrition rate.

Management needs to address these complaints early before testers leave the company. The solution is – organize your teams effectively, improve communication between developers, testers and management. This will lead to better understanding and addressing of testers needs.

Below are the baby steps, which can retain good talented testers in their positions:

Provide them training:
Train all your testers. Provide them training for free, if not possible then with cheap cost. Make available some remote courses, seminars and books to study. Sponsor and help them to get the software testing certifications.

Appreciate the good work:
Don’t go behind the quantity of bugs. See the quality of bugs and appreciate those testers working hard to find it. Regularly comment positively on good work from the team.
Reward testers for finding good quality bugs. Keep some weekly or monthly competitions such as “Bug of the week” to reward the testers.  This will help to build a successful QA team.

Set finite boundaries to everything:
Your goals should have clear boundaries and completion criteria. Setting goals, those not having end can become a boring task. Don’t let feel the team that this testing work is going forever without any insight goal.

Take every bug as a learning opportunity:
Don’t bother testers about the bugs that slip through. Make these bugs as a learning opportunity. Let them know why they overlooked that bug. This way they will learn from their mistakes and will not make the same mistake again at lest for the same bug.

Don’t make testing a repetitive task:
Some times we get bored doing same thing again and again. Testers job involve with repetitive task. So take care to distribute your work so that no tester will execute same test case repetitively on any project. Randomize the testing work in team, this way team will get knowledge of whole product, helping to find more bugs.
Good solution to avoid repetitive work is to rotate the experienced employees internally in different projects.

Create good relation between testers and developers:
Testers need encouragement and support to find more and more bugs so that the final release is bug free. Build a good team of testers and developers. Treat everyone similarly.

Don’t forget to celebrate:
Celebrate each and every success moment. This will help to build good team spirit. Host product release parties to recognize accomplishment.

Conclusion:
Show your appreciation to those employees who work hard. This is a key to successful business. Show your employees that you are committed to fulfill their needs.

Over to you:
These are my personal thoughts to keep good employees (testers) in their positions. I am not a HR expert but I have mentioned here everything what I feels from employee perspective to stay on the job.

I want your views “What keeps you on the job?” You can share your personal thoughts, your expectations from employers or any personal experience in this matter.

If you are not yet the regular reader of this site, I recommend you to subscribe with us so that you won’t miss any single article on software testing. Click here to get new articles in your inbox!

Smoke testing and sanity testing – Quick and simple differences

Despite of hundreds of web articles on Smoke and sanity testing, many people still have confusion between these terms and keep on asking to me. Here is a simple and understandable difference that can clear your confusion between smoke testing and sanity testing.

Here are the differences you can see:

SMOKE TESTING:

  • Smoke testing originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch fire and smoke. In software industry, smoke testing is a shallow and wide approach whereby all areas of the application without getting into too deep, is tested.
  • A smoke test is scripted, either using a written set of tests or an automated test
  • A Smoke test is designed to touch every part of the application in a cursory way. It’s shallow and wide.
  • Smoke testing is conducted to ensure whether the most crucial functions of a program are working, but not bothering with finer details. (Such as build verification).
  • Smoke testing is normal health check up to a build of an application before taking it to testing in depth.

SANITY TESTING:

  • A sanity test is a narrow regression test that focuses on one or a few areas of functionality. Sanity testing is usually narrow and deep.
  • A sanity test is usually unscripted.
  • A Sanity test is used to determine a small section of the application is still working after a minor change.
  • Sanity testing is a cursory testing, it is performed whenever a cursory testing is sufficient to prove the application is functioning according to specifications. This level of testing is a subset of regression testing.
  • Sanity testing is to verify whether requirements are met or not, checking all features breadth-first.

Hope these points will help you to clearly understand the Smoke and sanity tests and will help to remove any confusion.

Thanks to VijayD for answering this question in simple way for our readers.

If you have more points on smoke and sanity testing to elaborate on, please comment below.

What is client-server and web based testing and how to test these applications

This is the guest post from VijayD

Question:

What is the difference between client-server testing and web based testing and what are things that we need to test in such applications?

Ans:
Projects are broadly divided into two types of:

  • 2 tier applications
  • 3 tier applications

CLIENT / SERVER TESTING
This type of testing usually done for 2 tier applications (usually developed for LAN)
Here we will be having front-end and backend.

The application launched on front-end will be having forms and reports which will be monitoring and manipulating data

E.g: applications developed in VB, VC++, Core Java, C, C++, D2K, PowerBuilder etc.,
The backend for these applications would be MS Access, SQL Server, Oracle, Sybase, Mysql, Quadbase

The tests performed on these types of applications would be
- User interface testing
- Manual support testing
- Functionality testing
- Compatibility testing & configuration testing
- Intersystem testing

WEB TESTING
This is done for 3 tier applications (developed for Internet / intranet / xtranet)
Here we will be having Browser, web server and DB server.

The applications accessible in browser would be developed in HTML, DHTML, XML, JavaScript etc. (We can monitor through these applications)

Applications for the web server would be developed in Java, ASP, JSP, VBScript, JavaScript, Perl, Cold Fusion, PHP etc. (All the manipulations are done on the web server with the help of these programs developed)

The DBserver would be having oracle, sql server, sybase, mysql etc. (All data is stored in the database available on the DB server)

The tests performed on these types of applications would be
- User interface testing
- Functionality testing
- Security testing
- Browser compatibility testing
- Load / stress testing
- Interoperability testing/intersystem testing
- Storage and data volume testing

A web-application is a three-tier application.
This has a browser (monitors data) [monitoring is done using html, dhtml, xml, javascript]-> webserver (manipulates data) [manipulations are done using programming languages or scripts like adv java, asp, jsp, vbscript, javascript, perl, coldfusion, php] -> database server (stores data) [data storage and retrieval is done using databases like oracle, sql server, sybase, mysql].

The types of tests, which can be applied on this type of applications, are:
1. User interface testing for validation & user friendliness
2. Functionality testing to validate behaviors, i/p, error handling, o/p, manipulations, services levels, order of functionality, links, content of web page & backend coverage’s
3. Security testing
4. Browser compatibility
5. Load / stress testing
6. Interoperability testing
7. Storage & data volume testing

A client-server application is a two tier application.
This has forms & reporting at front-end (monitoring & manipulations are done) [using vb, vc++, core java, c, c++, d2k, power builder etc.,] -> database server at the backend [data storage & retrieval) [using ms access, sql server, oracle, sybase, mysql, quadbase etc.,]

The tests performed on these applications would be
1. User interface testing
2. Manual support testing
3. Functionality testing
4. Compatibility testing
5. Intersystem testing
Some more points to clear the difference between client server, web and desktop applications:

Desktop application:
1. Application runs in single memory (Front end and Back end in one place)
2. Single user only

Client/Server application:
1. Application runs in two or more machines
2. Application is a menu-driven
3. Connected mode (connection exists always until logout)
4. Limited number of users
5. Less number of network issues when compared to web app.

Web application:
1. Application runs in two or more machines
2. URL-driven
3. Disconnected mode (state less)
4. Unlimited number of users
5. Many issues like hardware compatibility, browser compatibility, version compatibility, security issues, performance issues etc.

As per difference in both the applications come where, how to access the resources. In client server once connection is made it will be in state on connected, whereas in case of web testing http protocol is stateless, then there comes logic of cookies, which is not in client server.

For client server application users are well known, whereas for web application any user can login and access the content, he/she will use it as per his intentions.

So, there are always issues of security and compatibility for web application.

Over to you: On which application are you working? Desktop, client-server or web application? What is your experience while testing these applications?

To get software testing articles in your inbox click here to subscribe with your email address. 

Check your eligibility for CSTE certification. Take this sample CSTE examination

I have written many articles on software testing certifications. Here is one more ‘sample exam questions’ article on CSTE certification. CSTE testing certification is the basic certification to check testers skill and understanding of software testing theory and software testing practices.

If you are applying for CSTE certification check if you can answer at least 75% of the following test questions. Four and half hour CSTE exam consist of 4 parts, Two multiple choice parts and two essay parts.

Below you will find 20 multiple choice questions from all skill categories. There are around 10 skill categories and I have included 2 questions from each category.

Skill categories:

  • Software Testing Principles and Concepts
  •  Building the Test Environment
  •  Managing the Test Project
  •  Test Planning
  •  Executing the Test Plan
  •  Test Reporting Process
  •  User Acceptance Testing
  •  Testing Software Developed by Contractors
  •  Testing Internal Control
  •  Testing New Technologies

These are the latest sample questions from the CSTE CBOK.

Mark the answers somewhere so that you can check the score at the end of the test.

1. The customer’s view of quality means:
a. Meeting requirements
b. Doing it the right way
c. Doing it right the first time
d. Fit for use
e. Doing it on time

2. The testing of a single program, or function, usually performed by the developer is called:
a. Unit testing
b. Integration testing
c. System testing
d. Regression testing
e. Acceptance testing

3. The measure used to evaluate the correctness of a product is called the product:
a. Policy
b. Standard
c. Procedure to do work
d. Procedure to check work
e. Guideline

4. Which of the four components of the test environment is considered to be the most important component of the test environment:
a. Management support
b. Tester competency
c. Test work processes
d. Testing techniques and tools

5. Effective test managers are effective listeners. The type of listening in which the tester is performing an analysis of what the speaker is saying is called:
a. Discriminative listening
b. Comprehensive listening
c. Therapeutic listening
d. Critical listening
e. Appreciative listening

6. To become a CSTE, an individual has a responsibility to accept the standards of conduct defined by the certification board. These standards of conduct are called:
a. Code of ethics
b. Continuing professional education requirement
c. Obtaining references to support experience
d. Joining a professional testing chapter
e. Following the common body of knowledge in the practice of software testing

7. Which of the following are risks that testers face in performing their test activities:
a. Not enough training
b. Lack of test tools
c. Not enough time for testing
d. Rapid change
e. All of the above

8. All of the following are methods to minimize loss due to risk. Which one is not a method to minimize loss due to risk:
a. Reduce opportunity for error
b. Identify error prior to loss
c. Quantify loss
d. Minimize loss
e. Recover loss

9. Defect prevention involves which of the following steps:

a. Identify critical tasks
b. Estimate expected impact
c. Minimize expected impact
d. a, b and c
e. a and b

10. The first step in designing use case is to:
a. Build a system boundary diagram
b. Define acceptance criteria
c. Define use cases
d. Involve users
e. Develop use cases

11. The defect attribute that would help management determine the importance of the defect is called:
a. Defect type
b. Defect severity
c. Defect name
d. Defect location
e. Phase in which defect occurred

12. The system test report is normally written at what point in software development:
a. After unit testing
b. After integration testing
c. After system testing
d. After acceptance testing

13. The primary objective of user acceptance testing is to:
a. Identify requirements defects
b. Identify missing requirements
c. Determine if software is fit for use
d. Validate the correctness of interfaces to other software systems
e. Verify that software is maintainable

14. If IT establishes a measurement team to create measures and metrics to be used in status reporting, that team should include individuals who have:
a. A working knowledge of measures
b. Knowledge in the implementation of statistical process control tools
c. A working understanding of benchmarking techniques
d. Knowledge of the organization’s goals and objectives
e. All of the above

15. What is the difference between testing software developed by a contractor outside your country, versus testing software developed by a contractor within your country:
a. Does not meet people needs
b. Cultural differences
c. Loss of control over reallocation of resources
d. Relinquishment of control
e. Contains extra features not specified

16. What is the definition of a critical success factor:
a. A specified requirement
b. A software quality factor
c. Factors that must be present
d. A software metric
e. A high cost to implement requirement

17. The condition that represents a potential for loss to an organization is called:
a. Risk
b. Exposure
c. Threat
d. Control
e. Vulnerability

18. A flaw in a software system that may be exploited by an individual for his or her advantage is called:
a. Risk
b. Risk analysis
c. Threat
d. Vulnerability
e. Control

19. The conduct of business of the Internet is called:
a. e-commerce
b. e-business
c. Wireless applications
d. Client-server system
e. Web-based applications

20. The following is described as one of the five levels of maturing a new technology into an IT organization’s work processes. The “People-dependent technology” level is equivalent to what level in SEI’s compatibility maturity model:
a. Level 1
b. Level 2
c. Level 3
d. Level 4
e. Level 5

Done? Check the answers. 

In coming articles I will emphasize more on sample CSTE essay papers and how to answer multiple choice and essay type questions. You can refer previous software testing certification articles here.

To get more testing tips, register free with your email only.