Application Testing – Into the Basics of Software Testing!

Topics we will cover in this article:
- Application Testing
- Categories of Applications
- Application Testing Methodologies
- Application Testing Tools
- Software Test Plan
- Application Testing Cycles
- Application Testing – Best Practices

Application Testing is an activity that every software tester performs daily in his career. These two words are extremely broad in practical aspect. However, only the core and most important areas will be discussed here. The purpose of this article is to touch all the primary areas so that the readers will get all the basic briefing at a single place.

Categories of Applications

Whether it is small calculator software with only the basic arithmetic operations, or an online enterprise solution; there are two categories of applications.
a. Desktop
b. Web

For desktop applications, testing should take into account the UI, business logic, database, reports, roles and rights, integrity, usability and data flow. For web applications, along with all these major areas; testers should give sufficient importance to performance, load and security of the application. So AUT is either desktop software or a website.

Application Testing

Application Testing Methodologies

This is a well-known and well discussed aspect; there are only 3 universally accepted methodologies;

a. Black Box: In black-box testing, the AUT is validated against its requirements considering the inputs and expected outputs, regardless of how the inputs are transformed into outputs. Testers are least concerned with internal structure or code that implements the business logic of the application. There are four primary techniques to design test cases for black box testing;

i. BVA (Boundary value Analysis)
ii. EP (Equivalence Partitioning)
iii. Decision Tables
iv. State Transition Tables (and diagrams)

a. White Box: Primary focus of this methodology is to validate, how the business logic of application is implemented by code. Internal structure of the application is tested and the techniques available to do so are;

i. Code Coverage
ii. Path Coverage

Both the above listed techniques contain several other strategies that may be discussed in some other article. Some techniques are discussed in ‘Test Case Design Techniques’ topic.

a. Grey Box: Practically speaking, this is a mixture of black box and white box. In this methodology, mainly the tester tests the application as in black box. But, for some business critical or vulnerable modules of application; testing is done as white box.

Application Testing Tools

According to the best of my knowledge, there are at least 50 testing tools available in market today. These include both paid and open source tools. Moreover, some tools are purpose specific e.g. UI testing, Functional Testing, DB Testing, Load Testing, Performance, Security Testing and Link validation testing etc. However, some tools are strong and provide the facility of testing several major aspects of an application. The general concept of ‘Application Testing’ is its functional testing. So, our focus will be on functional testing tools.

Here is the list of some most important and fundamental features that are provided by almost all of the ‘Functional Testing’ tools.

a. Record and Play
b. Parametrize the Values
c. Script Editor
d. Run (the test or script, with debug and update modes)
c. Report of Run session

Different vendors provide some specific features that make their product unique to other competitor products. But the five features listed above are the most common and can be found in almost all the functional testing tools.

Following is the list of few widely used Functional Testing tools.

1) HP QTP (Quick Test Professional)
2) Selenium
3) IBM Rational Robot
4) Test Complete
5) Push to Test
6) Telerik

Software Test Plan (STP)

For any activity, some planning is always required and same is true for software testing. Without proper plan there is always high risk of getting distracted during the testing. If this risk becomes a fact, the results could be horrible.

Following are the 5 main parts of a good Test Plan:
a. Scope
i. Overview of AUT
ii. Features (or areas) to be tested
iii. Exclusions (features or areas not to be tested) with reason
iv. Dependencies (of testing activities on each other, if any)

------------

b. Objectives: This section describes the goals of testing activity e.g. validation of bug fixes, new features added or revamp of AUT etc.

c. Focus: This section describes what aspect of application will be included in the testing e.g. security, functionality, usability, reliability, performance or efficiency etc.

d. Approach: This section describes what testing methodology will be adopted for which areas of AUT. For example, in the STP of an ERP application; the approach section may contain the information that black box testing will be approach for payroll. On the other hand, for reports the approach will be grey box testing.

e. Schedule: This sections describes that who will be doing what and where on the AUT, when and how. Schedule section is, in fact, a ’4Ws and H’ of the STP. Normally it is a simple table, but every organization may have its own customized format according to their own needs. Once the test plan is ready and application is under development; testers design and document the test cases. In the “Application Testing – Methodologies” section above, I have listed the TC design techniques.

Application Testing Cycles

Once the AUT is ready for testing, the practical phase of testing cycle starts in which testers actually execute the test cases on AUT. Keep in mind that here the testing cycle is discussed regardless of Testing Levels (Unit, Module, Integration, System and User Acceptance) and Testing Environments (Dev, QA, Client’s Replica, Live).

a. Smoke Testing: The very first testing cycle that is wide and shallow in approach. The purpose of smoke testing is to verify that there are no crashes in the application and it is suitable for further testing.

b. Sanity Testing: The second testing cycle that is narrow and deep in its approach. Its purpose is to verify that a specific module is working properly and is suitable for complete testing.

