Archive

Posts Tagged ‘Software’

GUI Testing Checklist

This GUI test checklist can ensure that all the GUI components are thoroughly tested. In the first part of this checklist, we will cover Windows compliance standard and some test ideas for field specific tests.

Windows Compliance Standards

These compliance standards are followed by almost all the windows based application. Any variance from these standards can result into inconvenience to the user. This compliance must be followed for every application. These compliances can be categorized according to following criteria

Compliance for each application

  • Application should be started by double clicking on the icon.
  • Loading message should have information about application name, version number, icon etc.
  • Main window of application should have same caption as the icon in the program manager.
  • Closing of the application should result in “Are you sure?” message.
  • Behaviour for starting application more than once must be specified.
  • Try to start application while it is loading
  • On every application, if application is busy it should show hour glass or some other mechanism to notify user that it is processing.
  • Normally F1 button is used for help. If your product has help integrated, it should come by pressing F1 button.
  • Minimize and restoring functionality should work properly
  • Compliance for each window in the application
  • Window caption for every application should have application name and window name. Specially, error messages.
  • Title of the window and information should make sense to the user.
  • If screen has control menu, use the entire control menu like move, close, resize etc.
  • Text present should be checked for spelling and grammar.
  • If tab navigation is present, TAB should move focus in forward direction and SHIFT+TAB in backward direction.
  • Tab order should be left to right and top to bottom within a group box.
  • If focus is present on any control, it should be presented by dotting lines around it.
  • User should not be able to select greyed or disabled control. Try this using tab as well as mouse.
  • Text should be left justified
  • In general, all the operations should have corresponding key board shortcut key for this.
  • All tab buttons should have distinct letter for it.

Text boxes

  • Move mouse to textbox and it should be changed to insert bar for editable text field and should remain unchanged for non-editable text field.
  • Test overflowing textbox by inserting as many characters as you can in the text field. Also test width of the text field by entering all capital W.
  • Enter invalid characters, special characters and make sure that there is no abnormality.
  • User should be able to select text using Shift + arrow keys.
  • Selection should be possible using mouse and double click should select entire text in the text box.

Radio Buttons

  • Only one should be selected from the given option.
  • User should be able to select any button using mouse or key board
  • Arrow key should set/unset the radio buttons.

Check boxes

  • User should be able to select any combination of checkboxes
  • Clicking mouse on the box should set/unset the checkbox.
  • Spacebar should also do the same

Push Buttons

  • All buttons except OK/Cancel should have a letter access to them. This is indicated by a letter underlined in the button text. The button should be activated by pressing ALT
  • Clicking each button with mouse should activate it and trigger required action.
  • Similarly, after giving focus SPACE or RETURN button should also do the same.
  • If there is any Cancel button on the screen, pressing Esc should activate it.

Drop down list boxes

  • Pressing the arrow should give list of options available to the user. List can be scrollable but user should not be able to type in.
  • Pressing Ctrl-F4 should open the list box.
  • Pressing a letter should bring the first item in the list starting with the same letter.
  • Items should be in alphabetical order in any list.
  • Selected item should be displayed on the list.
  • There should be only one blank space in the dropdown list.

Combo Box

  • Similar to the list mentioned above, but user should be able to enter text in it.

List Boxes

  • Should allow single select, either by mouse or arrow keys.
  • Pressing any letter should take you to the first element starting with that letter
  • If there are view/open button, double clicking on icon should be mapped to these behaviour.
  • Make sure that all the data can be seen using scroll bar.

Hope this checklist will help you in testing your GUI components in a better way. In next template, TestingGeek will discuss information about field specific tests and usage of shortcuts in the application GUI.

Interview Questions on Agile Development

November 29, 2012 Leave a comment

Interview Questions on Agile Development Methodologies

1) What is Agile Development model and explain about different methodologies in Agile Software development?

Agile Development model is an Incremental or iterative model,
It has several methodologies,

