Eklectic Software Testing

• 2006-May-10 - Tester and Functional Analyst. Wearing both hats....

Posted in Me

I have been working on functional requirements of our product from past 6-7 months and now have been officially announced as Functional Analyst for our product suite just recently.  I am very happy, it’s like a dream come true.

Comments (3) :: Permanent Link

• 2006-Apr-24 - To Be a Good Tester ...

Posted in Me

Following are the quotes which I often read to inspire myself  To Be a Good Tester,

 


"To be an efficient software tester the person really has to enjoy testing, have a knack for it, be analytical, detail oriented, and be versatile, such as

a) Be technically savvy,  

b) Understand the business, and

c) Never stop learning and improving on the testing efforts"

-Elfriede Dustin

 

 

Think of at least three possible explanations for something that you've observed. If you can do that reliably, you're on your way to becoming a first-class tester.
-Jerry Weinberg


Comments (1) :: Permanent Link

• 2006-Apr-7 - Exploratory testing

I have always been doing ad-hoc manual testing, until I stumbled upon the articles by James Bach (the guru) on Exploratory testing, some two years ago. And since then I have greatly enhanced and organized my testing process. Exploratory Testing techniques have given my manual testing process a great form and meaning, and there is no place for the word ah-hoc.

 

“Exploratory testing is simultaneous learning, test design, and test execution.”

- James Bach

 

Based on this definition, exploratory testing is categorized as follows

  • Learning the product
  • Test design
  • Test execution

 

Following are the test heuristics that I use while I do exploratory testing, build from the articles by James Bach.

 

§         The process of “Learning the product” is most important in exploratory testing. To learn the product – understand the product, the following are the “Learning the product – Lessons”

-          Visual lesson: Get familiar with the product, the general UI, the general process flow etc.

-          Feature lesson:  List all the features and its function

-          Variability lesson: List all the things you can change in the product and its effects, expected not expected

-          Complexity lesson:  List 5 most complex things in the product (the number vary depending upon the size of the project). Find ways to get into the system the developers may not want to

-          Claims lesson – List all information that tells you what the product does. You are looking not only to identify what the claims are; but also the attempts to find out which claims are vague possibly incomplete or even inconsistence

1.      Identify reference materials that include claims about the product (implicit or explicit)

2.       If you’re testing from an explicit specification, expect it and the product to be brought into alignment

-          Structure lesson – Answer the following question

1.      What files does it have?

2.      Do I know anything about how it was built?

3.      Is it one program or many?

4.      What physical material comes with it?

5.       Can I test it module by module? 

-          Data Lesson : Identify major data elements of the application; what are they; where are they coming from

1.      Input: any data that is processed by the product

2.      Output: any data that results from processing by the product

3.      Preset: any data that is supplied as part of the product, or otherwise built into it, such as prefabricated databases, default values, etc.

4.      Persistent: any data that is stored internally and expected to persist over multiple operations. This includes modes or states of the product, such as options settings, view modes, contents of documents, etc.

5.      Temporal: any relationship between data and time, such as the number of keystrokes per second, date stamps on files, or synchronization of distributed systems

6.      Big and little: variations in the size and aggregation of data

7.      Invalid: any data or state that should trigger an error handling function

8.      Identify how the data can be accessed, created, modified or deleted

-          Configuration Lesson

1.      Related to data lesson and variability lesson

2.      Look for persistence and how it affects product feature

3.      Attempt to find all the ways you can to change settings in such a way that application retains those settings

-          Compatibility Lesson: Answer following question

1.      What does the application interact with

2.      How well it does with the external components and configuration

3.      What does it depend on to function properly

 

§         Test design

-          Testability: Find all features you can use as testability feature and identify tools you have available

-          User: Imagine 5 users of the product and the information they want from the products or the major features they would be interested in

1.      Identify categories and roles of users.

2.      Determine what each category of user will do (use cases), how they will do it, and what they value.

-          Scenario – try to imagine 5 realistic scenario for how the user identified earlier would use the product

1.      Begin by thinking about everything going on around the product.

2.      Design tests that involve meaningful and complex interactions with the product.

3.      A good scenario test is a compelling story of how someone who matters might do something that matters with the product.

 

§         Test Execution : Based on ‘learning the product’ and ‘test design’, execute the test

-          Function Testing

1.      Test each function, one at a time.

2.      See that each function does what it’s supposed to do and not what it isn’t supposed to do

-          Claims Testing – Based on claims lesson

1.      Analyze individual claims, and clarify vague claims

2.      Verify that each claim about the product is true

-          Domain Testing

1.      Decide which particular data to test with. Consider things like boundary values, typical values, convenient values, invalid values, or best representatives.

2.      Consider combinations of data worth testing together.

-          Stress Testing

1.      Look for sub-systems and functions that are vulnerable to being overloaded or “broken” in the presence of challenging data or constrained resources.

2.      Identify data and resources related to those sub-systems and functions.

3.      Select or generate challenging data, or resource constraint conditions to test with: e.g., large or complex data structures, high loads, long test runs, many test cases, low memory conditions.

-          Flow Testing

1.      Define test procedures or high level cases that incorporate multiple activities connected end-to-end.

2.      Don’t reset the system between tests.

3.      Vary timing and sequencing, and try parallel threads.

-          User Testing

1.      Get real user data, or bring real users in to test.

2.      Otherwise, systematically simulate a user (be careful—it’s easy to think you’re like a user even when you’re not).

3.      Powerful user testing is that which involves a variety of users and user roles, not just one

