THE GATE TO THE REAL SOFTWARE TESTING EXPERIENCE AND KNOWLEDGE IN "TESTING A SOFTWARE" WORLD

Showing posts with label Software Testing Experience. Show all posts
Showing posts with label Software Testing Experience. Show all posts

Sunday, April 1, 2012

Outsourcing For Software Testing

Outsourcing For Software Testing

Outsourcing is the process of contracting a business function to another organization. There are many possible reasons for outsoucing e.g. cost and knowledge.

The outsoucing has been used in Software Testing as well. My organization has contracted to an outsouce for some software testing projects. Here is things that I have learned from this activity.

Pros.
1. We can leave the routine task to outsource. So, we can have more time for improving our skill and analysis.
2. We can improve project management and co-ordination skill by managing and monitoring outsource.

Cont.
1. When the time for removing outsource comes, some tasks are hard to returned to us. This means that when you use outsouce, uses them smarter and managable. Not give them everything.
2. Without good project management, the quality of software is uncontrolable.

Monday, December 12, 2011

Tips to improve technical knowledge for tester in Agile Testing

Tips to improve technical knowledge for tester in Agile Testing

It is important for tester who participates in Agile Testing to improve technical knowledge. This knowledge is essential for discussing with developer. So, I summarize the key things that I normally use for improving my technical knowledge.

Tips to improve technical knowledge

1. Learn the technology and architecture of our software
First of all, we should understand which technology is used for implementing our application and what it is. Then, we should understand the high-level architecture. For example, my project is about web application which consumes data from 3 web services in different server. From this information, you will know the dependency, risk and limitation of our system. For example, the change in web service is the risk in our project.

2. Discuss with developer. Don't be shy.
As we usually use face-to-face communication in agile, this is a good chance to talk to developer in various technical aspects. I normally use this chance to learn the high-level design of new feature. We should not just listen. We should think and analyze the developer's design as well. From this activity, we may find the wrong design and can provide the valid feedback to developers. This is good thing because we can fix the issue earlier.

Saturday, December 3, 2011

Pair Testing in Agile

Pair Testing in Agile

Pair testing is a practice which two team members are sitting together to test the software application on the same machine. The two team members can be between one tester and developer/business analyst/another tester.
Pair Testing

My team has applied this practice and these are benefits that I have found from Pair Testing.
1. Developers will know how testers do software testing. So, developers can apply test strategy for their own testing during coding.
2. Testers will have more idea about how the software works. This will make testers improve their test strategy and see the risk or impact in this code.
3. Tester can use it for on-the-job training to teach new tester by working together between experienced tester and new tester.
4. Face-to-face communication is used follows the Agile method.

This practice is time consuming activity so we should apply this practice if we see the benefit from this knowledge sharing.

Monday, November 28, 2011

4 Tips to write test cases

4 Tips to write test cases

It is important for tester to improve how to write test cases. So, I summarize the key things that I normally consider when I am writing test cases. From this article, I will start with the meaning and the required information for test cases. Then, I will explain the tips to write test cases.

What is the test case?

The test case is a sequence of steps to test the correct behavior of software by comparing with the expected result or expected outcome.

Required information in the test case

- Test case ID
- Component
- Test case description
- Steps to be executed
- Test data
- Expected result
- Pass/Fail

4 Tips to write test cases

1. Focus on requirement analysis
First of all, we should analyze what we are going to test. This activity occurs during development phase so we should focus in requirement analysis. We should keep in mind that we cannot write test cases well by using the poor requirement.

2. Make the test case for unfamiliar tester
We should write test cases which is easy to understand. Then, the tester who is unfamiliar with the application can execute the test case easily. Someone may think why he have to spend more time to write test cases for this purpose. Let's think what will happen if we have to assign tester from another team to help us testing but he cannot help because of our test cases.

3. Apply black box testing technique
We should always use black box testing technique to derive the effective test case.

4. Always cover negative flow
We should cover negative flow in test case because developer often make mistake with negative flow. From my experience, the problem from negative flow often cause big problem with software.

Wednesday, November 23, 2011

Localization and Globalization Testing

Localization and Globalization Testing

Globalization Testing

Globalization Testing is the software testing process for checking if the software can work properly in various culture/locale settings using every type of international input.

Localization Testing

Localization Testing in the software testing process for checking the localized version of a product (e.g., Japanese product for Japanese user). Localization Testing checks the quality of a localized version for a particular that culture/locale setting. Localization Testing is based on the results of Globalization Testing which verifies the functional support for that particular culture/locale setting. We should invite the local staff to help our localization testing by checking the quality of translation as well.

Localization Testing

You can test on localized OS build (e.g.,Windows XP Japanese version) or MUI on English OS Build. I suggest you to start with MUI version for Globalization Testing because MUI can help you switch to other language settings easier and faster. From my software testing experience, most bugs occur with German and Japanese culture/locale setting.

Here are the common bugs found from Testing
Cannot display the correct format
The software cannot display the format as defined by the regional setting of OS (e.g., numbers, dates, time, currency, and calendars). I have found that developers often display the static format as English culture/locale setting although it is international software.

Functionality is broken
The functionality which works properly on English setting may not work on other settings. I have found that one root cause of this problem is the communication problem between the API's owner and consumer. They forgot to make an agreement for the data format; one party uses the local format but another uses the English format.

Now we understand the importance of Localization Testing and Globalization Testing and the risk if we don't have this type of software testing. So, it is good idea to implement this testing type for your international software.

