- Manager
- Test lead
- Test designer
- Tester
- Automation developer
- Test administrator
Value of a Testing Group/Team
- Planning
- Specifications
- Execution and
- Completion
Articles, comments, queries about the processes of Software Product Development, Software Testing Tutorial, Software Processes .
Posted by
Sunflower
at
7/25/2012 03:02:00 PM
0
comments
Labels: Application, Code, Developer, Documentation, Features, Functionality, Interaction, program, Quality, Roles, SDLC, Software System, Software testing, Testers, Testing, Tests, Users, Value
![]() | Subscribe by Email |
|
Posted by
Sunflower
at
4/30/2012 02:58:00 PM
0
comments
Labels: Agile Software Development, Analyze, Approaches, Defects, Developers, Development, Errors, Interaction, Iteration, Iterative Planning, Phases, Practices, Procedure, Requirements, Software testing, Strategy, Testers
![]() | Subscribe by Email |
|
A programming bug as we all know is common or “one in all” term for a flaw, error or mistake in a software system or program. A bug is known for producing unexpected result always or results in the abnormal behavior of the software system or program.
CAUSES OF BUGS
- Root causes of the bugs are the faults or mistakes introduced in to the program’s source code or design and structure or its implementation.
- A program or a piece of program too much affected with bugs is commonly termed as a “buggy” program or code.
- They can be introduced unknowingly in the software system or program during the coding, specification, data entry, designing and documentation.
- Bugs can also arise due to complex interactions between the components of a complex computer program or system.
- This happens because the software programmers or developers have to combine a great length of code and therefore, they may not be able to track minor bugs.
- The discovered bugs are also documented and such documents or reports are called bug reports or trouble reports.
HOW BUGS INFECT A PROGRAM ACTUALLY?
- A single bug can trigger a number of faults or errors within the program which can affect the program in many ways.
- The degree of affecting depends on the nature of the bug.
- It can either affect the program very badly causing it to rash or hang or it may have only a subtle affect on the system.
- There are some bugs that are not detected in the entire software testing process.
- Some bug may cause a chain effect which can be described as one bug causing an error and that error causing some other errors and so on.
- Some bugs may even shut down the whole software system or application.
- Bugs can have serious impacts.
- Bugs can destroy a whole machine.
- Bugs are after all mistakes of human programmers.
TYPES OF BUGS
Bugs are of many types. There are certain types of common bugs that every programmer should be introduced with.
First we are listing some security vulnerabilities:
- Improper encoding
- SQL injection
- Improper validation
- Race conditions
- Memory leaks
- Cross site scripting
- Errors in transmission of sensitive data
- Information leak
- Controlling of critical data
- Improper authorization
- Security checks on the client side and
- Improper initialization
SOME COMMON BUGS ARE:
1. Memory leaks
- This bug is catastrophic in nature.
- It is most common in languages like C++ and C i.e., the languages which do not have automatic garbage collection feature.
- Here the rate of consumption of memory is higher as compared to rate of de- allocating memory which is zero.
- In such a situation the executing program comes to a halt because there is no availability of free memory.
2. Freeing the resource which has already been freed
- This bug is quite frequent in occurrence.
- Usually it happens that the resources are freed after allocation but here already freed resource is freed which causes an error.
3. De-referencing of NULL operator
- This bug is caused due to an improper or missing initialization.
- It an also be caused due to incorrect use of reference variables.
4. References
- Sometimes unexpected or unclear references are created during the execution which may lead to the problem of de- allocation.
5. Deadlocks
- These bugs though rare are catastrophic and are caused when two or more threads are mutually locked by each other or those threads get entangled.
6. Race conditions
- These are frequent and occur when the same resource or result is being tried to be accessed by two threads.
- The two threads are said to be racing.
Posted by
Sunflower
at
2/07/2012 12:41:00 PM
0
comments
Labels: Abnormal, Bugs, Causes, Code, Conditions, Data, Deadlock, Documentation, Errors, Faults, Flaws, Interaction, Memory, Mistake, program, Resources, Security, Software Systems, Software testing, Threads
![]() | Subscribe by Email |
|
WHAT ARE SMART DEVICES?
- Smart devices are most popularity gaining devices in today’s world.
- Though being a small cordless electronic device, it is capable of serving us many purposes.
- It is highly portable and can be connected anywhere to a network like 2G, 3G, 4G, Wi-Fi etc.
- You can have a voice and video communication and browse internet.
- Smart devices in the coming years are going to outnumber many other devices like cell phones and laptops.
- These devices exhibit quite appraisable artificial intelligence and ubiquitous computing factors.
But, what makes these smart deices so popular among users except their features?
It is their user friendly GUI (graphical user interface).
- The abstraction feature of the OOP is employed here in hiding the interactions between the user and the computer.
- These devices are able to optimize themselves according to the environment in which they operate.
- To some extent these devices are self governed.
GRAPHICAL USER INTERFACE ON SMART DEVICES
- The GUI of these devices is vigorously tested to maintain the standard.
- GUIs are a bridge between the software system and the user.
- When agitated, the interface responds to the user’s activity like click or mouse movement.
- GUI makes it easy to implement the software code and also for users to interact with the device.
- GUIs form a major percentage of the program code.
- A lot of time is devoted in developing graphical user interface and testing it. - GUIs account for the usability of the device.
- The current GUI testing methodologies are mostly manual and ad hoc in nature.
- The tools used for GUI testing record the test case execution and captures screen shots during testing.
- The recorded sessions are played again and the input test data is manipulated. - This methodology requires a large effort.
Here we are going to discuss some tips regarding GUI testing of smart devices.
- The effectiveness of GUI testing depends on the ability of the tester to develop new interactions between the user and the software.
- The best advice for graphical user testing will be to use an automated test generating tool.
- This will save you much time and effort.
- Before using an automated test generator, you should code for all possible interactions.
Even though the automated test generator provides a great help, there are many decisions that it misses out.
To compensate for this, the better option is to release the beta copy of the GUI and let the users test it and give you the feedback. More the number of testers, more effective will be the testing.
Here we are listing some tips for making GUI testing more effective:
- Having a defined coverage criterion will make it easy for you to decide what to test first.
- Prepare documentation for the test cases that have to be executed. In this documentation, define the test input data to be used for each test case. The input test data should be related to the requirements specifications of the software system.
- Compare the actual output with the expected output and decide what can be done to get the desired output if the two don’t match.
- After you have predicted the outputs for the test cases, execute them one by one and verify the output.
- Most importantly ask yourself questions like:
a) “how to improve the interaction of the user and the system?”
b) “how to make it easier for the user to access various features of the device through GUI”, “what are the possible where bugs can be found?”
c) “is this GUI compatible with the environment in which it is to be used?”
d) “what are the features that should be compulsorily incorporated in to the GUI?”.
Posted by
Sunflower
at
2/01/2012 02:35:00 PM
0
comments
Labels: Automated, Bridges, Communication, Cordless, Data, Devices, Electronics, Features, Graphical User Interface, Graphics, GUI, GUI testing, Interaction, Interface, Smart Devices, Testing, Tools, Users
![]() | Subscribe by Email |
|
A user interface can be described as an interface that allows the users to interact with the system. GUI is an interface that allows the users to interact with the help of images rather than textual commands.
- User interfaces are used in computer systems, other hand held electronic devices such as portable media players, I pads, I pods, cell phones, gaming devices or mp3 players etc.
- An user interface makes the information and actions available to the user through some graphical images or icons and other visual indicators.
- These can be thought of as a kind of secondary notation as contrary to the text based interfaces, text navigation or typed commands.
- Using a graphical user interface, tasks are performed by the direct manipulation of the graphical icons or elements.
- The scope of a GUI is restricted to the two-dimensional display screens that have high display resolutions which are able to describe generic information.
It is a very common problem of how to effectively carry out UI based testing on an application page?
It is always said that user interface testing is very difficult or hard and less possible.But it is not so! What we actually need is the right kind of design.
- With a right and appropriate design, user interface testing becomes as easy as any other kind of testing.
This will become clear with the following example:
- Let’s say a common user interface component like a login page is to be tested.
- The most important thing here is to separate the user interface from the data and the logic.
- This task can be accomplished using can be done with the help of model that follows the view controller design pattern.
- The model is used as the data.
- There is one more thing about which you should be careful.The dependence order of the source code must be expressed in the following order:
View -> controller -> model
- The point of view of testing, this order should not be broken.
- We can say that there is no direct relationship that exists between the model and the controller.
- Neither transitive dependency is allowed nor is direct dependency allowed.
- Here we can merge the controller and model together if we are not going to use the model again.
- Here the controller is aware of model but the model knows nothing of the controller.
- In the case of this login page, we started with a model or controller package and it was observed that the controller mimics the user interface quite well.
- Each entry field was assigned a field and finally each action was assigned a method.
- We know that the view can directly access the controller and all the textual inputs corresponding to their respective fields as per the controller.
- The values are bound to the destination at the run time.
- The login button is then bound to the login method as described in the controller.
- Due to this binding, the controller is effectively separated from the view. So, now testing of the controller can be focused upon.
- Errors are usually discovered in the logic but not in the code.
- This method is 90 percent beneficial.
- Impedance mismatch is not at all desirable since it can cause marshalling of code which can result in the complication of the whole controller.
Drawbacks of the above method
- Though this method is very useful, it can lead to bugs that can be time consuming to rectify.
- The other drawback is that the approach also gets complicated with the complex user interfaces.
- To test complex UI based application pages you need to create additional required components on the go.
Posted by
Sunflower
at
1/23/2012 01:44:00 PM
0
comments
Labels: Application, Code, Commands, Defects, Design, Errors, GUI, Information, Interaction, Interfaces, Model View Controller, pages, Portable, Source, Tests, User Interface, Users, Web page
![]() | Subscribe by Email |
|
We have heard a lot about different kinds of testing such as regression testing, scalability testing, web testing, unit testing, visual testing, and performance testing and so on. But do you know what is distributed testing? Ever heard about it? No? Then this piece of writing is certainly for you!
This type of testing usually receives very less coverage and that’s why most of the people are not familiar with it. Here I have attempted to explain what is meant by distributed testing and how it compares with its non distributive counterpart.
Non distributed testing can be defined as the tests that run or execute only on a single computer and usually do not involve any kind of interaction with the other computer systems. I used the word “usually” here because there exist some tests that are executed from a host machine to test the target device which holds an embedded or a real time operating system. Non distributed test cases can be configured very easily.
Non distributed testing is further divided into two sub categories namely local testing and remote testing. They have been discussed in details below:
- Local Testing
This kind of testing involves running the test cases on a local computer system. The tests used are called local tests. For performing local test you don’t have to be connected to a network connection.
- Remote Testing
This kind of testing requires a network connection so that you can run a test on a remote computer system to which you don’t have local access. This is very comfortable since you can work right from your desk and you also get the results right on your desk. Remote tests can be performed on several computer systems at a time. The best about thing about remote testing is that no matter how many software systems are under the distributed testing, there is no interference between the processors of different CPUs.
Now that you have got the idea of how non distributed testing is like, it will be easy for you to understand distributed testing is like.
- A distributed test case consists of many parts that interact with each other.
- Each part of the test case is executed on different computer system.
- The interaction of the different parts of the distributed testing sets it apart from non distributed testing.
- If you notice the testing is all about testing the interaction between different computer systems.
- All of the test cases being processed on different processors have a common aim irrespective of the system on which they are performed.
- Distributed testing is not to be confused with simultaneous testing since in simultaneous testing there is no interaction between the different tests.
- Platform proves to be one of the great challenges to the distributed testing.
- The testing environment should be capable of working on all the platforms involved effectively.
- After setting up of your testing environment, you need to make a test plan or say that you need to describe how you want to carry out distributed testing.
- This can be done via a test scenario.
- A test scenario lists all the test cases and also describes how they are to carried out on the computer systems.
- The description of the test cases is provided in the form of a formal directive.
- Test scenario is an effective way to describe test cases.
- For distributed testing we use distributed directives and for non distributed testing we use remote directives.
Posted by
Sunflower
at
1/05/2012 01:38:00 PM
0
comments
Labels: Computer system, computers, Devices, Distributed, Distributed Testing, Environment, Interaction, Local Testing, Network, Platforms, Processors, Remote Testing, Scenarios, Test cases, Test Plan, Tests
![]() | Subscribe by Email |
|
In the context of software development and engineering, system integration can be defined as the juxta posing of all the software and the hardware components of the software system and ensuring that the subsystems and assemblages cooperate and work together as one software system or application.
- System integration is the process of linking of different computing systems, sub systems and software applications together functionally and physically so that as to make up the whole software system a well coordinating one.
- This whole process is carried out by the system integrator. It brings together the discrete parts of the software system or application by employing a variety of techniques.
Some of the techniques have been mentioned below:
1. Computer networking
2. Enterprise application integration
3. Business process management
4. Manual programming
- A system itself is an aggregation or collection of subsystems cooperating so that the system is able to deliver the high speed and quality performance.
- System integration also considers already existing and disparate subsystems or assemblages.
- The process of system integration involves joining the subsystems together through their interactive interfaces.
- The system integration is all about knowing how to glue two sub system interfaces together without affecting their functionality.
- System integration is also about making the system more valuable and rendering it capabilities that the system needs to achieve its aim and the desired behavior.
This whole process is called system integration testing or “SIT” as its abbreviation. Now this process can be defined as a process that implements the co existence of a software system with other software systems.
- In system integration testing it is always assumed that the individual sub systems have already tested through integration testing and have passed the tests at all the previous levels.
- System integration testing seeks to test the specified interactions of these sub systems with the other sub systems.
- Usually a pre system integration testing is carried before carrying out the major system integration testing.
- Special test cases are designed for system integration testing.
- Data driven method is the most commonly used method for system integration testing.
- The specialty of this method is that this methodology can be carried out with minimum requirements of the software system testing tools.
- It imports and exports data and then examines the behavior and function of each and every data field within every layer of integrated software system.
There are 3 main routes for data flow in system integration testing:
- Data state within the integration layer
Integration layer here means a middle ware or a web service. This layer acts an a media for the transfer of data and involves the following steps:
(a) cross checking of data properties.
(b) execution of unit tests and
(c) investigation of middle ware and server logs.
- Data state within the data base layer: This combination involves checking of data, checking of data properties, checking for data validations and constraints, checking stored procedures and investigation of server logs for the purpose of trouble shooting.
This is all done according to the specifications of the documentation.
- Data state within the application layer:
This combination involves marking of fields, creation of data map, and checking of data properties.
Apart from the above mentioned three combinations, there are several other combinations that can be carried out based on the availability of time for system integration testing. System integration is performed at the time of integration of two systems. Like for example, it carried out at the time of integrating bank accounting system with some inventory management system.
Posted by
Sunflower
at
12/19/2011 09:42:00 PM
0
comments
Labels: Applications, Behavior, Data, Development, Functionality, Functions, Integration, Interaction, Interfaces, Performance, Quality, Software testing, Sub Systems, System Integration testing, Techniques
![]() | Subscribe by Email |
|
Usability testing can be defined as a technique which is used in the interaction design centered around the user for evaluation of a software system, application or product by testing it out on the software product users. This can be thought of as an irreplaceable practice of usability. It is considered as irreplaceable usability practice because it generally gives direct report on how the real users use the software system or application or the product.
From the mentioned things, we can say that the usability testing is highly in contrast with inspection methods for usability.
- In usability inspection methods the experts seem to use several different methods to evaluate and check a GUI or graphical user interface without the involvement of the real users.
- The main focus of the Usability testing is on measuring a software system’s or product’s capacity of achieving its aim and objectives made by humans.
Best examples of the software systems or products that are commonly benefited from usability testing are the web sites and the web applications, the computer user interfaces, documents, databases and devices.
- The Usability testing usually measures the usability i.e., to say the ease of use of some specific object or group of many objects.
- However, the general human- computer interaction is different from this in the way that the human – computer interaction makes the attempts to formulate the principles of the universe.
- Usability testing is basically a black box testing methodology.
- It aims at observing people using the software system, product or application in their own way and discovering new errors and bugs.
- They can also find some ways for the improvement of the software system or the application.
Usability tests determine how well the output comes from the following 4 fields when tested with usability testing test cases:
1. Efficiency or the performance
It includes how much time the software system is taking to respond? In how many the software system is completing the assigned task?
2. Accuracy:
It includes determining the number of mistakes the users make? And were they recoverable or they caused the software system failure?
3. Recall:
It includes determining what the user remembers afterwards i.e., after the time of usage or after the periods of non- usage.
4. Emotional response:
It involves determining the level of satisfaction of the users about the completed tasks? Does the confidence level of person has increased or decreased? Is the user stressed? Is the user confident enough to recommend this software application to others?
Some people have a misconception of usability testing.
- They think that simply collecting opinions on some software system or documentation is called usability testing.
But this is absolutely wrong.
- Gathering of opinions on some object is simply called qualitative research or market research.
- It’s important to clear up the concept of the usability testing.
- It can be though of as a testing involving systematic observation under certain conditions which are controlled by experts.
- This is done basically to have an understanding about how people use that particular software system or application.
- But usually usability testing is used in combination with qualitative research. - This helps in better understanding of user’s expectations.
- It involves watching people use that software system or the product for its intended objective.
- For carrying out a successful usability test, one needs to create a realistic environment where the user or the tester is required to perform the tasks which can be performed by the software system and the observers watch the testing and record the results and the observations.
- Other forms of feedback are also gathered like pre and post test questionnaires, scripted instructions, customer feed back and paper prototypes etc.
Posted by
Sunflower
at
12/08/2011 07:25:00 PM
0
comments
Labels: Application, Bugs, Design, Errors, Interaction, Interface, Methods, Software Systems, Techniques, Testing techniques, Usability, Usability testing, User Interface, Users
![]() | Subscribe by Email |
|
Web sites are complex and dynamic in nature. Web application analysis concentrates on three important criteria:
- information or content that is presented.
- functions that are to be performed for end user.
- behaviors of web applications.
Analysis of web applications is mainly done by web engineers, non technical content developers and stakeholders. Analysis modeling is important because it enables a web engineering team to develop a concrete model of web application requirements. It helps to define fundamental aspects of problem. There are four important aspects that analysis modeling focus:
- Content analysis identifies content classed and collaborations.
- Interaction analysis describes user interaction, navigation and system behaviors occurring as a consequence.
- Function analysis defines web application functions performed for user and sequence of processing.
- Configuration analysis identifies the operational environment in which a web application resides.
Analysis modeling should be done by web applications when the following conditions are met:
- web application is large or complex.
- number of stakeholder is large.
- number of web engineers is large.
- goals and objectives for web application will effect the business.
- success of web application will have strong affect on the success of business.
Posted by
Sunflower
at
8/17/2011 03:03:00 PM
0
comments
Labels: Analysis, Configuration, Content, Focus areas, Function, Interaction, Requirements, stakeholders, Users, Web Analysis, Web Applications, Web based systems, Web engineers, WebApps
![]() | Subscribe by Email |
|
System is an:
- integrated set of inter-operable elements;
- it consists of group of entities or components;
- interacting together to form specific inter-relationships;
- organized by means of structure;
- working together to achieve a common goal.
In defining the system boundaries,a software engineer discovers the following:
- entities or group of entities that are related and organized in some way within the system, either they provide input, do activities or receive output;
- activities or actions that must be performed by the entities or group of entities in order to achieve the purpose of the system;
- a list of inputs;
- a list of outputs.
Entities that are involved in this system are the applicant, club staff and coach.
General Principles of Systems
- The more specialized a system, the less it is able to adapt to different circumstances.
- The larger the system is, the more resources must be devoted to its everyday maintenance
- Systems are always part of larger systems, and they can always bepartitioned into smaller systems
There are two types of systems, namely, man-made systems and automated systems. Man made systems will always have areas for correctness and improvements. These areas for correctness and improvements can be addressed by automated systems. Automated systems consists of computer hardware, computer software, people, procedures, data and information and the connectivity that allows the connection of one computer systemwith another computer system.
Posted by
Sunflower
at
3/31/2011 12:44:00 PM
0
comments
Labels: activities, Automated Systems, Boundaries, Components, Elements, Entity, Goals, Inputs, Integration, Interaction, Outputs, Principles, Purpose, Relationships, Resources, Specialized, System
![]() | Subscribe by Email |
|
The interaction model of web applications enables a conversation between an end user and application functionality, content, and behavior. Interaction model is made up of four elements:
- Use cases
- Sequence diagrams
- State diagrams
- User interface prototype
Some use cases describe the interactions between end user categories and the system. Other use cases refine the interactions, providing the analysis detail necessary to guide design and construction. Use cases provide a one-dimensional view of the interaction.
Sequence diagrams are a shorthand representation of the manner in which dynamic elements(user actions) collaborate with the structural elements(analysis classes) of the system. There is a need to ensure that traceability exists between the classes that have been defined and the use-cases that describe system interaction. Sequence diagrams can be created for each use-case once analysis classes are defined for the use case. Sequence diagrams present a second dimension that is more procedural in nature.
As the interaction occurs, state diagrams are another way to represent the dynamic behavior of the web application. State diagrams can be represented at different levels of abstraction. State diagrams provide a third dimension that is more behavioral and contains information about potential navigation pathways that is not provided by use cases or the sequence diagram.
Large complex web applications benefits from interaction model that encompasses the three representations : use cases, sequence diagrams and state diagrams.
User Interface Prototype : The layout of user interface, content it presents, interaction mechanisms, and overall aesthetic of user-web application connections have much to do with user satisfaction and the overall acceptance of the web application. User interface prototype is performed during the creation of analysis model.
Posted by
Sunflower
at
2/01/2011 07:25:00 PM
0
comments
Labels: Analysis, Behavior, Content, Diagram, End-users, Interaction, Interaction Model, Prototypes, Sequence diagrams, State diagrams, Use cases, User Interface, Users, Web Applications, WebApps
![]() | Subscribe by Email |
|
The analysis model of web application is driven by information contained within the use cases that have been developed for the application. Analysis modeling focuses on four fundamental aspects - content, interaction, function, and configuration. Content that is presented by the web application is identified and functions to be performed are extracted from use case descriptions.
Posted by
Sunflower
at
1/31/2011 08:58:00 PM
0
comments
Labels: activities, Analysis, Analysis Model, Application, Aspects, Configuration, Content, Functional, Functions, Interaction, Modelling, software engineering, Web Applications, WebApps
![]() | Subscribe by Email |
|
Once the web application architecture and the content is defined, navigation pathways that enable users to access the web application content and functions.
- semantics of the navigation for different users of the site should be identified.
- syntax of achieving the navigation should be defined.
Posted by
Sunflower
at
1/28/2011 02:06:00 PM
0
comments
Labels: Application, Classes, Design, Identification, Interaction, Mechanics, navigation, Navigation Design, NSU, Objects, Requirements, Semantics, Syntax, Units, Use cases, Users, Web Applications, WebApp
![]() | Subscribe by Email |
|