Why do we write Test Cases?
By – Ainars Galvans
Writing Test Cases as almost the only widely accepted and QC-specific idea/technique are object of my wonder since I started in testing field. Now after almost 10 years I have at last some understanding about it. Today I could say that I am advocate of exploratory testing, but I was actually even before I learned the term and idea. And still writing TC makes sense in a lot of cases, it is just wrong to believe that it is the silver bullet in any context.
Last year I compared Test Cases with shield and testing itself with a sword . I still believe Test Case creating could have two purposes/goals:
1) Test Cases are supposed part of the deliverable to the customer. TC goal credibility in this case. Typically UAT (acceptance) level.
2) Test Cases are for team internal use only. Typically System level testing. Testing efficiency should the goal in this case. The idea is to write test cases based on design while code is incomplete, so that we could test product quickly once the code is ready.
With moving to more agile development the second case begin to fail. I’ve seen this happening in my company and posts about this happening in other companies as well. It appears this ends up in one of the following ways:
a) TC are used internally, but the goal is credibility, not efficiency. It also means that TC are dramatically reworked during test execution
b) Exploratory type testing take place, only specific regression TC are written during exploratory testing or afterwards
c) Exploratory type testing take place, no TC written
I will not investigate further type a) as it is simple evidence of weak test manager – he was unable to convince management that this is ineffective usage or this resources. There are also sometime test cases created only to have something to report test progress against. Like we have 80% of test cases written and 70% of them pass. I have already attacked this approach and will in future as much as possible. This is most typical mistake to measure quality in number of defects open and test progress in numbers of test cases, I suggest everyone to read James Bach to learn why.
Cases b) and c) are both OK and depend on either we will need reusable test cases. To be true I believe that regression tests cases written and automated test scripts written have a lot in common. I would even say there are three levels:
I Pure exploratory testing
II Executing the test case written
III Executing automated test script
The design time increases from up (I suppose 0 for exploratory tests) to down, while test execution time decreases. However the scope of defects to be found also decreases, because automated tests for example will only validate what you scripted to validate, that means you should forecast what the defects may appear. While during manual testing you may see the indirect evidence of some defect. More over, the more detailed test case is, the more times one tester have executed it already (and as a result runs it faster now), the less probably he will find those indirect validation problems.
So much theory, now a little bit of practice. What I do in new project is following:
First of all I find any UI automation for the first release of product to be useless. This may be different for one-release projects, but I don’t have experience with those. Of course unit tests like JUnit executing specific API functions makes sense and are ideally created by developers, but sometimes testers may help with that.
Next I don’t write ANY tests cases any more during testing cycle. I only update Test Plan that at the end of release has a very detailed “features tested” list with some hints and notes about features not working and bug IDs. Just after the release I do create test cases document details on how to invoke each feature, what input is expected by the feature etc. It is little bit like documentation, but have different goal/approach: goal is to make regression test execution as fast as possible – e.g. I attach data to be imported as much as possible to reduce data preparation time and I don’t care to describe why I use exactly such data – have no time; I explain in details how to do perform the most trivial use case, tester (unless newbie) may add details such as error handling using brains.
I try to use Testing Dashboard as replacement for formal test report with test cases executed/passed/failed/no executed. Sometimes I just communicate progress informally as my “gut-feeling”, and this is actually what PM wants to know, not the numbers of test cases
Publish your presentation on Web – Use spresent.com
I had visited spresent.com accidently & got adicted to it.Here you will get bundle of features to make class presentation.
Spresent is free Web-based alternative to PowerPoint, built with Flash.You can create and edit high-quality Flash presentations online.
You can send presentations via e-mail or publish on your web site or blog.
Software Testing Certifications
As Software Testing field is expanding,there are various courses & certifications offered to make a rewarding career in Software testing.
When selecting a certification to pursue, a person has to ask the following essential question: Will the certification make me a better test professional?
A number of factors about a certification scheme can help answer this question. These factors can also be used to evaluate the value of the certification. Some of these factors are:
- How comprehensive is the program? Does it cover a wide range of knowledge areas?
- What do I have to do to earn the certification, is it merely passing an exam or will I receive education on how to do my job better?
- Is the program based on providing substantial coverage of each of the areas of a Body of Knowledge?
- Can students choose from among a variety of instructors and courses satisfying each of the Body of Knowledge education requirements or is it one-size-fits-all?
- In addition to a proof of completing the certification, will I receive any evidence of completing the course of study?
- Has there been any history of the certification being awarded to individuals without qualifying them? This can adversely affect how the software community perceives the value of the certification.
Following are the certifications available in Software Testing :
1) ISTQB ( International Software Testing Qualifications Board )
The ISTQB was officially founded as an International Testing Qualifications Board in Edinburgh in November 2002.
The ISTQB is responsible for the “ISTQB Certified Tester”, which is an international qualification scheme and the qualifications in the
scheme are based on a syllabus. There is an examination covering the contents of the syllabus.
After the examination, each successful participant receives the “ISTQB-Certified-Tester” certificate.
Foundation and Advanced are two levels for certifications.
URL:http://www.istqb.org/
2) CQA-Certified Quality Analyst:
For Professional level of competence in the principles and practices of quality assurance in the IT profession.
http://www.asq.org/training-and-certification.html
3) CSTE-Certified Software Test Engineer:
Intended to establish standards for initial qualification and provide direction for the testing function through an aggressive educational
program.
4) CSTP- Certified Software Test Professional:
To teach individuals from different disciplines sound and effective testing techniques and methods and to certify them as Software Testing
Professionals.
www.iist.org
5) CQE- Quality Engineer Certificate:
CQE is designed for those who understand the principles of product and service quality evaluation and control.
6) Quality Manager Certification:
For those who understand quality principles and standards in relation to organization and human resource management
7) CSQE- Certified Software Quality Engineer:
CSQE is designed for those who have a comprehensive understanding of software quality development and implementation; have a
thorough understanding of software inspection and testing, verification, and validation; and can implement software development and
maintenance processes and methods
Even few vendors provide certifications in Testing.
Vendors who offer Testing Certifications: Mercury,Segue,Rational & Empirix .
India to emerge as global leader in software testing
India according to reports has the potential to garner 70% share of the outsourced testing market.
India is on its way to becoming a leader in the software testing market with more and more companies outsourcing their software testing services to the India that has a large availability of testers. Over the last few years, the Indian players have proved that they can offer testing services at a fraction of the cost. Software testing, makes sense, since it costs a lot of money and time to find and fix the software bugs or errors in software, once the product is released in the market. Software bugs cost the US economy an estimated $59.5 billion annually, which is equivalent to 0.6 per cent of its gross domestic product. Users and the developers end up paying for the bugs in the software. This loss can be reversed if the companies invest in timely and high quality software testing.
However, software testing is not a new phenomenon, but has been a part of any software development or maintenance process. Companies tested the product in-house by establishing separate testing divisions. This was known as detached testing where the testing team did not consist of developers who wrote the codes and therefore they could test the product better.
However, many companies cannot afford to set up a separate testing division. This is where outsourcing comes in. The companies who cannot invest in a specialised testing division have turned to independent software testing providers in offshore locations like India. Outsourcing software testing services has its distinct advantages. Companies who outsource testing service enjoy a reduced cycle time, a shorter time to market and a high quality of service at a far lower cost. Besides,a third party tester is more like a beta user of the product, who can study the software programme and find critical faults. A majority of the companies, in the US, Europe and Japan, are now outsourcing testing services either to their own subsidiaries or independent testing companies. Research firm Gartner estimates the worldwide software testing market at $13 billion and the global market size of outsourced testing services is around $6.1 billion. India according to reports has the potential to corner 70% share of the outsourced testing market. A META Group study reveals that the software testing market in India will touch $700 million to $1 billion by 2007. The top ten IT firms in India including Infosys, Wipro, Cognizant Technology Solutions and Tata Consultancy Services (TCS) have been quick in creating independent testing practices in-house. Testing is however increasingly being seen as a specialised service. IT companies have started positioning themselves as independent software testing (IST) services providers, offering software testing as a standalone service. There are roughly ten IST players in India of a reasonable size with a combined turnover of around Rs 200 crore. The leaders include RelQ, ThinkSoft, ReadyTestGo, Maveric, Applabs, Polaris Application Certification Enterprise (PACE), IQA Tester and Stag Software.
Testing is now comparable with other IT services in terms of billing rates and compensation levels of testing professionals. The testing service market in India is booming with the rapid expansion of Indian IST firms.However, the challenge these companies face is in finding the right talent. Testing requires a good knowledge of the testing process and knowledge of the domain the product operates in. This kind of talent is not easily available. The testing industry does not have the support of training academies that focus on testing. IST firms at present depend entirely on in-house capabilities to train beginners. The problem of finding talented testing professionals is compunded by the fact that IT professionals view software testing industry as a stop gap arrangement. To the industry’s relief, this perception is changing gradually with more and more IT professionals looking at software testing as a serious career option.
Source : Express Computer
JavaScript Error
This page explains what a JavaScript error is and how to deal with it.
Most internet users have encountered the annoying JavaScript error at some stage. This happens when a script in a web page contains an error or fails to execute correctly. Exactly what happens depends on the browser and type of error, but in most cases some sort of error notification will be displayed.
The Error Message
In Internet Explorer’s default setting, a small warning icon appears in the status bar like the one pictured left. Double-click this icon to display a window with the complete error message. The complete error message looks something like this:
|
|
![]() |
Note: If you see a less detailed version of this window, click the “Show Details” button.You can choose to have this error window appear automatically whenever an error occurs. This could be annoying for general surfing, but it is very useful when writing your own JavaScript. This is because the error message always lets you know when something is wrong with your code, and even better, it usually tells you exactly where in the HTML document the problem lies (in the above example, line 71 character 1).
What to Do When You See an Error
If you are visiting a website which shows an error, you obviously can’t fix it but if you’re feeling generous you might like to contact the webmaster and let them know. You can still view the page (disabling automatic error messages will make it easier), but whatever the script was supposed to do won’t work. This may or may not effect on the functionality of the page.If you are the webmaster, you need to understand what the error message is telling you and fix it. Keep reading….
How to Fix JavaScript Errors
There are two types of JavaScript error:
· Syntax Error: Occurs when there is a mistake in the way the code is written; for example, a typo or missing character.
· Runtime error: Occurs when the script is unable to complete its instructions; for example, if a specified object cannot be found.
Syntax Error
The function below contains an error and will result in the error message as pictured. In this case the message tells you that a closing parenthesis is missing.
function showAlert() {
alert('Hello World!';
}
Not all error messages are as clear as this but once you’ve seen a few (and you will see a few!) you’ll start to recognise what they mean.
How to send large attachments via email
If you want to send large files via emails,then you can’t do it with Gmail or Yahoo because they the restriction of 20 MB max file attachments.Here is the new service which will allow the users to email the files of size up to 2 GB,yes 2 GB.
This is transferbigfiles.com which will allow any body to send files up to 2 Giga bytes in size.By this you can send movies,mp3,video files which are generally large in size, without splitting.This is very easy to use ‘file sharing service’.What you have to do is to just upload your files to the site and insert the email addresses to which to want to send these files.
20 Websites That Can Change Your Life
The internet has changed all of our lives, hopefully in a more positive direction. You can use these sites just for entertainment or you can use them to change your life. Many of them you visit all the time but it’s time to look at them another way and harness their power.*These are in no particular order.
1 – Facebook – Facebook allows you to reconnect with old and new friends. In the case of Lori Haas, facebook helped Lori reunite with her son that she gave up for adoption when she was just 17. (Full Story)
2 - Myspace – This is the most popular social network on the web, even though it has the most spam. Some absolutely hate myspace, but others have used it to launch their careers. Many singers and musicians have achieved “overnight” success using the network. Like facebook you can connect with friends but myspace makes it easier for networking with people you don’t know and create new business contacts.
3 – Digg – many will agree with this choice, while others will strongly disagree. But Digg can open you up to a whole new realm of news. You can visit the homepage once a day and instantly become up to date on what’s going on in the world. You can use Digg to your advantage, find the latest trends in business or find articles on improving your life.
4 – Kiva – Kiva is a lending site that helps entrepreneurs in developing countries finance their ventures. It doesn’t take much to help someone out. By changing others you can change yourself.
5 – Lifehack.org – Lifehack can help you get things done. This blog has in depth articles on all things that do with productivity.
6 – YouTube – If you want to work in the entertainment industry, YouTube is a great way to get your feet wet and at a very low cost. You have an audience of millions of people at your disposal.
7 – Google – This is an obvious one. I really don’t know how we lived without Google in the early days of the internet.
8 – Twitter – Twitter may someday save lives by people quickly alerting others of dangerous situations to avoid. During the California fires, people used Twitter to let friends know that they were safe. You can also use Twitter as a way to help with your business networking by knowing where your business contacts are at.
9 – eBay – eBay can save you a lot of money but can also bring you immense opportunities. You can easily create an online business that reaches millions of buyers. Many people have very successful million dollar enterprises using ebay.
10 – Ancestry.com – This website can help you piece together your family history. By understanding the past your can change the future. * Many readers have expressed concerns about the business practices of Ancestry.com. Please read comments below and be sure to check any complaints about Ancestry.com or any other business before working with them.
*11 – Zen Habits – This blog is similar to Lifehack.org by offering simple productivity to get the most of your life.
12 – Craigslist – You can find almost anything on Craigslist. It’s a simple site but can simply change your life.
13 – Post Secret – The Post Secret project shows you that we’re all very much the same. It can also show you that others may have worse problems than the ones your facing.
14 – LinkedIn – You can use LinkedIn to network with professionals from all areas of business including Fortune 500 companies.
15 – TED.com – This website is full of various videos from TED conferences and has biographies on some of the greatest thinkers of present time. Presentations from successful people such as Tony Robbins, Richard Branson, Jeff Bezos, Bono, Seth Godin, and Jane Goodall. Most videos are a few minutes long but can empower you for years to come.
16 – Wikipedia – Not everything on Wikipedia is accurate but there is so much information on almost every topic possible. Don’t know about something, just look it up on Wikipedia and within a few minutes you can be informed.
17 – The Fastlane to Millions – This is a relatively new and small forum for those who are or aspire to be entrepreneurs and millionaires. The members are very positive and want to help each other get the most out of life.
18 – Second Life – This virtual world may seem like a virtual waste of time but some people such as Anshe Chung have found opportunities limitless on Second Life. Anshe has become a millionaire by buying and selling virtual real estate.
19 – Quoteland – You can visit Quoteland and read hundreds of quotes that will give you a fresh perspective and change your life in minutes. If you have an open mind.
20 – 43 Things – 43 Things can be a great way to achieve your goals. You can post your dreams and aspirations for all to see. Having that type of pressure can be very positive for you, helping you continue till you reach your goals.
* 21 – Stumble Upon – This has been requested by readers to be added to the list. Stumble Upon can change your life and help you discover so many new websites you would never be able to otherwise.
* 22 – del.icio.us – This site has also been demanded to be added to the list. So since many have found Lyved via del.icio.us, it must be an addition. Maybe someone from del.icio.us can change their life after visiting Lyved.What sites have been most beneficial to you or changed your life? Leave a comment below.
How to be like Google
Google was started in 1996 by Sergey Brim and Larry Page as a project at Stanford University. In September of 1997 the domain name, google.com was registered and in September 1998 the company was incorporated. Google started out in garage but quickly grew into the company we know today. Google’s rapid success is amazing even by dotcom standards. If you are launching an internet venture, Google’s story is where you can look for motivation and inspiration. Even if your aren’t, Google can teach you how to go about your life and succeed beyond your wildest dreams.
Be simple
Google was not the first internet search engine, but while other sites were offering too much on their portals, Google presented a simple page with a simple search bar. You should do the same, simplify yourself and your life. Don’t be a complicated person. The more complicated you are, the less people will understand you. The easier you are to understand, the easier it will be for you to convey ideas and points, and for you to make friends and contacts.
Expand yourself
Though Google has a simplified homepage, they have expanded into various areas of the internet and media. You should do the same. Don’t limit yourself, each of us has multiple talents, some talents we just need to take time to discover.
Feel lucky
“I’m Feeling Lucky” is a button next to the search button but it’s something that you should always feel. Feel lucky about what you do and don’t have. Appreciate your life and those around you. You have great things in your life whether you have money and success or don’t.
Innovate
Google has changed the internet and the business world. You should innovate yourself and the world around you. There is always something that needs to be improved, no matter where you look. If you look around your computer desk right now, I’m sure there’s something that can be improved and can make you successful.
Be bigger than anyone expected
There will always be naysayers and people that will downplay your dreams and aspirations. Push them aside but always keep them in mind, you’ll need them for motivation to keep you going so that you can prove them wrong. It’s easier to be the underdog.
Surround yourself with smart people
Google has thousands of employees but they continue to hire smart people. You will need to do this too. Surround yourself with smart people, they’ll bring you great ideas, fill in the voids you can’t, and some of their knowledge may rub off on you.
Don’t be evil
This is Google’s own slogan. The motto was established by GMail creator Paul Buchheit. It’s just a few words and a simple idea but it can make or break your chance at success. No one is going to want to work with you if you’re an evil person. Be friendly and be welcoming to people and customers.
Take care of people
Google’s employees enjoy amazing perks for working there. Including a beautiful environment and relaxing atmosphere to work in, among other things. Most employees would never think of leaving Google because of this. You should take of people as well, whether you know them or not. They will repay you by working harder, by helping you out when you need a hand, or just by increasing your good karma.
By following these rules, Google has become a $150 billion company in a short amount of time. These rules work in the business world but can also work in the rest of the world.
Download online video – use Converttube.com
This service allows you convert an Online Video like ‘YouTube videos’ to more popular formats like wmv, mov, mp4, mp3, 3gp etc.All you have to do is copy and paste the UR L of whatever video you want to download into the ConvertTube text box.
Check what you want to convert for—choose from Windows, Mac, Mobile, Flash, Audio, or Pod/iPhone/PSP. Finally, hit the convert and download button, and you’ve got yourself a copy of your favorite video. It’s effortless and it’s absolutely free.
Test Plan
The test strategy identifies multiple test levels, which are going to be performed for the project. Activities at each level must be planned well in advance and it has to be formally documented. Based on the individual plans only, the individual test levels are carried out.
Entry means the entry point to that phase. For example, for unit testing, the coding must be complete and then only one can start unit testing. Task is the activity that is performed. Validation is the way in which the progress and correctness and compliance are verified for that phase. Exit tells the completion criteria of that phase, after the validation is done. For example, the exit criterion for unit testing is all unit test cases must pass.
Unit Test Plan {UTP}
The unit test plan is the overall plan to carry out the unit test activities. The lead tester prepares it and it will be distributed to the individual testers, which contains the following sections.
What is to be tested?
The unit test plan must clearly specify the scope of unit testing. In this, normally the basic input/output of the units along with their basic functionality will be tested. In this case mostly the input units will be tested for the format, alignment, accuracy and the totals. The UTP will clearly give the rules of what data types are present in the system, their format and their boundary conditions. This list may not be exhaustive; but it is better to have a complete list of these details.
Sequence of Testing
The sequences of test activities that are to be carried out in this phase are to be listed in this section. This includes, whether to execute positive test cases first or negative test cases first, to execute test cases based on the priority, to execute test cases based on test groups etc. Positive test cases prove that the system performs what is supposed to do; negative test cases prove that the system does not perform what is not supposed to do. Testing the screens, files, database etc., are to be given in proper sequence.
Basic Functionality of Units
How the independent functionalities of the units are tested which excludes any communication between the unit and other units. The interface part is out of scope of this test level. Apart from the above sections, the following sections are addressed, very specific to unit testing.
Unit Testing Tools
Priority of Program units
Naming convention for test cases
Status reporting mechanism
Regression test approach
ETVX criteria
Integration Test Plan
The integration test plan is the overall plan for carrying out the activities in the integration test level, which contains the following sections.
What is to be tested?
This section clearly specifies the kinds of interfaces fall under the scope of testing internal, external interfaces, with request and response is to be explained. This need not go deep in terms of technical details but the general approach how the interfaces are triggered is explained.
Sequence of Integration
When there are multiple modules present in an application, the sequence in which they are to be integrated will be specified in this section. In this, the dependencies between the modules play a vital role. If a unit B has to be executed, it may need the data that is fed by unit A and unit X. In this case, the units A and X have to be integrated and then using that data, the unit B has to be tested. This has to be stated to the whole set of units in the program. Given this correctly, the testing activities will lead to the product, slowly building the product, unit by unit and then integrating them.
System Test Plan {STP}
The system test plan is the overall plan carrying out the system test level activities. In the system test, apart from testing the functional aspects of the system, there are some special testing activities carried out, such as stress testing etc. The following are the sections normally present in system test plan.
What is to be tested?
This section defines the scope of system testing, very specific to the project. Normally, the system testing is based on the requirements. All requirements are to be verified in the scope of system testing. This covers the functionality of the product. Apart from this what special testing is performed are also stated here.
Functional Groups and the Sequence
The requirements can be grouped in terms of the functionality. Based on this, there may be priorities also among the functional groups. For example, in a banking application, anything related to customer accounts can be grouped into one area, anything related to inter-branch transactions may be grouped into one area etc. Same way for the product being tested, these areas are to be mentioned here and the suggested sequences of testing of these areas, based on the priorities are to be described.
Acceptance Test Plan {ATP}
The client at their place performs the acceptance testing. It will be very similar to the system test performed by the Software Development Unit. Since the client is the one who decides the format and testing methods as part of acceptance testing, there is no specific clue on the way they will carry out the testing. But it will not differ much from the system testing. Assume that all the rules, which are applicable to system test, can be implemented to acceptance testing also.
Since this is just one level of testing done by the client for the overall product, it may include test cases including the unit and integration test level details.
A sample Test Plan Outline along with their description is as shown below:
Test Plan Outline
1. BACKGROUND :
This item summarizes the functions of the application system and the tests to be performed.
2. INTRODUCTION :
This item summarizes the introduction of the application system.
3. ASSUMPTIONS :
Indicates any anticipated assumptions which will be made while testing the application.
4. TEST ITEMS :
List each of the items (programs) to be tested.
5. FEATURES TO BE TESTED :
List each of the features (functions or requirements) which will be tested or demonstrated by the test.
6. FEATURES NOT TO BE TESTED :
Explicitly lists each feature, function, or requirement which won’t be tested and why not.
7. APPROACH :
Describe the data flows and test philosophy.
Simulation or Live execution, Etc. This section also mentions all the approaches which will be followed at the various stages of the test execution.
8. ITEM PASS/FAIL CRITERIA Blanket statement :
Itemized list of expected output and tolerances.
9. SUSPENSION/RESUMPTION CRITERIA :
Must the test run from start to completion?
Under what circumstances it may be resumed in the middle?
Establish check-points in long tests.
10. TEST DELIVERABLES :
What, besides software, will be delivered?
Test report
Test software
11. TESTING TASKS Functional tasks (e.g., equipment set up):
Administrative tasks
12. ENVIRONMENTAL NEEDS :
Security clearance
Office space & equipment
Hardware/software requirements.
13. RESPONSIBILITIES :
Who does the tasks in Section 10?
What does the user do?
14. STAFFING & TRAINING :
15. SCHEDULE :
16. RESOURCES :
17. RISKS & CONTINGENCIES :
18. APPROVALS :
The schedule details of the various test pass such as Unit tests, Integration tests, System Tests should be clearly mentioned along with the estimated effort.
Posted By – Lokesh Ahire.