The Risk From Roaming User Profile. One Of Tester's Checklist For Software Testing.

The Risk From Roaming User Profile. One Of Tester's Checklist For Software Testing.

From my software testing experience, I have got many issues related to the Roaming User Profile from customers. So, I think this issue is important enough to consider when we start doing the software testing.

Roaming User Profile

First of all, I would like to introduce the term of Roaming User Profile. Roaming User Profile is a system process that allows a user can access his documents and has a consistent desktop experience on any computer. To enable this feature these computers have to join the Active Directory. The key concept is that a group of files for a user will be transferred to the machine that user is logging in.

What is its risk?

As I have said, user profile's files will bind to user but not bind to machine. So, if developers store any software configuration in a machine, we should ensure that there is no any Configuration File which tries to refer any item in a machine cause the problem. From my software testing experience, the possible problem can be:
Roaming User Profile For Software Testing

1. Configuration File in user profile refers to an installation path of software. It can cause the problem because the installation path in any machine can be customized by user - C:\Program Files in the first machine, D:\Program Files in the second machine, for example.

2. Configuration File in user profile refers to version of software. It can cause the problem because there is no guarantee that all of the machines will be upgraded to the same version at the same time.

From this example, I think testers should consider User Roaming Profile as one checklist when execute software testing. The suggested solution for this issue is to set up Roaming User Profile as one test environment when do any software testing.

Saturday, November 19, 2011

Is it necessary to have Integration Testing Phase?

Is it necessary to have Integration Testing Phase?

Since the Integration testing can be done in several levels, I will choose one level as example for this article. The Integration testing that I choose is the software testing for interaction between 2 systems which occurs after System Testing Phase. However, the idea from this article can be applied to other level of Integration Testing Phase as well.


"Is Integration Testing Phase necessary?" This question may be in some testers' mind after they need to do the same testing as System Testing Phase. My answer of this always is "Yes, Of Course". Let see what I have experienced.

I have assigned to do website testing and this website consumes data from various data sources. There are plans to release new version of many data sources on the same date as my website.
integration testing diagram

I have done my website testing in System Testing Phase and the result looks good. No pending bug from my website testing. Then, I wait until start date of the Integration Testing Phase which every data sources are ready. Shock!!! My website is broken when I do website testing on Integration Testing Phase. What's wrong with my test result from prior website testing?

The issue has been raised to developers for investigation and they take one week to investigate the issue. The problem comes from the new version of one data source. Its version in website testing's report from system test environment is older than integration test.
--------------------------------------------------------------------------

From this lesson, I always think about the dependency of my system. Then, manage the risk from them. Finally, do the software testing as soon as possible if the Integration Testing Phase is ready.

Friday, November 18, 2011

Software Testing in Requirement Analysis

Software Testing in Requirement Analysis

I have found that many bugs are introduced during Requirement Phase but testers can detect them during do software testing. If they can detect bugs in Requirement Phase, the cost for fixing them will be cheaper. So, it is worth to remove them during this phase. Here is some activity that tester can involve.

Keep in mind that the requirement must be clear

The good requirement must be clear, measurable, testable and defined enough for system design. Moreover, the requirement must be fulfilled by using client's information. Don't try to answer the query ourselves with any assumption. If they are not clear, we should not let it go to the next development phase.

Using software testing skill to explore the missing cases in requirement

Let using testing design skill for requirement analysis by thinking about the possible cases for the requirement. Then, try to summarize the list of question for client. Again!!! Don't try to answer the query ourselves.

Don't limit the first idea by technical constraint

The first idea for detail of requirement often has been limited by technical constraint. From my view, we should drive the requirement by business need first. The requirement adjustment because of technical constraint should come later.

Don't shy to ask any question

Tester is one of the project member. So, we should not shy to ask any question or raise any concern. Our question or concern may be the significant issue for the requirement analysis.
----------------------------------------------------------------------------

Tester is one of the project member. We can improve the quality of project by contributing our value since the Requirement Analysis activity.

Saturday, November 12, 2011

How To Design Test Cases for testing the correctness of Calculation

How To Design Test Cases for testing the correctness of Calculation

I have found that many testers feel afraid when they are assigned to do software testing with the calculation module. Here is some guideline that will help you do software testing better.

calculation for black box testing

Learn how it calculates

It will be good if you understand what you will test. With this information, you can design the test strategy for software testing properly.

Apply Black Box testing technique

Apply Black Box testing technique; Equivalence partitioning, Boundary value analysis and Pairwise testing (All-pairs testing); for test cases design will improve the coverage of software testing.

We can use the equivalence partitioning testing technique to partition the possible cases. Don't forget to put the exception case from error guessing to the software testing scope as well (e.g., Divide by Zero case). From my experience, many bugs can be detected by testing the exception case.

The Boundary value analysis will help you to select the test case for checking also. Pairwise testing can be used for testing the formula that contains many input variables (e.g.,"=Floor(NUMBER,SIGNIFICANCE)" in MS Excel ).

Don't try to calculate manually for comparing the result

You should not calculate manually for comparison because it often contains the human error. Using the calculation from another program, e.g., MS Excel, is better because it does not contain human error. If the result is different, one of them should be wrong. So, the next step is to investigate this issue.

---------------------------------------------------------------
With this guideline, I hope that you will feel more confident when do software testing for any calculation.

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More