Types of Agile Methodologies

o Scrum

o Extreme Programming (XP)

o Agile Unified Process (AUP)

o Dynamic Systems Development Method (DSDM)

o Essential Unified Process (EssUP)

o Exia Process (ExP)

o Feature Driven Development (FDD)

o Open Unified Process (OpenUP)

o Crystal Clear

o Velocity tracking

2) What is the difference between Agile and Waterfall Model?

Difference between Agile and Waterfall Model:
1. The main advantage is the backward scalability in Agile. Under waterfall approach we cannot change the decisions and implementations that we had made under the previous stages. If we want to make changes under waterfall we will have to build the entire project from the scratch once again.
2. The flexibility to error check under any part of the development stage makes Agile more bug free and less erroneous as compared to Waterfall which can only test bugs at the end of the development module.
3. Since Agile provides flexibility to make changes as per customer requirements it is more inclined towards better client satisfaction. This is a real set back for the Waterfall model which doesn’t allow any modifications once the module has been completed.
4. Under Agile development modular partitioning of the software can be effectively carried out as compared to its counterpart. Though both of them allows option for segregation the later lacks the modifications in the implementation stage. The rules are set down before the commencement of the project hence it hinders further break down of the logical module. Whereas Agile can be of great help under such situations and can allow simultaneous development of different modules at the same time as per time bound requirement. If we want the project to be more segregated Agile comes as a pain relief for developers.

3) How Agile is different?

Agile is different because
a) Greater Collaboration.
b) Shorter work cycle and constant feedback.
c)  Need to embrace Change.
d) Greater flexibility.
e) Greater discipline.
f) Greater stakeholder accountability.
g) Greater range of skills.

4) What are the implications for testing in Agile?

– Agile testing must be iterative.
– Testers cannot rely on having complete specification.
– Agile testers must be flexible.

5) What are the Agile quality strategies?

Agile quality strategies are:
a) Re-factoring.
b) Non-solo development.
c) Static and dynamic code analysis
d) Reviews and inspection
– Iteration/sprint demos
– All-hands demo
– Light-weight milestone reviews
e) Short feedback cycles.
f) Standards and guidelines.

6) Explain about the Agile process?

The agile process follows the software development life cycle which includes requirements gathering, analysis, design, coding, testing and delivers partially implemented software and waits for the customer feedback. In the whole process, customer satisfaction is at highest priority with faster development time.

7) What are the new features of agile process?
In agile process new features can be added easily by using multiple iterations.

1. Iterative: The main objective of agile software processes is satisfaction of customers, so it focuses on single requirement with multiple iterations.
2. Modularity
Agile process decomposes the complete system into manageable pieces called modules. Modularity plays a major role in software development processes.
3. Time Boxing
As agile process is iterative in nature, it requires the time limits on each module with respective cycle.
4. Parsimony
In agile processes parsimony is required to mitigate risks and achieve the goals by minimal number of modules.
5. Incremental
As the agile process is iterative in nature, it requires the system to be developed in increments, each increment is independent of others, and at last all increments are integrated into complete system.
6. Adaptive
Due to the iterative nature of agile process new risks may occurs. The adaptive characteristic of agile process allows adapting the processes to attack the new risks and allows changes in the real time requirements.
7. Convergent
All the risks associated with each increment are convergent in agile process by using iterative and incremental approach.
9. Collaborative
As agile process is modular in nature, it needs a good communication among software development team.
Different modules need to be integrated at the end of the software development process.
10. People Oriented
In the agile processes customer satisfaction is the first priority over the technology and process. A good software development team increases the performance and productivity of the software.

8) Where the agile methods focus on?

The agile methods are focused on different aspects of the software development life cycle. Some focus on the practices (extreme programming, pair programming), while others focus on managing the software projects (the scrum approach).

9) What are the benefits of Agile Modeling?

