One of the most frequent and major activity of a Software Tester 
(SQA/SQC person) is to write Test Cases. First of all, kindly keep in 
mind that all this discussion is about ‘Writing Test Cases’ not about 
designing/defining/identifying TCs.
There are some important and 
critical factors related to this major activity.Let us have a bird’s eye
 view of those factors first.
a. Test Cases are prone to regular revision and update:
We
 live in a continuously changing world, software are also not immune to 
changes. Same holds good for requirements and this directly impacts the 
test cases. Whenever, requirements are altered, TCs need to be updated. Yet, it is not only the change in requirement that may cause revision and update to TCs.
During
 the execution of TCs, many ideas arise in the mind, many sub-conditions
 of a single TC cause update and even addition of TCs. Moreover, during 
regression testing several fixes and/or ripples demand revised or new 
TCs.
b. Test Cases are prone to distribution among the testers who will execute these:
Of
 course there is hardly the case that a single tester executes all the 
TCs. Normally there are several testers who test different modules of a 
single application. So the TCs are divided among them according to their
 owned areas of application under test. Some TCs related to integration 
of application, may be executed by multiple testers while some may be 
executed only by a single tester.
c. Test Cases are prone to clustering and batching:
It
 is normal and common that TCs belonging to a single test scenario 
usually demand their execution in some specific sequence or in the form 
of group. There may be some TCs pre-requisite of other TCs. Similarly, 
according to the business logic of AUT, a single TC may contribute in 
several test conditions and a single test condition may consist of 
multiple TCs.
d. Test Cases have tendency of inter-dependence:
This
 is also an interesting and important behavior of TCs that those may be 
interdependent on each other. In medium to large applications with 
complex business logic, this tendency is more visible.
The 
clearest area of any application where this behavior can definitely be 
observed is the interoperability between different modules of same or 
even different applications. Simply speaking, wherever the different 
modules or applications are interdependent, the same behavior is 
reflected in the TCs.
e. Test Cases are prone to distribution among developers (especially in TC driven development environment):
An
 important fact about TCs is that these are not only to be utilized by 
the testers. In normal case, when a bug is under fix by the developers, 
they are indirectly using the TC to fix the issue. Similarly, where the 
TCD development is followed, TCs are directly used by the developers to 
build their logic and cover all scenarios, addressed by TCs, in their 
code.
So, keeping the above 5 factors in mind, here are some tips to write test cases:
1. Keep it simple but not too simple; make it complex but not too complex: 
This
 statement seems a paradox, but I promise it is not so. Keep all the 
steps of TCs atomic, precise with correct sequence and with correct 
mapping to expected results, this is what I mean to make it simple.
Now,
 making it complex in fact means to make it integrated with the Test 
Plan and other TCs. Refer to other TCs, relevant artifacts, GUIs etc. 
where and when required. But do this in balanced way, do not make tester
 to move to and fro in the pile of documents for completing single test 
scenario. On the other hand do not even let the tester wish you had 
documented these TCs in some compact manner. While writing TCs, always 
remember that you or someone else will have to revise and update these.
2. After documenting Test cases, review once as Tester:
Never
 think that the job is done once you have written the last TC of the 
test scenario. Go to the start and review all the TCs once, but not with
 the mind of TC writer or Testing Planner. Review all TCs with the mind 
of a tester. Think rationally and try to dry run your TCs. Evaluate that
 all the Steps you have mentioned are clearly understandable, and 
expected results are in harmony with those steps.
The test data
 specified in TCs is feasible not only for actual testers but is 
according to real time environment too. Ensure that there is no 
dependency conflict among TCs and also verify that all references to 
other TCs/artifacts/GUIs are accurate because, testers may be in great 
trouble otherwise.
3. Bound as well as ease the testers:
Do
 not leave test data on testers, give them range of inputs especially 
where calculations are to be performed or application’s behavior is 
dependent on inputs. You may divide the test item values among them, but
 never give them liberty to choose the test data items themselves. 
Because, intentionally or unintentionally, they may use same test data 
and some important test data may be ignored during the execution of TCs.
Keep
 the testers eased by organizing TCs according to the testing categories
 and related areas of application. Clearly instruct and mention which 
TCs are inter-dependent and/or batched. Similarly, explicitly indicate 
which TCs are independent and isolated so that tester may manage his 
overall activity at his or her own will.
4. Be a Contributor:
Never
 accept the FS or Design Document as it is. Your job is not just to go 
through the FS and identifying the Test Scenarios. Being a quality 
related resource, never hesitate to contribute. Suggest to developers 
too, especially in TC-driven development environment. Suggest the 
drop-down-lists, calendar controls, selection-list, group radio buttons,
 more meaningful messages, cautions, prompts, improvements related to 
usability etc.
5. Never Forget the End User
The
 most important stakeholder is the ‘End User’ who will actually use the 
AUT. So, never forget him at any stage of TCs writing. In fact, End User
 should not be ignored at any stage throughout the SDLC, yet my emphasis
 so far is just related to my topic. So, during the identification of 
test scenarios, never overlook those cases which will be mostly used by 
the user or are business critical even of less frequent use. Imagine 
yourself as End User, once go through all the TCs and judge the 
practical value of executing all your documented TCs.
Conclusion:
Test
 Case Writing is an activity which has solid impact on the whole testing
 phase. This fact makes the task of documenting TCs, very critical and 
subtle. So, it should be properly planned first and must be done in 
well-organized manner. The person who is documenting the TCs must keep 
in mind that, this activity is not for him or her only, but a whole team
 including other testers and developers, as well as the customer will be
 directly and indirectly affected by this work.
So, the due 
attention must be paid during this activity. “Test Case Document” must 
be understandable for all of its users, in an unambiguous way and should
 be easily maintainable. Moreover, TC document must address all 
important features and should cover all important logical flows of the 
AUT, with real time and practically acceptable inputs.
http://www.softwaretestinghelp.com/tips-for-writing-test-cases/ 
 
 
No hay comentarios.:
Publicar un comentario