Software QA FYI - SQAFYI

Software QA/Testing Technical FAQs

Part:   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42   43  44  45  46  47 

If you don't have requirements specification, how will you go about testing the application?


Answer1:
if there is no requirement specification and testing is required then smoke testing or Gorilla testing is a best option for it in this way we can understand the functionality and Bugs of the application

Answer2:
As a thumb rude, never test or signoff on undocumented (applications without complete functional specifications) applications. Its quite similar to swiming in unknown waters - you never know what you could encounter. In the case of software testing, its not what you will encounter, but its what you will not encounter. There is a very high possibility that you could completely miss out some functionality or even worse, misunderstand the functionality.
Software Testing is closely associated with the Program management Team or the requirment analysis team rather than the Development Team. When you test an application without the knowledge of the requirments, you only see what the developer wants you to see and not what the customer want to see. And customers / end users are our prime audience.
In the case of missing requirments, you would try out something what is called 'Focused Exploratory Testing', identifying every piece in the application, its functionality and gradually dig deeper.
Smoke Testing or Gorilla Testing (Monkey Testing) is a different type of testing and the purpose of same is very diffferent.
Smoke Testing or Sanity Testing is used, only to certify builds and is no measure for quality. It only ensures that there are no blocking issues in the build and ensures that the same can undergo a test pass.
Gorilla Testing or Monkey Testing (Gorilla being the smarter among the Monkey kind) is all about adhoc testing. You would probably try hitting the 'ENTER' key 100 times, or try a 'SUBMIT' followed by 'CANCEL' followed by 'SUBMIT' again.
The idea of 'Exploratory Testing' is to identify the functionality of the application along with Testing the same.


How can I start my career in automated testing?
To start your career in automated testing:
1. Read all you can, and that includes reading product descriptions, pamphlets, manuals, books, information on the Internet, and whatever information you can lay your hands on.
2. Get some hands on experience in using automated testing tools. e.g. WinRunner and many other automated testing tools.


What should test in BANKING DOMAIN application ?

You would like to test:
Banking Workflows
Data Integrity issues
Security and access issues
Recovery testing
All the above needs to be tested in the expected banking environment (hardwares, LAN, Op Sys, domain configurations, databases)


Collaboration between dev and testing

Unit testing is entirely the responsibility of the developer. A tester is not in as knowledgable a position to write meaningful unit tests as the developer who did the feature. I would push back hard against a development team that tried to do this. A feature is not 'done' (as in 'ready for test') until
- the requirements are met (be they specifications or use case)
- the code has all be checked into revision control
- it has been verified that the newly checked in code does not break the compile/existing tests
- a comprehensive suite of feature specific unit tests has been created and integrated into the build process
- there are no TODO's (or similar watermarks) left in the new code
- all FIXME's (or similar watermarks) have bug numbers assigned to them in the new code


Is there any common testing framework or testing best practices for distributed system? For example, for distrbuted database management system?

A distributed database management based on mysql. It has three components.
1. A jdbc driver providing services for user's applications, including distributed transaction management, load balancing, query processor, table id management, etc.
2. A master process, which manages global dirstributed transaction id, load balancing, load balancing strategy, etc.
3. An agent running on the same box with mysql, which get mysql server's balance statistic info.
AN OPERATIONAL ENVIRONMENT FOR TESTING DISTRIBUTED SOFTWARE
Distributed applications have traditionally been designed as systems whose data and processing capabilities reside on multiple platforms, each performing an assigned function within a known and controlled framework contained in the enterprise. Even if the testing tools were capable of debugging all types of software components, most do not provide a single monitoring view that can span multiple platforms. Therefore, developers must jump between several testing/monitoring sessions across the distributed platforms and interpret the cross–platform gap as best they can. That is, of course, assuming that comparable monitoring tools exist for all the required platforms in the first place. This is particularly difficult when one server platform is the mainframe as generally the more sophisticated mainframe testing tools do not have comparable PC– or Unix–based counterparts. Therefore, testing distributed applications is exponentially more difficult than testing standalone applications.
To overcome this problem, we present an operational environment for testing distributed applications based on the Java Development Kit (JDK) as shown in Figure 1, allowing testers to track the flow of messages and data across and within the disparate platforms.The primary goal of this operational environment is an attempt to provide a coherent, seamless environment that can serve as a single platform for testing distributed applications. The hardware platform of the testbed at the lowest level in Figure 1, is a network of SUN workstations running the Solaris 2.x operating system which often plays a part in distributed and client–server system. The widespread use of PCs has also prompted an ongoing effort to port the environment to the PC/Windows platform. On the top of the hardware platform is Java Development Kit. It consists of the Java programming language core functionality, the Java Application Programming Interface (API) with multiple package sets and the essential tools such as Remote Method Invocations (RMI), Java DataBase Conncetivity (JDBC) and Beans for creating Java applications. On top of this platform is the SITE which secures automated support for the testing process, including modeling, specification, statistical analysis, test data generation, test results inspection and test path tracing. At the top of this environment are the distributed applications. These can use or bypass any of the facilities and services in this operational environment. This environment receives commands from the users (testers) and produces the test reports back.

Part:   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42   43  44  45  46  47 

Software QA/Testing Technical FAQs