, but this code // executes before the first paint, when

麻豆区

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Alum presents software testing tutorial - News & Stories | 麻豆区

麻豆区

Skip to main content

Calvin News

Alum presents software testing tutorial

Tue, Oct 30, 2007
Myrna Anderson

A Calvin alumnus from the late 1960s will share her expertise as part of an upcoming software conference to be held on Calvin's campus.

Dorothy (Dot) Graham is a software testing expert based in the United Kingdom. She will speak at her alma mater as part of the 2007 (GLSEC) to be held November 7 and 8 at the Prince Conference Center at Calvin.

Graham began her career in computers with Bell Laboratories where she immediately became involved with software testing. After moving to the United Kingdom, she founded Grove Consultants in 1989 and has maintained an international clientele whom she advises and trains in techniques and tools for software testing.

In addition to her consulting work Graham has written several articles for leading software trade journals and co-authored three books.

At GLSEC, Graham will provide a morning tutorial on November 7 titled"Bird's Eye View of Testing and Management." The tutorial is designed to provide a high level overview of software testing, its techniques and tips on managing it.

In addition to her GLSEC engagement, Graham is also a contributor to the first issue of Dynamic Link: Christian Perspectives on Software Development, published by Calvin's Computer Science Department through the Vocation Venture Fund of Calvin College, which is supported by the Lilly Endowment Program.

Her article discusses her consulting company's specific practices of integrating faith into their business practices. Hers is the lead article in an issue that includes six other authors who share their thoughts on how faith influences their craft as software developers and managers.