Agile methodology has an adaptive team which is able to respond to the changing requirements.
The team does not have to invest time and effort and finally find that by the time they delivered the product, the requirement of the customer has changed.
Face to face communication and continuous inputs from customer representative leaves no space for guesswork.
The documentation is crisp and to the point to save time.
The end result is the high quality software in least possible time duration and satisfied customer.

Database Testing questions asked by Interviewer @IGATE

October 13, 2012 Leave a comment

Below are the few database testing questions which have been asked by interviewer when I’ve attended the  IGATE walk-in Drive.

Company: Patni Computer System ( Now it’s iGATE)

Interview Type: Walk-in Drive

Date :  18th September 2010, Saturday

  • What is Database testing & What we normally check for in the Database Testing?
  • How to Test database in Manually? Explain with an example.
  • What is data driven test?
  • How to check a trigger is fired or not, while doing database testing?
  • How to Test Database Procedures and Triggers?
  • Is a “A fast database retrieval rate” a testable requirement?
  • What SQL statements have you used in Database Testing?
  • What are different Joins, Give example of each.
  • Can you delete a parent table record if there is a child table record exits? How ?
  • What is Referential Integrity.
  • What is RowID
  • How to know the database version
  • How to execute SQL script in Query window
  • How to create temporary variable
  • How to print an Environment variable
  • What is meant by Database user, how it is different from Login

Knowledge Work Book – Interview Question Bank(QA)

August 24, 2012 1 comment

Company: Cybage Software [An SEI-CMMI Level 5 assessed &  V1.3 Company]  www.cybage.com

Interview Type: Walk-in/Referral walk-in

Date: 11th August 2012

Venue: CT1, Kalyaninagar, PUNE

Rakesh Hansalia (QA, Cybage, Gandhinagar )  http://www.linkedin.com/in/rakeshhansalia
Below are the questions which were asked to the candidates in the walk-in interview for QA position:

1)      Describe yourself

2)      Describe your current project?

3)      Which is the android latest version?

4)      What is the difference between Android 2.1 and Android 2.2?

5)      Oops concepts.

6)      Difference between a class and a interface.

7)      Different version control.

8)      SQL queries.

9)      Do you have any idea of join in sql?

10)  Test case format

11)  What are smoke, regression and functional testing?

12)  Bug Life cycle

13)  What is equivalence partitioning?

14)  How to identify an object in selenium and QTP?

15)  How to display a message in Selenium?

16)  Different views in QTP.

17)  Different modes in QTP.

18)  What is test automation framework?

19)  What are different types of automation frameworks?

20)  How you do security testing for an application?

21)  What content you include in test status report?

22)  How you have mentored your team? ( This question is applicable if you have written in your CV that you have mentored)

23)  Have you prepared test plan? If yes, then what content you include in test plan?

24)  Would you like to ask any questions from us?

25)  Describe application certification testing.

26)  How you do certification testing?

27)  What role you are playing in your current company?

28)  What are the differences and similarity between the mobile app which you are testing in your current project with the app if you tested it on windows?

29)  Difference between System testing and Functional testing.

30)  3 most important test scenarios for a pen.

31)  3 least important test scenarios for a pen from user point of view.

32)  Suppose 100 requirements are there, how will you estimate them?

33)  Suppose 1000 tcs are there, will you run all 1000 tcs on all devices?

34)  3 assert commands.

35)  Difference between Selenium Web driver, RC and IDE.

36)  Rate yourself for automation.

37)  What are the components of QTP?

38)  Do you have knowledge of sql?

39)  What is compatibility testing? Is compatibility testing functional or non functional?

40)  What is non-functional testing?

41)  Relate usability and reliability with your current project.

42)  Suppose somebody is not comfortable with you in your team and he/she does not tell anybody what he/she feels but you know that your peer is not comfortable then what will you do?

43)  If you have mentioned hobbies in your resume, then they can ask you questions related to your hobbies.

44)  Do you have any questions which you want to ask?

45)  What is root cause analysis?