Tip: Usually there is not ample amount of time available to run these two cycles separately. So, a mixture of both these cycles is adopted in practical.

c. Functional Testing: The proper and full fledged testing of application is performed in this cycle. The primary focus of this activity is to verify the business logic of the application.

d. Regression Testing: This is the final cycle of testing in which the bug-fixes and/or updates are verified. Moreover, regression testing also ensures that there is no malfunctioning in other areas of AUT due to fixes and changes.

Bugs are logged in every testing cycle. There is no distinct border line between the testing cycles. For example, in Regression the Functionality is also verified and it may also require smoke, sanity or their merger first.

Application Testing – Best Practices

I think, hundreds of articles are available about this on internet. Every article suggests different number of best practices ranging from 7 to 30 (that I have seen so far). However, I have just 5 tips for readers.

  1. Plan Properly
  2. Test Keenly
  3. Log the bugs Clearly
  4. Do Regression Test Efficiently
  5. Improve above four skills Continuously

Conclusion: Application Testing is a vast subject and the primary activity of any software tester. In this article, I have provided the overview of some most fundamental and necessary areas that fall under this topic. Application Testing involves strategies, phenomena, approaches, tools, technologies and guidelines. However, I have addressed the conceptual and practical insight of its salient concerns.



Get FREE eBook + Blog Updates By Email!

Subscribe to get software testing awesome articles and free resources. Enter your email address and click 'SIGN UP NOW' button.


58 comments ↓

#1 Suhas on 08.15.11 at 8:32 pm

the resources linked in the article along with the app testing topic .. that’s loads of information.

#2 Poonam on 08.15.11 at 8:50 pm

really, need to sit back and take a coffee to read all the topics linked herewith.. :)

#3 Deo Ram Yadav on 08.16.11 at 5:16 am

I found nice automation tools:
for functional testing: IBM RFT
for performance testing: IBM RPT

These are really nice tools…

#4 Neela on 08.16.11 at 5:38 am

Thanks so much. Articles on softwaretestinghelp.com are always good and valuable

#5 Pravina on 08.16.11 at 6:08 am

nice one, its really helpfull for me

#6 Aarthi on 08.16.11 at 9:41 am

nice one but it can be in detail

#7 kiran on 08.16.11 at 5:51 pm

thanks very much

#8 Muhammad Abrar on 08.17.11 at 7:51 am

Back to the basics!!

#9 ARUNA on 08.17.11 at 2:32 pm

Clearly focused on basics. Nice article.

#10 Mithi on 08.18.11 at 3:16 pm

usefull.

#11 Tal Harel on 08.18.11 at 5:39 pm

Good introductory!

#12 Pratap on 08.19.11 at 4:23 am

Hi All

I m looking for Software Testing institute in Noida or Delhi..

Can anybody help me on this?

Thanx

Pratap

#13 mani chander on 08.19.11 at 10:49 am

it is the very good articles and provided with very good basics knowledge of application testing. thanks

#14 Vinay on 08.19.11 at 1:51 pm

is qspiders in bangalore a good institute with good teaching and placement services.. as i have no % in puc.. i have 45% in puc.. where as 65 % in 10th and degree.. can anyone help.. whether having such low % i wil get placed..

#15 Van Nguyen on 08.19.11 at 3:30 pm

Sorry, I still don’t understand AUT. What does it stand for?

#16 Swapna on 08.19.11 at 7:59 pm

@ Van
AUT means Application Under Test, the application for which you want to write and execute test cases.

#17 Yamraaj on 08.23.11 at 4:22 am

@Van Nguyen: (AUT = Application Under Testing)

A good, precised and well focused article, must read for all beginners. All the major and mostly asked basic points of Software Testing, covered by the author in a good precise manner. Best part is that the article is quite absorbing and not like the typical boring stuff available today.
Good work Author, keep it up!

#18 vinayak on 08.23.11 at 11:08 am

@van
AUT ( application under test)
the application for which you want to write and execute test cases (test object).

#19 Afshan Rauf on 08.25.11 at 10:59 am

very useful article …really helpful

#20 Manish on 08.29.11 at 6:21 am

Hi,
Can any body provide some basic idea of any project in brief where smoke and salanity testing is done

Thanks,
Manish

#21 Pragati on 09.05.11 at 1:44 pm

Good job………….

#22 Tushar on 09.05.11 at 1:46 pm

Very helpful Article for all the Freshers

#23 manikandan on 09.06.11 at 12:24 pm

Well good,useful documentation for freshers and for professionalist will be a good reference guide.

Regards
manikandan

#24 sneha on 09.12.11 at 6:34 am

Software testing methodologies are
1)Agile
2)spiral
3)waterfall
4)scrum
5)V model

Do let me know if I misunderstood

#25 Pratap Gusain on 09.12.11 at 10:53 am