-          Scenario Testing: Test to a compelling story

1.      Based on the user and their roles, and the scenario listed during test design execute your tests

-          Risk Testing: Imagine a problem, and then look for it.

1.      What kinds of problems could the product have?

2.      Which kinds matter most? Focus on those.

3.      How would you detect them if they were there?

4.      Make a list of interesting problems and design tests specifically to reveal them.

5.      It may help to consult experts, design documentation, past bug reports, or apply risk heuristics.

-          Random Testing: Run a million different tests

1.      Look for opportunities to automatically generate a lot of tests.

2.      Develop an automated, high speed evaluation mechanism.

3.      Write a program to generate, execute, and evaluate the tests.

 

The process of learning the product, designing the tests and executing the tests is ever improving. Each one undergoes modification if the other is changed. While you execute the test you learn more about the product, you change your test design accordingly and hence the execution.

 

Result: In freestyle exploratory testing, the only official result that comes from a session of ET is a set of bug reports.

 


The exploratory tester must watch for anything unusual or mysterious

Exploratory testers must also be careful to distinguish observation from inference.

Excellent exploratory testers are able to review and explain their logic, looking for errors in their own thinking.

 Excellent exploratory testers build a deep inventory of tools, information sources, test data, and friends to draw upon. While testing, they remain alert for opportunities to apply those resources to the testing at hand.


Comments (4) :: Permanent Link

• 2006-Mar-30 - Images for TestCase Template

I have uploaded the images for the TestCase template. Please select Photos and Files to view the images. They are in TestCase Template folder.

 

I will try and upload the excel sheet as soon as possible.

Comments (2) :: Permanent Link

• 2006-Mar-29 - Quote of the day

Posted in Quotes

“[An artist] paints with his brain, not with his hands.”

—Michelangelo Buonarroti

Comments (1) :: Permanent Link

• 2006-Mar-29 - From Manual to Automation

Posted in Automation

I have been trying to get stated with Automation from past 5-6 months or so. I do not any have any previous automation experience as such. Initially I started with downloading the evaluation copies of the testing tools available. But it did not help, since to even evaluate tools I needed to know the basics of automation. I turned my focus on learning as much as i can about automation, in which QAforums was of great help.

 

I have summarized following as to "to do" to get started with automation

1. Learn Basic programming: http://pine.fm/LearnToProgram/ is a good start for those who have never done any programming

2. Learn any scripting language : I have started with Ruby(will be useful for open source tools) and also want to get hand-on jscript(will be good for licensed tools)

3. Read as much as you can on Test Automation methodologies:

     "Software Test Automation" by Fewster & Graham

     "Automated Software Testing" by Dustin, Rashka and Paul

      http://www.pettichord.com/

 ...few to begin with. Internet is the ocean of information, if you look for it...

 

I have figured out this much; will keep adding to the list

Comments (2) :: Permanent Link

• 2006-Mar-28 - Test Case Template

I would like to share the Test Case template that I have been using. I use Excel sheet to write my test cases.

 

Below are the details of how to read the test cases.

 

How to Read Test Case

 

Figure 1

  1. Test Case Id is the number of the test case
  2. Test Case Id represents each test case which is the series of action and expected result.
  3. To read the action and result, for example Test Case 01, follow the small circles and perform the action against it.(Figure 1)
  4. For example to execute Test case 01, follow the blue circle and perform step 1, “Enter URL”. Now there are no more steps for this test so check the expected result

Figure 2

 

5.       Scroll down to the Expected Results, again follow the small circles for Test Case 01 and check for the expected results against it.(Figure 2)

6.       If the actual test result and expected result is same, the mark the test case as Pass i.e. “P”, else mark it as Fail i.e. “F”

7.       You have the flexibility to insert as many rows for Test description and Expected results, but should be restricted so that the readability is not lost

8.       Further rows to include more test cases per sheet can be added(no restriction), but I prefer this way to make it appear in one view on the sheet(i.e. no need to scroll vertically)

9.       You can add as many sheets as you want, just copy the template sheet. If you want you can continue with the test case number to the next sheet, but I usually start the test case numbers for new Module/Feature combination

10.   This approach is easy to use and require less writing since you only have to add the circle based on the steps.

 

I am always in the process of improving the template.

 

I welcome all the comments to improve it.

 

Comments (4) :: Permanent Link

• 2006-Mar-15 - Why Eklectic Software Testing ...

Software testing is application of various techniques, art and science

 

Testing is applied epistemology

Testing is grounded in congnitive psychology

Testing requires inference, not just comparison of output to expected result

- Cem Kaner, James Bach and Bret Pettichord

 

Testing is an extremenly creative and intellectually challenging task

- Glenfor Myres

 

hence Eklectic,

Comments (0) :: Permanent Link

• 2006-Mar-15 - My first Entry

Posted in Me

I am software tester, have software testing experience of abt 3 yrs. I am an amateur software tester(mostly manual testing) aspiring to be an expert through dedication and hard work. This blog will mostly contain new testing techniques that I will learn everyday and try to implement it, so that other can also share my learning experience.

Comments (2) :: Permanent Link

About Me


«  August 2008  »
MonTueWedThuFriSatSun
 123
45678910
11121314151617
18192021222324
25262728293031

Links

Home
View my profile
Archives
Friends
Email Me
My Blog's RSS
Photos & Files

Friends

metalbaby
JakeBrake
jimhazen
philk10
strazzerj
jpweston
ruthie
ovidiu
Page 1 of 1
Last Page | Next Page