46)  3 scenarios for which you as a tester can’t do root cause analysis or help developer to know the what is the reason for a bug?

47)  write a c program to create a pattern :       1

2 2

3  3  3

48) What is stdio.h?

49) What is a library?

50) Tell me the names of 3 libraries.

51) Tell me the names of 5 automation tools for mobile.

52) Suppose you are the only resource and work is of 3 days and you have to complete it in 2 days, then what will you do?

53) Suppose you have to select device for an application which should work on latest as well as previous Android versions, then which device will you select?

54) What is polymorphism?

Software QA quotes

May 11, 2012 1 comment

Software testing is not all about  tasks  – testcases to write, scripts to run, issues to file, bugs to verify, tests reports etc.

It’s fun too =D

Here are some of my favorite quotes as a Software QA. Enjoy!

* Software Testing: Where failure is always an option.
* Improving the world one bug at a time.
* Software Testing: You make it, we break it.
* Software Testers don’t break software; it’s broken when we get it.
* Software Testers: We break it because we care.
* If developers are so smart, why do testers have such job security?
* Life is too short for manual testing.
* Trust, But Verify.
* The Definition of an Upgrade: Take old bugs out, put new ones in.
* We break software so you don’t have to.
* I used to build software…now I break it! Its a lot more fun!!
* All code is guilty, until proven innocent.
* It’s Automation, Not Automagic!
* Quality Assurance, we take the blame so you don’t have to.
* In God we trust, and for everything else we test.

Pick yours from the list. =)

10 Tips to Survive and Progress in the Field of Software Testing

These tips not only survive but also advance you in your software testing career. Make sure you follow them:

Tip #1) Written communication – I repeatedly saying this on many occasions that keep all things in written communication. No verbal communication please. This is applicable to all instructions or tasks given to you by your superior. No matter how friendly your lead or manager is but keep things in emails or documents.

Tip #2) Try to automate daily routine tasks – Save time and energy by automating daily routine task no matter how small those tasks are.
E.g. If you deploy daily project builds manually, write a batch script to perform the task in one click.

Tip #3) 360 degree testing approach – To hunt down software defects think from all perspectives. Find all possible information related to the application under test apart from your SRS documents. Use this information to understand the project completely and apply this knowledge while testing.
E.g. If you are testing partner website integration with your application, make sure to understand partner business fully before starting to test.

Tip #4) Continuous learning – Never stop learning. Explore better ways to test application. Learn new automation tools like Selenium, QTP or any performance testing tool. Nowadays performance testing is the hot career destination for software testers! Have this skill under your belt.

Tip #5) Admit mistakes but be confident about whatever tasks you did – Avoid doing the same mistake again. This is the best method to learn and adapt to new things.

Tip #6) Get involved from the beginning – Ask your lead or manager to get you (QAs) involved in design discussions/meetings from the beginning. This is more applicable for small teams without QA lead or manager.

Tip #7) Keep notes on everything – Keep notes of daily new things learned on the project. This could be just simple commands to be executed for certain task to complete or complex testing steps, so that you don’t need to ask same things again and again to fellow testers or developers.

Tip #8) Improve you communication and interpersonal skill – Very important for periodic career growth at all stages.

Tip #9) Make sure you get noticed at work – Sometimes your lead may not present the true picture of you to your manager or company management. In such cases you should continuously watch the moments where you can show your performance to top management.
Warning – Don’t play politics at work if you think your lead or manager is kind enough to communicate your skill/progress to your manager or top management. In that case no need to follow this tip.

Tip #10) Software testing is fun, enjoy it – Stay calm, be focused, follow all processes and enjoy testing. See how interesting software testing is. I must say it’s addictive for some people.

Bonus tip
Read read and read – Keep on reading books, white papers, case studies related to software testing and quality assurance. Always stay on top of the news in software testing and QA industry.

Source : http://www.softwaretestinghelp.com/how-to-improve-communication-skill/