this is the best article i have ever read..thanx pradeep…really really helpful ..u the best :)

#26 Pratap on 09.13.11 at 8:21 am

Hi all

Can anybody tell me how to test a website in which

“iFrames” plays a very important role.

i mean few things that i must remember while testing

these kind of site ?

plz help me guys

#27 SHARMILA MATHEW on 09.16.11 at 9:32 am

good, systematic and highly informative

#28 A Ahmad on 09.17.11 at 7:29 am

Highly rich and precise resource for beginners

#29 Rahul Rizvi on 10.05.11 at 3:21 pm

very useful content

#30 Nil Shriwas on 10.12.11 at 5:27 am

Very Usefull for fresher.

#31 Shambhu Das on 10.12.11 at 11:08 am

grt writing …rEally helps

#32 Yugal Kishore Jangare on 10.14.11 at 9:23 am

Hi All,

I need to write Test Scenarios of an ATM Machine Cache withdrawal program.

Where the Test Cases would be written to test out the multiplication logic of each “Currency note” i.e. 100Rs, 500Rs, 1000Rs when a user is withdrawing a particular amount from the ATM, and Machine should give the money based on the Currency available in the ATM.

e.g. If an ATM is having an amount “N” in the machine in multiplication of 100Rs*X, 500*Y and 1000*Z and a User needs to withdraw an amount “n”.

What would be the logic of calculation made by ATM program.

Positive and Negative scenarios will be appreciated.

Thanks all for your help.

#33 Niki on 11.10.11 at 8:22 am

Thanks a lot for the article….

#34 noidametro on 11.10.11 at 12:39 pm

hi thanks for writing that article.

#35 Venkat on 11.11.11 at 11:49 am

Many thanks for the information on all concepts of software testing….every article is provided very nice and simple…

#36 nageswararao on 11.21.11 at 9:01 am

hi friends any freshers jobs for testing

pls tell inform me

my mail id :: nageswararao23@gmail.com

nageswararao23@hotmail.com

#37 Golak Senapati on 11.25.11 at 4:43 pm

When a developer is not accepting the tester’s defect. Then what should be the action from the tester’s side.

Can any one please let me the proper answer for this?

#38 Golak Senapati on 11.25.11 at 4:45 pm

When a tester can tell that his testing is completed for the application.

Can any one please let me know the proper answer for this?

#39 Golak Senapati on 11.25.11 at 4:49 pm

Client got a very big defect in the production. But the tester is confident that all the test cases what he has written is very aligned to the client requirements. There is no requirement which is missing in the test cases. still he cannot say to the client that the defect came is not in the requirement.

So what should be the action from the tester’s side to the client.

If any body knows the answer of this, please share..

#40 JimP on 12.04.11 at 11:40 pm

Nice article cover the basics, just wondering if you could share some web-based bug tracking tools that you’d recommend from your experience?

#41 Tariq on 01.13.12 at 11:23 am

Nice and brief wrote

#42 H Ashraf on 01.20.12 at 7:01 pm

Nice article it will help for beginners…

#43 Chetan on 01.25.12 at 6:43 am

This is best site of testing…..

#44 Chetan Nayi on 01.25.12 at 6:44 am

very usefull…… site

#45 Noel on 01.31.12 at 8:31 am

Can anyone tell me which is among the best software testing institutes in Bangalore ? And how about job placements with the same ?

#46 manu on 02.19.12 at 6:23 pm

hi I am diploma holder looking for manual testing job will i get it?

#47 Ranjan on 03.14.12 at 4:45 am

hi i am a graphics designer in mobile application but i want to know about testing . what i do ? plz help me

#48 Prashant Gupta on 04.27.12 at 6:44 am

A very good combination of material used.
Very helpful for beginners.

#49 Prashant Gupta on 04.27.12 at 6:48 am

Can you please tell me some thing effective in qa testing.
if so please send it to my mail i am a mca professional

prashantgupta_241@rediffmail.com

#50 Anubhuti on 05.15.12 at 4:30 am

I want to know what is the difference between RAD and prototype model.

What is business functions

#51 Neha on 06.02.12 at 11:40 am

Very helpful site for all Tester

#52 vinoth kanna on 08.30.12 at 11:58 am

i am working as a tester but every one saying that development has a huge scope some please answer me

#53 sushama on 09.08.12 at 9:23 am

very helful side for all tester

#54 Cletus on 09.10.12 at 7:44 am

Very useful articles and manuals in this site..

#55 nas on 12.10.12 at 4:37 pm

can i know the author name!! because we making an article so i have to include the author name in the references

#56 nas on 12.10.12 at 4:39 pm

can i know the author name!! because we are making an article so i have to include the author name in the references

#57 Jenny on 07.23.13 at 2:36 pm

Thanks a lot guys to have prepared this site. :)

#58 Prabu on 08.12.13 at 7:02 am

Thanks a lot..